これはこの問題に関連しています: 管理者モードのコマンドプロンプトはマップされたドライブを認識しません
昇格したユーザーとしてプログラム(InstallShield)を実行する必要がありますが、このプログラムはネットワーク共有にあるファイルにもアクセスする必要があります。最大パス長(および読みやすさ)の問題があるため、(はるかに長いUNCパスではなく)マップされたドライブを使用してこれらのファイルにアクセスしたいと考えています。ただし、上記の問題により、(Windowsエクスプローラーを介して)マップしたドライブが認識されません。
残念ながら、推奨されるEnableLinkedConnections
レジストリハックは私にはまったく機能していないようです。代わりに、次のコマンドを使用して、昇格されたコマンドプロンプトを介してドライブをマッピングすることにより、(一時的に)動作させることができます。Net Use Z: \\machine\path /persistent:yes
問題は、このマップされたドライブが再起動後に実際には持続しないことです(/persistent:yes
パラメーターにもかかわらず)。確かに、手動で実行したスクリプトを使用してすばやく再マップできますが、もっと良い方法があるはずです。
昇格したユーザーとしてログインスクリプトを自動的に実行する方法がわかりません。それ以外の場合は、それを試してみます。また、なぜNet Use
コマンドが期待どおりに持続しないのか疑問に思っています。
関連する可能性があるため、これはWindows8.1仮想マシンです。また、永続的にマップしてアクセスしようとしているネットワーク共有は、VMware Workstationによって提供されます(オプションの共有フォルダー機能を介して)。
これはおそらくタイミングの問題なのだろうか? ( マップされたドライブが再起動後にではなく、ログアウトして再度ログインした後にのみ再表示されるのはなぜですか? を参照してください。
更新
そもそもマッピングが持続しない理由についてはまだ答えがありませんが、なんとか回避策を見つけることができました。
とにかく、ログイン時にバッチファイルを実行するようにWindowsで簡単なスケジュールされたタスクを設定しました。このバッチファイルは、ネットワーク共有を目的のドライブ文字にマップします(同じNet Use
コマンドを使用)。また、最高の特権で実行タスク設定がチェックされていることを確認しました。出来上がり!再起動した後でも、昇格されたプロセスがマップされたドライブを表示してアクセスできるようになりました。
同様の問題が発生しました。これらはネットワーク全体で実行した手順であり、この作業を行ったすべてのPCは、再起動後もマッピングを維持しています。 (バッチファイルは、ユーザーがファイルを見つけた場合に管理者のパスワードを提供するため、使用したくありませんでした。)
構文例:
c:> Net Use\abcd123-dt\SharedData 321DCBA!/user:Admin/persistent:yes
注:再起動する前に成功の確認が必要な場合は、コマンドプロンプトで「NetUse」と入力し、Enterキーを押すと、マップされたドライブが一覧表示されます。
同様の問題に直面しており、次のようにタスクスケジューラを使用することになりました。
schtasks /create /tn "my_mount" /tr "Net Use V: \\hostname\path /persistent:yes" /sc onstart