web-dev-qa-db-ja.com

PSEXEC、アクセス拒否エラー

PSEXEC.exeを使用しているときに、リモートシステムで「アクセスが拒否されました」というエラーが表示されます。

これを解決する方法についてのアイデアはありますか?

53
Pax

こんにちは、「アクセスが拒否されました」というさまざまなソリューションについて、オンラインで多くのソースからの要約をここに掲載しています。ほとんどの情報はここにあります(必要な要件を含む)- sysinternal help

  1. 誰かが言ったように、このregキーを追加してから、コンピューターを再起動します:

    reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system/v LocalAccountTokenFilterPolicy/t REG_DWORD/d 1/f

    このナレッジベース記事 を読んで、これが何をするのか、なぜそれが必要なのかを学ぶ

  2. ファイアウォールを無効にします(注-これにより、ファイアウォール保護が無効になります)

    netsh advfirewallはallprofiles状態をオフに設定します

  3. ターゲットユーザーに空のPWがあり、追加したくない場合は、ターゲットで実行します。

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa] "LimitBlankPasswordUse" = dword:00000000

  4. これは私にとってはうまくいきませんでしたが、私はいくつかの場所で他の人のためにそれを読んで、ターゲットを実行しました:

    スタート->実行-> secpol.msc->ローカルポリシー->セキュリティオプション->ネットワークアクセス:共有>およびローカルアカウントのセキュリティモデル>クラシック-ローカルユーザーが自分として認証する

    既に「クラシック」にある場合:

    「ゲストのみ-..」に移動し、昇格したコマンドプロンプトgpupdate\forceから実行します。再び「クラシック-..」に移動し、昇格したコマンドプロンプトgpupdate\forceから再度実行します。

  5. これは私の問題を解決しました:

    昇格されたコマンドからターゲットで実行するプロンプト「Net Use」で出力チャートを確認し、そこにあるリモート列にリストされている共有を探します(切断されたもののみ削除-すべて試すことができます) 「 'Net Use\target\Admin $/user:[ユーザー名]'を実行し、プロンプトパスワード要求を入力します(空のPWの場合はEnterを押してください)、violaが動作するはずです。

幸運、これが誰かの時間を節約することを願っています。

64
james

レジストリ値HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system\LocalAccountTokenFilterPolicyを作成し、それを1に設定することで、同じ症状を解決しました。 詳細はこちら .

16
Ofek Shilon

PsExecには、ランチャーが持つあらゆるアクセス権があります。通常のWindowsアクセス制御の下で実行されます。これは、PsExecを起動した人(ユーザー、スケジューラ、サービスなど)がターゲットマシンに対して十分な権限を持っていないか、ターゲットマシンが正しく構成されていないことを意味します。最初に行うことは次のとおりです。

  1. PsExecのランチャーが、ドメインを介して、または両方のマシンでローカルに定義された同じユーザーとパスワードを使用して、ターゲットマシンに慣れていることを確認してください。
  2. コマンドライン引数を使用して、ターゲットマシンに知られているユーザーを指定します(-u user -p password)

これで問題が解決しない場合は、ターゲットマシンが最小要件 ここで指定 を満たしていることを確認してください。

11
eran

これ 私の場合に役立ちました:

cmdkey.exe /add:<targetname> /user:<username> /pass:<password>
psexec.exe \\<targetname> <remote_command>
8
akash bhatia

コマンドを試すことができます

Net Use \\computername\ipc$ /user:adminname password

psexecを使用する前に、リモートPCで管理者権限を取得します。

5
Lim Yee Fatt

同じ問題がありました。そして、一生懸命働いた後、簡単で完全なソリューションを見つけました。

  1. runasを使用して、管理者アカウントでスクリプトを実行します
  2. システムアカウントで実行するには、psExecの-sパラメーターを使用します
  3. PsExec内で、私は再度ログイン管理者アカウントで
  4. &を使用して複数のコマンドを実行できます
  5. [USERNAME]、[PASSWORD]、[COMPUTERNAME]、[COMMAND1]、[COMMAND2]を実際の値に置き換えてください

コードは次のようになります。

runas /user:[USERNAME] "psexec -e -h -s -u [USERNAME] -p [PASSWORD] \\[COMPUTERNAME] cmd /C [COMMAND1] & [COMMAND2]"


