リモートPC(SYSDES208)にexe(D:\ TestFile.exe)があります。実行すると、テキストを含むテキストファイルが作成されます。手動で実行すると正常に動作します。
コマンドプロンプトで、この方法で別のPCからこれを実行しようとしています。
D:\PsTools>cmdkey.exe /add:SYSDES208 /user:admin /pass:admin123
//Message - CMDKEY: Credential added successfully
D:\PsTools>psexec \\SYSDES208 D:\TestFile.exe
//Message - D:\TestFile.exe exited on SYSDES208 with error code 0.
エラーはなく、テキストファイルも作成されません。
コマンドで渡される資格情報は、リモートPCのものです。
PDATE:代わりにバッチファイルを使用してexeを実行することを考えました。そこで、このコードでバッチファイルを作成し、リモートPC(D:\ Test.bat)に配置しました。
start /d "D:\" TestFile.exe
ローカルPCから実行されるコマンドは次のとおりです。
D:\PsTools>cmdkey.exe /add:SYSDES208 /user:admin /pass:admin123
//Message - CMDKEY: Credential added successfully
D:\PsTools>psexec \\SYSDES208 D:\Test.bat
//Message - c:\windows\system32>start /d "D:\" TestFile.exe
D:\Test.bat exited on SYSDES208 with error code 0
メッセージに示されているように、バッチファイルは実行されますが、exeは実行されません。ここで何が欠けていますか
私のネットワーク管理者はこれにPowershellを使用します。 CMDのみに制限されているかどうかわからない。
invoke-command -computername SYSDES208 -scriptblock {D:\ TestFile.exe}
ドメインアカウントを使用している場合、またはリモートマシンにまったく同じアカウントを持っている場合は、PowerShellがローカルユーザーの資格情報を使用するため、資格情報を入力する必要はありません。
そのexeを実行するには、資格情報も追加する必要があります(PSEXECコマンドで資格情報を渡します)ファイルが生成されている場所で、アカウントに書き込みおよび変更のアクセス許可があることも確認してください