下のスクリーンショットからわかるように、C:\Windows\system32\cmd.exe
は存在します (コマンド プロンプト自体がそのパスを使用しているため)。短い cmd.exe 名と完全なパスの両方で参照しようとしましたが、どちらも PsExec.exe から同じエラーが発生します。
The system cannot find the specified file.
ネットワーク サービス ユーザーは存在します。誤って入力すると、パスワード プロンプトが表示され、ユーザー名のパスワードが存在しないというメッセージが表示されます。
このエラー メッセージは複数のコンピューターで表示されますが、Windows Server 2008 R2 と 2012 R2 が混在する他のコンピューターでは表示されます。私は PsExec.exe の最新バージョン (現在 2.11) を使用しており、PsExec を管理者として起動するために使用するコマンド プロンプトを実行しているため、必要なアクセス許可があるはずです。
リモート マシンで PsExec を実行するときにこの問題が発生するという投稿は多数見つかりましたが、私が実行しているローカル マシンではこの問題が発生するという投稿はありませんでした。
何が問題なのか何か分かりますか?
答え1
最終的に修正されたのは、PsExec を起動したコマンド プロンプトを管理者として実行しないことです。管理者として実行しているコマンド プロンプトからコマンドを実行すると、エラーが発生します。管理者権限のないコマンド プロンプトから実行すると、正常に動作します。
答え2
これが発生するもう 1 つの理由は、LanmanServer (サーバー) または LanmanWorkstation (ワークステーション) サービスを停止または無効にしていることが考えられます。
PsExec が機能するには、これらが必要です。
答え3
また、PSExec を別のディレクトリにコピーし (Sysinternals ディレクトリが PATH 上にない場合)、そこから実行しようとすると、上記のように失敗することが分かりました。Sysinternals ディレクトリで PSExec を実行すると、-s オプションが機能します。
したがって、確認する必要があるもう 1 つの項目は、Sysinternals フォルダーがパス上にあるか、またはそのディレクトリから PSExec が実行されているかどうかを確認することです。
どうやら、別の Sysinternals 実行可能ファイルが必要なようです...
答え4
私の場合、デフォルトの cmd の場所 (私の場合は c:\windows\system32) から 'psexec' コマンドを実行し、引数 (実行しているアプリ) へのフル パスを指定することでこの問題を解決できました。
C:\WINDOWS\system32>psexec c:\Projects\newdesktop\someapp.exe