web-dev-qa-db-ja.com

psexecを使用して、UACの相互作用を必要とするインストールまたはその他のタスクを開始する方法

インストールをリモートで開始しようとしていますが、UACを無効にしたくありません。 psexecを使用してリモートでプロセスを開始すると、インストーラーはUACプロンプトを待機するだけで停止します。一時ファイルのクリーニング、サービスの再起動などの他のタスクを実行すると、アクセス拒否エラーが発生します。とにかく、psexecがAdministratorでのログインなどTrustedInstaller特権などでUACを歩き回ることはできますか?

ちなみに私はWindows 2008 R2をターゲットにしていますが、この質問はVista、2008、Windows 7にも当てはまると思います。

7
Miguel Ventura

-uオプションを使用して、そのマシンへのローカル管理者アクセス権を持つアカウント(ローカルアカウント、ドメイン管理者アカウントなど)を指定する必要があります

 -u         Specifies optional user name for login to remote
            computer.

例えば

psexec \\pc999.myDomain.loc -u pc999\Administrator <your exe>

1
Izzy

ここでは-hパラメータが重要です。これがないと、psexecはWindows Vista以降のUAC昇格された特権でコマンドを実行しません。

C:\Users\merickson>psexec /?

PsExec v1.97 - Execute processes remotely
Copyright (C) 2001-2009 Mark Russinovich
Sysinternals - www.sysinternals.com

PsExec executes a program on a remote system, where remotely executed console
applications execute interactively.

Usage: psexec [\\computer[,computer2[,...] | @file]][-u user [-p psswd]
 [-n s][-l][-s|-e][x][-i [session]][-c [-f|-v]][-w directory][-d][-<priority>]
 [-a n,n,...] cmd [arguments]

...

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

(編集:以下のコメントごとに-hスイッチの存在の証拠を追加)

12
Skyhawk

どうやら、psexecが提供されたログインを無視していたためではなく、私のプロセスがブロックされていたようです。

理由は不明ですが、Vistaをクライアントマシンとして使用すると、-uおよび-pパラメーターで渡された資格情報が実際にサーバーへのログインに使用されませんでした(サーバーのイベントビューアーを使用して構成されます)。代わりに、使用されていたのは常にログインしたユーザーでした。どうやらこれは、両方のマシンが同じドメインにあるときに起こることです。

資格情報マネージャー([コントロールパネル]> [ユーザーアカウント]> [ネットワークパスワードの管理])を開き、psexecに使用したいユーザーでターゲットマシンの新しいセットを作成する必要がありました。

1
Miguel Ventura
psexec \<remote IP> -u user -p password -h netsh advfi
rewall firewall add rule name="AllowRDP " dir=in action=allow protocol=TCP local
port=3389
1
user235756

私もこの問題を抱えていましたが、資格情報を資格情報マネージャーに追加するミゲルの解決策が問題を解決しました

Psexec 1.98を使用してドメイン内のクライアントとサーバーの両方でWindows 7 32ビットを実行する

これはバグなのでしょうか。

0
aL3891

私は同じ問題を抱えています。私が実行するコマンドは、psexec.exe -accepteula -n 120\MyServer -u User -p Password cmd "/ C dirです。

私はそれをwin2008 r2から実行しており、ターゲット(MyServer)もwin2008 r2です。

資格証明を追加した後、ミゲルの提案はうまくいきました。

0
Ed Sykes

-sフラグを使用して、SYSTEMコンテキストでコマンドを実行できます。これは、ネットワークの他の場所にアクセスする必要がある他の資格情報でコマンドをまだ実行していないことを前提としています。

0
Ryan Bolger