ネットワーク共有(Linux CIFSサーバー)上にあるWin7exeを実行しようとしています。共有は非管理者によって作成されました( 共有フォルダーにアクセスするためのWindows 7の問題 を参照)。 exeファイルを含むフォルダ内のファイルの読み取り、編集、書き込みができます。 exeファイルを読み取る(つまり、コピーする)ことができます。
しかし、UACダイアログをダブルクリックして[OK]をクリックするか、[管理者として実行]を右クリックして、exeを実行しようとすると、 、取得:
Windows cannot access the specified device, path, or file. You may not have the appropriate permissions to access the item.
実行する前にexeをローカルディスクにコピーする必要がありますか?
(まだ受け入れられていない回答) ネットワーク共有からEXEを実行するにはどうすればよいですか? のレシピに従いましたが、実行アクセス許可ではなく、読み取りアクセス許可のみが付与されているようです。
(遠縁: ネットワークドライブから.exeを実行できません 。)
これは(異常ではありますが)予想される動作です。
ネットワーク共有からプログラムを実行する場合、いくつかの方法で実行できます。
g:
-> \\server\share
\\server\share
最初のものは、管理者としてプログラムを実行するときにすでに問題を引き起こす可能性があります。これについては、以下で説明します。
管理者としてプログラムを実行すると、新しい環境が作成され、管理者のプロファイルがロードされます。ユーザーが持っている権限を使用しますが、管理者ユーザーには明らかに追加の権限があります。結果として、ネットワークドライブへのマッピングは作成されないため、管理者ユーザーのプロファイルには追加のネットワークマッピングが存在しないため、g:は存在しません。
共有のセキュリティ設定が非常に厳しく、管理者ユーザーにも権限がない場合でも可能です。
もちろん、ファイルをローカルにコピーして実行することもできますが、これを実行したくないと仮定します。
最初に管理者としてコマンドプロンプトを開始できます。そこから次のコマンドを入力します。
Net Use g: \\server\share
ドライブと共有を交換して、既存の共有と一致させます。
このコマンドプロンプトウィンドウが開いている限り、管理者として実行可能ファイルを実行でき、保証された動作をします。
ユーザーが\\server\share
に対する権限を持っていない場合、Net Useは失敗し、正確にこれを通知するエラーが表示されるため、この問題がどこにあるかがわかります。
権限が適切な場合は、\\server\share
に移動して実行可能ファイルにアクセスし、管理者として実行可能ファイルを実行することもできます。これにより、最初に別の環境でネットワーク共有を行う必要がなくなります。
このKB記事で説明されているように、値EnableLinkedConnectionsを1に設定する必要があります。
UACがWindowsで「資格情報のプロンプト」に構成されている場合、マップされたドライブは昇格されたプロンプトから使用できません
https://support.Microsoft.com/en-us/kb/3035277
レジストリエディタで、次のレジストリサブキーを見つけてクリックします。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
右側のウィンドウで、[新規]を右クリックし、[DWORD(32ビット)値]をクリックします。
- 新しいレジストリエントリに
EnableLinkedConnections
という名前を付けます。EnableLinkedConnections
レジストリエントリをダブルクリックします。- [DWORD値の編集]ダイアログボックスで、[値のデータ]フィールドに1と入力し、[OK]をクリックします。
- レジストリエディタを終了し、コンピュータを再起動します。
一部のインストーラーはNT AUTHORITY\SYSTEM
からアクセスできる必要がありますが、ネットワークドライブはユーザー固有です。この場合、EnableLinkedConnections
は役に立ちません。
既存のネットワークドライブを削除し、システムレベルで再度マップします。これを行うには、アクション:net.exe
および引数:use z: \\Host\share\
(必要に応じてパスワードを入力)を使用してスケジュールされたタスクを作成し、このタスクを実行するためのアカウントをNT AUTHORITY\SYSTEM
に変更します。 /PERSISTENT:yes
が機能していないようであるため、起動時に実行するようにスケジュールする必要があります
実行すると、システム全体にネットワークドライブが表示されます。 Windowsエクスプローラーでは、切断された状態で表示されますが、それでも機能します。