Bevor ich mich mit der Frage befasse, habe ich einige andere Fragen gefunden, die mir ähnlich erscheinen, aber die mein Problem nicht lösen konnten. Hier sind Links zu ihnen:
Remote-Ausführung eines Skripts, das "Als Administrator ausführen" aufruft
/programming/10724591/how-to-remote-execute-an-elevated-remote-script-in-powershell
Nun zu der Frage: Ich muss ein Windows Update-Skript über Powershell auf einem Remotecomputer 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 es einwandfrei. Wenn ich über mstsc eine Remote-Verbindung zum Computer herstelle, Powershell ausführe, OHNE die Ausführung als Administrator zu wählen, und das Skript ausführe, erhalte ich eine Reihe von Fehlern in dieser Richtung: "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: http://www.ehow.com/how_8724332_use-powershell-run-windows-updates.html
Wenn ich mich nun mit Enter-PSSession vom Computer entferne und versuche, das Skript auszuführen, werden Fehler angezeigt, die sich jedoch geringfügig unterscheiden. Sie lauten wie folgt: "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 Rechten ausgeführt werden muss. Ich weiß, wie dies beim Remotezugriff ü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 dabei helfen könnte, Licht ins Dunkel zu bringen, wäre das sehr dankbar.
quelle
Antworten:
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" 0 "Argumenten:" Zugriff verweigert. (Ausnahme von HRESULT: 0x80070005 (E_ACCESSDENIED)) "" ist kein systemeigener Powershell-Fehler. Dies bedeutet, dass diese Zeile fehlschlägt: $ UpdatesDownloader = $ UpdateSession.CreateUpdateDownloader (), diese Zeile versucht, das aktualisierte Downloader-Objekt mithilfe von $ UpdateSession zu erstellen = New-Object -ComObject Microsoft.Update.Session-Objekt.
Ohne zu wissen, wohin der Downloader sich wenden möchte, kann ich nur von einem Mutterschiff ausgehen. Es kann darauf hinweisen, dass Anmeldeinformationen, die Sie haben, während Sie remote mit einem Server verbunden sind, Gegenstand eines Proxys sein können. Dies ist eine gängige Sicherheitsmethode. Benutzer, die über eine Remoteverbindung 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
quelle
http://msdn.microsoft.com/en-us/library/windows/desktop/aa387288(v=vs.85).aspx
Sie können es nicht aus der Ferne aufrufen.
Das ist der Grund. Sie können dies über die geplante Aufgabe tun.
quelle
Zum Ausführen von Remote-PowerShell-Befehlen 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 von PowerShell-Remoting. Es ist jedoch möglich, die Standardeinstellungen zu lockern, wenn Sie dies möchten. Dies erfordert jedoch Änderungen an der PowerShell-Konfiguration.
Übergeben Sie für die Remoteausführung Anmeldeinformationen mit dem Parameter -credentials? z.B
quelle
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 wird.
Von https://docs.microsoft.com/en-us/powershell/jea/session-configurations :
quelle