トップ回答者
PSExec アクセスが拒否されました

質問
-
WindowsServer2008R2 に用意したコマンド(.bat)を、サーバー上では管理者権限を持たない一般ユーザのクライアントPCから実行させたい為、PsExec.exeを使用したいのですが、PsExecでアクセス拒否エラーになってしまいます。
現象は以前veryveryさんが質問していた内容と全く同じです。(なぜかURLが張れませんが)
※サーバー側ローカルセキュリティポリシー「管理者承認モードですべての管理者を実行する」は無効としてあります。
※受信の規則で、グループがリモートサービス管理の規則は全て有効としています。※コマンドプロンプトを管理者として実行してもNGです。
※LocalAccountTokenFilterPolicy レジストリ値を追加してみましたがNGです。(そもそもUAC を無効としているので・・・)※クライアントPCのユーザIDをサーバー側のAdministratorsグループに追加した場合は、アクセス拒否されません。
(この状態では-uオプション自体が不要ですが・・・)コマンド
PsExec \\サーバー名 -u サーバー名\administrator -p パスワード cmd
環境
サーバー:WindowsServer2008R2Standard ドメイン参加済み
クライアント:Windows7 professional version6.1 SP1ドメイン参加済み解決方法をご教授頂きたく、よろしくお願いいたします。
2013年2月22日 11:10
回答
-
WindowsServer2012R2(ワークグループ)とWindows7(ドメイン)間のpsexec実行で同じ現象があり、解決しましたので情報共有したいと思います。このスレッドはかなり古いので皆さんとの情報共有になるか分かりませんが...
結論からいうとWindows7側の管理者権限を持つユーザでpsexecの実行先に繋げればOKです。しかし、これはcmd.exeを管理者権限で実行すればできる旨の報告が散見されますので既にご存知だと思います。
私は一般ユーザの環境変数(username等)を利用したかったので試行錯誤しました。
最終的に一つの方法として辿り着いたのは、psexecの実行先に繋げる時に使う資格情報を一般ユーザの資格情報でなくローカル管理者権限のユーザを指定する方法でした。(ネットワークドライブの割当で別の資格情報を使用して接続するという良くある奴です。)
指定コマンド実行先をServerHoge、psexecを実行する側をClientHogeとします。
ServerHoge側に接続用のユーザpsexecUserを作ります。(私の場合はadministratorsグループとしました。)
ClientHoge側に接続用の同名のローカルユーザ(psexecUser、administratorsグループ)を作りました。
接続用の資格情報を記憶させるためClientHoge上でcmdkeyを実行します。
cmdkey /add:ServerHoge /user:psexecUser /pass:password
この状態でpsexecを実行すると問題なく実行できました。
psexecでリモートコマンド実行後
cmdkey /delete:ServerHoge
を実行するとpsexecは従来通りエラーになります。
嵌っている方は一度試してみてください。
勿論、「Windows リモート管理」グループの許可、UAC問題等のその他のpsexecを動かすための設定は事前に済ませておく必要はあります。
お役に立てれば幸いです。
2015年5月12日 22:43
すべての返信
-
フォーラム オペレーターの星 睦美です。
あんも さん、投稿ありがとうございます。あんも さんの質問に関連したTechNet フォーラムの過去のスレッドとして、参考にveryvery さんからの質問をリンクしておきます。
(veryvery さんのスレッド)
・PsExec.exeでアクセス拒否エラー:
フォーラムで役立つ回答がありましたら、投稿者からの[回答としてマーク]をお願いします。
日本マイクロソフト株式会社 フォーラム オペレーター 星 睦美
2013年2月25日 0:32 -
あんも さん、返信ありがとうございます。
過去のスレッド「PsExec.exeでアクセス拒否エラー」のURLがリンクできないとのことでしたので、私のほうで回答する方への参考としてリンクしてスレッドを紹介させていただきましたが、分かりにくい返信で申し訳ありませんでした。
「PsExec.exeでアクセス拒否エラー 」の回答では解決できていないとのことですが、服部清次さんから紹介した以下の情報もご確認いただきましたでしょうか?
・psexec: “Access is Denied”? (英語)
日本マイクロソフト株式会社 フォーラム オペレーター 星 睦美
2013年2月26日 3:02 -
WindowsServer2012R2(ワークグループ)とWindows7(ドメイン)間のpsexec実行で同じ現象があり、解決しましたので情報共有したいと思います。このスレッドはかなり古いので皆さんとの情報共有になるか分かりませんが...
結論からいうとWindows7側の管理者権限を持つユーザでpsexecの実行先に繋げればOKです。しかし、これはcmd.exeを管理者権限で実行すればできる旨の報告が散見されますので既にご存知だと思います。
私は一般ユーザの環境変数(username等)を利用したかったので試行錯誤しました。
最終的に一つの方法として辿り着いたのは、psexecの実行先に繋げる時に使う資格情報を一般ユーザの資格情報でなくローカル管理者権限のユーザを指定する方法でした。(ネットワークドライブの割当で別の資格情報を使用して接続するという良くある奴です。)
指定コマンド実行先をServerHoge、psexecを実行する側をClientHogeとします。
ServerHoge側に接続用のユーザpsexecUserを作ります。(私の場合はadministratorsグループとしました。)
ClientHoge側に接続用の同名のローカルユーザ(psexecUser、administratorsグループ)を作りました。
接続用の資格情報を記憶させるためClientHoge上でcmdkeyを実行します。
cmdkey /add:ServerHoge /user:psexecUser /pass:password
この状態でpsexecを実行すると問題なく実行できました。
psexecでリモートコマンド実行後
cmdkey /delete:ServerHoge
を実行するとpsexecは従来通りエラーになります。
嵌っている方は一度試してみてください。
勿論、「Windows リモート管理」グループの許可、UAC問題等のその他のpsexecを動かすための設定は事前に済ませておく必要はあります。
お役に立てれば幸いです。
2015年5月12日 22:43