web-dev-qa-db-ja.com

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

使ってます 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を使用すると、想定どおりに機能します。しかし、コマンドラインでパスワードを入力する必要があります。

11
Tuim

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

UACを有効にすると、psexecが想定どおりに機能しないことがわかります。
いつでもHKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA に設定されています 0 psexecは期待どおりに動作します。

1
Tuim

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

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.
10
nhinkle

管理者以外のユーザーが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
5

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

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

0