locked
PSExec アクセスが拒否されました RRS feed

  • 質問

  • 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月14日 2:55
    • 回答としてマーク 佐伯玲 2015年5月19日 1:45
    2015年5月12日 22:43

すべての返信

  • フォーラム オペレーターの星 睦美です。
    あんも さん、投稿ありがとうございます。

    あんも さんの質問に関連したTechNet フォーラムの過去のスレッドとして、参考にveryvery さんからの質問をリンクしておきます。

    (veryvery さんのスレッド)
    PsExec.exeでアクセス拒否エラー:

    フォーラムで役立つ回答がありましたら、投稿者からの[回答としてマーク]をお願いします。


    日本マイクロソフト株式会社 フォーラム オペレーター 星 睦美

    2013年2月25日 0:32
  • 星さん

    ご紹介頂いた質問は存じており現象も同じなのですが、当方の環境では解決できなかったので質問を投稿させて頂きました。

    2013年2月26日 2:17
  • あんも さん、返信ありがとうございます。

    過去のスレッド「PsExec.exeでアクセス拒否エラー」のURLがリンクできないとのことでしたので、私のほうで回答する方への参考としてリンクしてスレッドを紹介させていただきましたが、分かりにくい返信で申し訳ありませんでした。

    PsExec.exeでアクセス拒否エラー 」の回答では解決できていないとのことですが、服部清次さんから紹介した以下の情報もご確認いただきましたでしょうか?

    psexec: “Access is Denied”? (英語)


    日本マイクロソフト株式会社 フォーラム オペレーター 星 睦美

    2013年2月26日 3:02
  • 星さん

    はい、確認しました。

    何か重要なポイントを外しているのでしょうか?

    2013年2月27日 1:54
  • 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月14日 2:55
    • 回答としてマーク 佐伯玲 2015年5月19日 1:45
    2015年5月12日 22:43