PsExecアクセスが拒否されました


11

psexec.exe別のセキュリティコンテキストでプログラムを実行するために使用しています。ただし、プログラムは起動しますが、指定されたセキュリティコンテキストで実行されていないようです。

その最小限の形で:

psexec -u wsadmin -p password cmd

そのウィンドウに入力すると、新しいcmdウィンドウを開始します whoami

C:\Windows\system32>whoami
win-k1r7g38nlkt\wsadmin

C:\Windows\system32>net localgroup administrators
Alias name     administrators
Comment        Administrators have complete and unrestricted access to the computer/domain

Members

-------------------------------------------------------------------------------
Administrator
wsadmin
The command completed successfully.

ご覧のとおり、私は間違いなく他のユーザーです。このユーザーが「管理者グループ」のメンバーであることを確認できます

C:\Windows\system32>mkdir test
Access is denied.

指定したユーザーでrunasを使用すると、想定どおりに機能します。しかし、コマンドラインでパスワードを入力する必要があります。

回答:


10

Windows Vista以降では、UACが有効になっpsexecている場合、管理者アカウントから実行された場合でも、完全な特権を取得するには、昇格トークンを設定する必要があります。これは-hpsexecコマンドラインで属性を渡すことで実行できます。したがって、コマンドを次のように変更します。

psexec -h -u wsadmin -p password cmd

詳細については、次を実行psexec /?

    -h    If the target system is Vista or higher, has the process
          run with the account's elevated token, if available.

9
残念ながら、これにより「PSExecサービスをインストールできませんでした。アクセスが拒否されました」
Tuim

管理者特権のコマンドプロンプトから最初のコマンドも実行していますか、それともローカルのrun-asとして使用していますか?
nhinkle 2013年

元のコマンドは「ユーザー」セキュリティコンテキストを実行します。特定の理由でrun-asを使用できません。
Tuim 2013年

1
使用を含めPSEXECのコマンドを実行します。[管理者として実行『を『選択>』Windows PowerShellを『右クリック>』「スタート>タイプ』のPowerShellを経由して「プロンプト上昇PowerShellの」または「昇格コマンドプロンプト」-hオプションを選択します。
Underverse

@Underverse、管理PSからではなく、ユーザーCMDからpsexecを使用することは可能ですか?CMDを管理コンテキストに移行するためにpsexecを使用したい:)
Suncatcher

5

これは、営業方法を見つけるために私に時間を要したPsExec非管理者ユーザー始まると、2台のWindows 7のコンピュータ間PsExec...無効にUAC( 、EnableLUA=0ConsentPromptBehaviorAdmin=0LocalAccountTokenFilterPolicy=1ファイアウォールが機能しなかったオフ、仕事しませんでしたが...

ここで私は動作する方法を見つけました-JelmerSに感謝します:(PSexecからの情報が提供されたユーザー名とパスワードを使用してマシンに接続していません

これは、別のユーザーとしてコマンドを実行する前に、ローカルの資格情報で共有psexecにアクセスしようとするためADMIN$です。このスレッドによると、psexecを実行する前に資格情報をキャッシュできます。

cmdkey.exe /add:MACHINE_NAME_HERE /user:MACHINE_NAME_HERE\Administrator /pass:PASSWORD_HERE 
psexec.exe \\MACHINE_NAME_HERE -i notepad
cmdkey.exe /delete:MACHINE_NAME_HERE

注-コマンドライン履歴でパスワードを使用したくない場合は、/ passをパスワードなしで使用すると、パスワードを入力するように求められます。
コーダーのジョー、2018

1

私は解決策を見つけました:

UACを有効にすると、psexecが想定どおりに機能しないことがわかります。
たびHKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUAに設定されている0PSEXEC作品予想通り。


4
レジストリの変更を必要としないこの他の方法は-hpsexecコマンドにフラグを追加することです。これは、昇格したトークンを使用してコマンドを実行するように指示します。これは、コンテキストメニューから「管理者として」プロセスを起動することと同じです。
nhinkle 2013年

5
設定EnableLUA0無効にしAdmin Approval Mode、基本的にはUACの中核です、。その結果、UACは無効になります。ソース
VlastimilOvčáčík2013

私にとって-hフラグは機能せず、UACを無効にするのは厄介でしたが、より良い代替案
mTorres

0

ここに私のために働いたものがあります、それはUACを完全に取り除くのではなく、管理者に対してそれをオフにします

コンピューターの構成\ Windowsの設定\セキュリティの設定\ローカルポリシー\セキュリティオプション\ユーザーアカウント制御:管理者承認モードですべての管理者を実行-無効


これは本当に素晴らしいアイデアではありません。さらに、これは他の利用可能なソリューションと比較してどのように改善されていますか?
Seth
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.