it-swarm.com.de

Führen Sie Remote Powershell als Administrator aus

Bevor ich mich mit der Frage befasse, habe ich einige andere Fragen gefunden, die meinen ähnlich zu sein scheinen, aber mein Problem nicht lösen konnten. Hier sind Links zu ihnen:

Führen Sie ein Skript aus der Ferne aus, das "Als Administrator ausführen" aufruft.

https://stackoverflow.com/questions/10724591/how-to-remote-execute-an-elevated-remote-script-in-powershell

Nun zur Frage: Ich muss ein Windows Update-Skript auf einem Remotecomputer über Powershell ausführen. Wenn ich über mstsc eine Remote-Verbindung zum Computer herstelle, Powershell als Administrator ausführe und das Windows Update-Skript ausführe, funktioniert dies einwandfrei. Wenn ich über mstsc eine Remote-Verbindung zum Computer herstelle, Powershell ausführe, ohne den Lauf als Administrator auszuwählen, und das Skript ausführe, wird in dieser Zeile eine Reihe von Fehlern angezeigt: "Ausnahme beim Aufrufen von" Download "mit" 0 "-Argumenten:" Ausnahme von HRESULT: 0x80240044 ""

Dies geschieht nur, wenn ich es OHNE Administratorrechte ausführe.

Das Skript, das ich ausführe, lautet wie folgt: http://www.ehow.com/how_8724332_use-powershell-run-windows-updates.html

Wenn ich jetzt mit Enter-PSSession eine Remote-Verbindung zum Computer herstelle und versuche, das Skript auszuführen, werden Fehler angezeigt, die sich jedoch etwas unterscheiden. Sie gehen in diese Richtung: "Ausnahme beim Aufrufen von" CreateUpdateDownloader "mit" 0 "-Argumenten:" Zugriff verweigert. (Ausnahme von HRESULT: 0x80070005 (E_ACCESSDENIED))

Ich bin offen für Vorschläge, was dieses Problem verursachen könnte, aber ich denke, ich habe es herausgefunden. Ich glaube, dass die Powershell-Sitzung mit erhöhten Berechtigungen ausgeführt werden muss. Ich weiß, wie dies beim Remoting über mstsc zu tun ist, konnte jedoch keine Möglichkeit finden, dies über Enter-PSSession zu tun. Ich habe gegoogelt und gegoogelt, aber nichts gefunden. Wenn jemand helfen könnte, etwas Licht ins Dunkel zu bringen, wäre das sehr dankbar.

14
Jon

http://msdn.Microsoft.com/en-us/library/windows/desktop/aa387288 (v = vs.85) .aspx

Sie können es nicht remote aufrufen.

Das ist der Grund. Sie können dies über die geplante Aufgabe tun.

3
River

Wenn Sie Befehle remote ausführen, werden sie mit Administratorrechten ausgeführt, da nur Administratoren Befehle in Powershell remote ausführen dürfen. Der Fehler "Ausnahme beim Aufrufen von" CreateUpdateDownloader "mit den Argumenten" 0 ":" Zugriff verweigert. (Ausnahme von HRESULT: 0x80070005 (E_ACCESSDENIED) = New-Object -ComObject Microsoft.Update.Session-Objekt.

Ohne zu wissen, wohin der Downloader zu gelangen versucht, kann ich nur das Mutterschiff annehmen. Dies kann darauf hinweisen, dass Anmeldeinformationen, die Sie während einer Remoteverbindung mit einem Server haben, Gegenstand eines Proxys sein könnten. Dies ist eine gängige Sicherheitspraxis. Benutzer, die remote mit Computern verbunden sind, können keine Elemente direkt aus dem Internet herunterladen (unabhängig davon, wie vertrauenswürdig die Quelle ist).

Hoffe das hilft, Chris

3

Um Remote-Powershell-Befehle auszuführen, MÜSSEN Sie als Administrator auf dem Computer ausgeführt werden, von dem aus Sie die Befehle starten, zumindest in der Standardkonfiguration. Dies ist eine dokumentierte Einschränkung des PowerShell-Remoting. Es ist jedoch möglich, die Standardeinstellungen zu lockern, wenn Sie sich dazu entschlossen haben. Dies erfordert jedoch Änderungen an der PowerShell-Konfiguration.

Übergeben Sie für die Remote-Ausführung Anmeldeinformationen mit dem Parameter -credentials? z.B.

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

In Bezug auf Windows-Updates auf Remoteservern konnte ich es zum Laufen bringen, indem ich einen JEA-Endpunkt auf dem Remoteserver einrichtete, der als lokales virtuelles Konto ausgeführt werden soll.

Von https://docs.Microsoft.com/en-us/powershell/scripting/learn/remoting/jea/session-configurations :

Lokales virtuelles Konto

Wenn die von diesem JEA-Endpunkt unterstützten Rollen alle zum Verwalten des lokalen Computers verwendet werden und ein lokales Administratorkonto ausreicht, um die Befehle erfolgreich auszuführen, sollten Sie JEA für die Verwendung eines lokalen virtuellen Kontos konfigurieren. Virtuelle Konten sind temporäre Konten, die für einen bestimmten Benutzer eindeutig sind und nur für die Dauer ihrer PowerShell-Sitzung gültig sind. Auf einem Mitgliedsserver oder einer Workstation gehören virtuelle Konten zur Gruppe Administratoren des lokalen Computers und haben Zugriff auf die meisten Systemressourcen. Auf einem Active Directory-Domänencontroller gehören virtuelle Konten zur Gruppe der Domänenadministratoren der Domäne.

Quickfix¹:

(1.) Erstellen Sie eine neue uneingeschränkte (und dauerhafte!) Sitzungskonfiguration auf ComputerB (Remote-Server):

New-PSSessionConfigurationFile -RunAsVirtualAccount -Path .\VirtualAccount.pssc
# Note this will restart the WinRM service:
Register-PSSessionConfiguration -Name 'VirtualAccount' [-ShowSecurityDescriptorUI] -Path .\VirtualAccount.pssc -Force
# Check the Permission property:
Get-PSSessionConfiguration -Name 'VirtualAccount'
# Those users will have full unrestricted access to the system!

(2.) Stellen Sie von ComputerA (lokaler Client) aus eine Verbindung zu unserer uneingeschränkten Sitzungskonfiguration auf ComputerB her:

New-PSSession -ComputerName 'ComputerB' -ConfigurationName 'VirtualAccount' | Enter-PSSession
[ComputerB]: new-object -com "Microsoft.Update.Downloader" # Yay!

¹ kopiert von https://stackoverflow.com/a/60046097/1322112

1
jsmitty