別のマシンでスクリプトをデバッグする場合は、次のテンプレートを実行します。

runas /user:[USERNAME] "psexec -i -e -h -s -u [USERNAME] -p [PASSWORD] \\[COMPUTERNAME] cmd /C [COMMAND1] & [COMMAND2] & pause"
4
Henry Ávila

「-с」パラメーターを追加しました。 Psexecを実行可能ファイルとしてリモートマシンにコピーします。したがって、アクセスエラーなしで動作します。

4
Dan

ターゲット(リモート)マシンでこのキーを設定して、マシンを再起動してください。

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"LocalAccountTokenFilterPolicy"=dword:00000001

参照: http://forum.sysinternals.com/topic10924.html および http://www.brandonmartinez.com/2013/04/24/resolve-access-is-denied -using-psexec-with-a-local-admin-account /

4
Wernight

ソフォスがpsexec.exeを検疫セクションに配置し続けていることがわかりました。承認すると、問題なく実行されました。

3
UsPeoples

AVがPsexecを隔離している場合がありました-オンアクセススキャンを無効にする必要がありました

2
b33llz

PSEXEC(および他のPSツール)が失敗する別の理由が見つかりました-何か(たとえば、ウイルスやトロイの木馬)がWindowsフォルダーやそのファイルを隠すと、PSEXECは「アクセスが拒否されました」エラーPSLISTで失敗します「プロセッサパフォーマンスオブジェクトが見つかりません」というエラーが表示され、理由がわからないままになります。

RDPが可能です。 admin $共有にアクセスできます。ドライブの内容をリモートで表示することなどができますが、ファイルまたはフォルダーが非表示になっていることが理由ではありません。

この奇妙な問題の原因を特定するために昨日読んでいたいくつかのページにこの情報を投稿するので、他の誰かが髪の毛を抜く前に言葉を出したと思うかもしれませんパフォーマンスカウンターがPSEXECの実行と関係がある理由を理解しようとするルーツによって。

1
Jeff

勝ち10でも、psexecを使用します。psexec.exe Windows 10のwin32動作する古いバージョンのフォルダ->バージョン2.11.0.0を使用します。私が使用していたWindows 10バージョンは、リモートコンピューターで.batファイルをバックグラウンド/非表示プロセスとしてのみ実行します。これを理解するために丸一日かかった。

上記のレジストリキーをリモートコンピューターに追加することも役立ちます。

   reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
1
tmasher

Windows Server 2012 R2では、ユーザーアカウントから実行するのに問題がありました

psexec -u administrator -p password \\machinename -h -s -d -accepteula cmd.exe

ただし、パラメータなしで実行する場合は正常に動作します-h -s。だから、これを使ってトラブルを解決します。

psexec -accepteula -u administrator -p password \\machinename %PathToLocalUtils%\psexec.exe -h -s -d  cmd.exe

以下はうまくいきましたが、MicrosoftからPSEXECを2.1にアップグレードした後でのみです。

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System] "LocalAccountTokenFilterPolicy" = dword:00000001参照: http://forum.sysinternals.com/topic10924.html

少し古いバージョンで動作しませんでした。私はそれを使って、Dell kaceを介してUSMTの作業を行いました。

1
ma034001

これにつまずくかもしれない人のために。リモート実行を妨げるWindows 7上のMicrosoft Windowsからの最新(2013年12月)のセキュリティ更新プログラムがあります。 http://support.Microsoft.com/kb/2893294/en-us を参照してください

[コントロールパネル]、[プログラム]、[プログラムと機能]、[インストールされた更新]の順に選択して、セキュリティ更新プログラムをアンインストールしました。

その後すぐに機能しました。

1
NicL

[〜#〜] uac [〜#〜]を無効にしていない限り、リモートマシンにアクセスできませんでした。

これは、コントロールパネルからローカルで実行するか、cmdを使用して以下を実行する必要があります。

reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f

[〜#〜] uac [〜#〜]が有効になっている間、cmdas 管理者

0
Dmitry

別のコマンドについて、私はネットワークをパブリックから仕事に変更することにしました。
psexecコマンドを再度使用しようとすると、再び機能しました。
したがって、psexecを動作させるには、ネットワークの種類をパブリックから職場または自宅に変更してみてください。

0
Omega Wu