管理者としてリモートPowerShellを実行する


14

質問に飛び込む前に、私の質問に似ていると思われるいくつかの他の質問を見つけましたが、それらは私の問題を解決することができませんでした。それらへのリンクは次のとおりです。

「管理者として実行」を呼び出すスクリプトをリモートで実行します

/programming/10724591/how-to-remote-execute-an-elevated-remote-script-in-powershell

次に質問に答えます。Powershellを介してリモートマシンでWindows Updateスクリプトを実行する必要があります。mstsc経由でマシンにリモート接続し、管理者としてPowershellを実行し、Windows Updateスクリプトを実行すると、正常に動作します。mstsc経由でマシンにリモート接続し、管理者として実行を選択せず​​にPowershellを実行し、スクリプトを実行すると、次の行に沿って多数のエラーが表示されます。 HRESULTからの例外:0x80240044 ""

これは、管理者権限なしで実行した場合にのみ発生します。

私が実行しているスクリプトは次のとおりです。http//www.ehow.com/how_8724332_use-powershell-run-windows-updates.html

今、Enter-PSSessionを使用してマシンにリモート接続し、スクリプトを実行しようとすると、エラーが発生しますが、それらは少し異なります。彼らはこの行に沿っています:「0」引数で「CreateUpdateDownloader」を呼び出す例外:「アクセスが拒否されました。(HRESULTからの例外:0x80070005(E_ACCESSDENIED)) ""

この問題を引き起こしている可能性があるものについては提案を受け入れていますが、私はそれを理解していると思います。Powershellセッションは昇格した特権で実行する必要があると思います。私はmstsc経由でリモーティング中にこれを行う方法を知っていますが、Enter-PSSession経由でこれを行う方法を見つけることができませんでした。GoogledとGoogledを使用しましたが、何も見つかりませんでした。誰かがこれに何らかの光を当てるのを手伝うことができれば、それは大歓迎です。


私はテストするコンソールにいませんが、リモートetsnセッション(Enter-PSSession)を取得した場合は、「Start-Process PowerShell –Verb RunAs」と入力してEnterキーを押します。管理者プロンプトが表示されますか?もしそうなら、これをあなたが受け入れられる答えに変更します。そうでない場合は、デスクに戻ったときにテストします。
TheCleaner

ここで考えられる答えserverfault.com/a/474031/23300
Nic

回答:


3

コマンドをリモートで実行すると、管理者のみがPowerShellでコマンドをリモートで実行できるため、管理者権限で実行されます。エラー、「「0」引数で「CreateUpdateDownloader」を呼び出す例外:「アクセスが拒否されました。」(HRESULTからの例外:0x80070005(E_ACCESSDENIED)) ""はネイティブPowerShellエラーではなく、この行が失敗していることを示しています。$ UpdatesDownloader = $ UpdateSession.CreateUpdateDownloader()、この行は$ UpdateSessionを使用してupdatedownloaderオブジェクトを作成しようとしています= New-Object -ComObject Microsoft.Update.Sessionオブジェクト。

ダウンローダーがどこに手を伸ばそうとしているのか知らずに、私はマザーシップを仮定することができます。サーバーにリモート接続している間に持っている資格情報がプロキシの対象になる可能性があることを示す場合があります。これは一般的なセキュリティ対策であり、マシンにリモート接続しているユーザーは、インターネットからアイテムを直接ダウンロードできません(ソースの信頼度に関係なく)。

これがお役に立てば幸いです、クリス



2

リモートPowerShellコマンドを実行するには、コマンドを起動するマシン上で、少なくともすぐに使用可能な構成で管理者として実行する必要があります。これは、PowerShellリモーティングの文書化された制限ですが、決定した場合はデフォルトを緩和することは可能ですが、それにはPowerShell構成の変更が伴います。

リモート実行の場合、-credentialsパラメーターを使用して資格情報を渡しますか?例えば

Enter-PSSession -Credential(Get-Credential) -ComputerName <remotehost>

Windows 2012 Serverを使用し、ADを設定せずに、資格情報として「MicrosoftAccount \ Administrator」を使用し、リモート管理者のパスワードを使用してみてください。ADを使用せずに完全修飾ユーザー名を使用することは、常に私にとって不必要な面倒のように思えます。
-fuero

1

リモートサーバー上のWindows Updateについては、リモートサーバー上のJEAエンドポイントをローカル仮想アカウントとして実行するように設定することで、それを機能させることができました。

https://docs.microsoft.com/en-us/powershell/jea/session-configurationsから:

ローカル仮想アカウント

このJEAエンドポイントでサポートされるロールがすべてローカルマシンの管理に使用され、ローカル管理者アカウントでコマンドを正常に実行するのに十分な場合、ローカル仮想アカウントを使用するようにJEAを構成する必要があります。仮想アカウントは、特定のユーザーに固有の一時的なアカウントであり、PowerShellセッションの間のみ有効です。メンバーサーバーまたはワークステーションでは、仮想アカウントはローカルコンピューターのAdministratorsグループに属し、ほとんどのシステムリソースにアクセスできます。Active Directoryドメインコントローラーでは、仮想アカウントはドメインのDomain Adminsグループに属します。


これは私を助けました!JEAは素晴らしいことを思い出させてくれてありがとう!
B_Dubb42
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.