Ausführen von RSAT Tools als anderer Benutzer mit Powershell

2690
Langhard

Ich versuche, einige RSAT-Tools als ein anderer Benutzer (Domain-Admin) aus einem Powershell-Script auszuführen.

Hier ist mein Laufcode:

Start-Process -FilePath "C:\Windows\system32\mmc.exe" -ArgumentList "C:\Windows\system32\gpmc.msc" -Credential (Get-Credential -Credential MYDOMAIN\myadminuser) 

Und was ich bekomme, ist ein Fehler, der besagt: Dieser Befehl kann nur mit erhöhten Berechtigungen eingeleitet werden. Das sagt mir nun, dass ich das Skript aufgrund von UAC-Einschränkungen mit einem Admin-Benutzer ausführen musste. Genau das versuche ich nicht.

Hat jemand einen hilfreichen Beitrag für mich?

Vielen Dank!

BEARBEITEN

Um es klarer zu machen, habe ich das ganze Skript angehängt.

$title = "Windows 8.1 RSAT Tools" $message = "Verwaltungskonsole"  $ad = New-Object System.Management.Automation.Host.ChoiceDescription "&AD Verwaltung", ` "Active Directory-Benutzer und -Computer"  $gpo = New-Object System.Management.Automation.Host.ChoiceDescription "&GPO Verwaltung", ` "Gruppenrichtlinienverwaltung"  $options = [System.Management.Automation.Host.ChoiceDescription[]]($ad, $gpo)  $result = $host.ui.PromptForChoice($title, $message, $options, 0)   switch ($result) { 0  { Start-Process -Verb RunAs -FilePath "C:\windows\system32\mmc.exe" -ArgumentList "C:\windows\system32\dsa.msc" -Credential (Get-Credential -Credential MYDOMAIN\myadminuser) } 1  { Start-Process -Verb RunAs -FilePath "C:\windows\system32\mmc.exe" -ArgumentList "C:\windows\system32\gpmc.msc" -Credential (Get-Credential -Credential MYDOMAIN\myadminuser) } } 
0

1 Antwort auf die Frage

1
nohwnd

Dies kann auf zwei Probleme zurückzuführen sein:

  • Das Tool muss tatsächlich mit erhöhten Rechten ausgeführt werden, da es sonst nicht erlaubt ist, die erforderlichen Änderungen vorzunehmen. Dies ist normalerweise der Fall, wenn Sie das Tool lokal auf dem Computer ausführen und Änderungen an diesem Computer vornehmen. In diesem Fall müssen Sie die Konsole erhöhen, bevor Sie den Befehl ausführen. Dies kann direkt von Powershell aus erfolgen:

    $newProcess = New-Object System.Diagnostics.ProcessStartInfo "powershell"; #Indicate that the process should be elevated $newProcess.Verb = "runas"; #Start the new process [System.Diagnostics.Process]::Start($newProcess) | Out-Null 

Quelle hier.

  • Das Tool ist nicht ordnungsgemäß konfiguriert und wird nur ausgeführt, wenn der entsprechende Benutzer für die erforderlichen Änderungen ausreicht. Dies ist normalerweise der Fall, wenn der Remote-Server vom Tool verwaltet wird. In diesem Fall können Sie den Start des Befehls (asAdmin, asInvoke, asHighest) mithilfe des Anwendungskompatibilitäts-Toolkits ( Download ) und der Anwendung von RunAsInvoker-Fix auf die ausführbare Datei ändern.
    • Öffnen Sie den Kompatibilitätsadministrator
    • Erstellen Sie einen neuen Fix in der aktuellen Datenbank
    • Legen Sie den Pfad zur ausführbaren Datei fest
    • Wählen Sie in der Liste der Fixes RunAsInvoker aus, klicken Sie auf Voreinstellungen, und geben Sie in das Modul EditBox den Typ * ein, und klicken Sie auf Hinzufügen
    • Speichern Sie die Datenbank und installieren Sie sie, indem Sie mit der rechten Maustaste darauf klicken

Leider funktioniert das bei MMC nicht.

Vielen Dank für Ihre Antwort! Ich habe den ersten Teil eigentlich schon ausprobiert, aber es hat nicht funktioniert. Ich werde den zweiten Teil Ihrer Antwort ansehen und darauf zurückkommen! Langhard vor 10 Jahren 0
Von welchem ​​Werkzeug sprechen wir genau? nohwnd vor 10 Jahren 0
Das Tool ist mmc.exe und die Konsole, die ich zu öffnen versuche, ist entweder das Active Directory oder die GPO-Konsole. (dsa.msc / gpmc.msc). Ich kann das Programm auch mit shift-righclick ausführen und dann ohne Probleme meine Anmeldeinformationen für Domänen-Admins eingeben. Ich hätte jedoch gerne ein Powershell-Skript mit einem Menü für andere Admin-Benutzer, in dem sie die Konsole auswählen können, die sie benötigen Sie werden aufgefordert, Ihre Anmeldeinformationen einzugeben. Langhard vor 10 Jahren 0