インストールをリモートで開始しようとしていますが、UACを無効にしたくありません。 psexecを使用してリモートでプロセスを開始すると、インストーラーはUACプロンプトを待機するだけで停止します。一時ファイルのクリーニング、サービスの再起動などの他のタスクを実行すると、アクセス拒否エラーが発生します。とにかく、psexecがAdministratorでのログインなどTrustedInstaller特権などでUACを歩き回ることはできますか?
ちなみに私はWindows 2008 R2をターゲットにしていますが、この質問はVista、2008、Windows 7にも当てはまると思います。
-uオプションを使用して、そのマシンへのローカル管理者アクセス権を持つアカウント(ローカルアカウント、ドメイン管理者アカウントなど)を指定する必要があります
-u Specifies optional user name for login to remote computer.
例えば
psexec \\pc999.myDomain.loc -u pc999\Administrator <your exe
>
ここでは-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スイッチの存在の証拠を追加)
どうやら、psexecが提供されたログインを無視していたためではなく、私のプロセスがブロックされていたようです。
理由は不明ですが、Vistaをクライアントマシンとして使用すると、-uおよび-pパラメーターで渡された資格情報が実際にサーバーへのログインに使用されませんでした(サーバーのイベントビューアーを使用して構成されます)。代わりに、使用されていたのは常にログインしたユーザーでした。どうやらこれは、両方のマシンが同じドメインにあるときに起こることです。
資格情報マネージャー([コントロールパネル]> [ユーザーアカウント]> [ネットワークパスワードの管理])を開き、psexecに使用したいユーザーでターゲットマシンの新しいセットを作成する必要がありました。
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
私もこの問題を抱えていましたが、資格情報を資格情報マネージャーに追加するミゲルの解決策が問題を解決しました
Psexec 1.98を使用してドメイン内のクライアントとサーバーの両方でWindows 7 32ビットを実行する
これはバグなのでしょうか。
私は同じ問題を抱えています。私が実行するコマンドは、psexec.exe -accepteula -n 120\MyServer -u User -p Password cmd "/ C dirです。
私はそれをwin2008 r2から実行しており、ターゲット(MyServer)もwin2008 r2です。
資格証明を追加した後、ミゲルの提案はうまくいきました。
-sフラグを使用して、SYSTEMコンテキストでコマンドを実行できます。これは、ネットワークの他の場所にアクセスする必要がある他の資格情報でコマンドをまだ実行していないことを前提としています。