Verwenden von PowerShell über MMC zum Ausführen von CMD-Befehlen auf Administratorebene

Verwenden von PowerShell über MMC zum Ausführen von CMD-Befehlen auf Administratorebene

Ich bin neu bei PowerShell. Ich möchte so etwas beim Herunterfahren tun, bevor ich den Computer ausschalte. Ich habe vor, dies mithilfe eines PowerShell-Skripts über Windows MMC/den lokalen Gruppenrichtlinien-Editor erledigen zu lassen.

cmd as admin
echo "SOME COMMAND"
echo "exit"

Grundsätzlich sollte nach dem Auslösen des Herunterfahrens oder Neustartens Folgendes geschehen:

  1. CMD als Administrator öffnen (und bei UAC automatisch „Ja“ auswählen?).

  2. Führen Sie EINIGE BEFEHLE aus (es wird viele geben).

  3. Schließen Sie CMD und lassen Sie dann Windows 10 herunterfahren/neu starten.

Jetzt weiß ich, wie ich MMC dazu bringe, ein PowerShell-Skript hinzuzufügen, das ausgeführt werden soll, bevor der Shutdown-Befehl abgeschlossen ist. Ich muss nur noch die Syntax für die Ausführung der drei oben genannten Schritte kennen.

Um es jedoch klarzustellen:

Mein Hauptanliegen ist, CMD als Administrator öffnen, einen Befehl eingeben und dann CMD beenden zu können. PowerShell führt normalerweise einige bestimmte Befehle als Administrator nicht korrekt aus, CMD jedoch schon. Daher benötigt PowerShell selbst keine Administratorrechte, sondern nur die temporäre Ausführung von CMD.

Es macht mir nichts aus, bei Bedarf bei einer Benutzerkontensteuerung auf JA zu klicken, weil ich denke, wenn es darauf ankommt, kann ich wahrscheinlich einfach sendkeys {TAB}{TAB}{ENTER}oder so etwas verwenden. Was ich im Internet nicht finden kann, ist, wie man ein PowerShell-Skript startet, damit man es speichern kann. Ich sehe jedoch viel über sendkeys in der Syntax. In Bash unter Linux ist es einfach: #!/bin/bashund presto insta-bash, aber Windows scheint in dieser Hinsicht rückständig zu sein.

Wenn es dafür eine bessere Möglichkeit gibt als CMD > Echo „Zeug“ > CMD beenden, lassen Sie es mich bitte wissen. Ich weiß, was ich in jedes Echo-„Zeug“ eingeben möchte (oder besser gesagt, sendkeys, wenn ich das verwende), ich weiß nur nicht, wie ich CMD als Administrator öffne.

Danke.

Antwort1

Ich verstehe wirklich nicht, was Sie wollen.

Das Ziel von PowerShell ist jedoch nicht, ein GUI-Automatisierungstool zu entwickeln. Einige dieser Funktionen können Sie mit SendKeys genauso erledigen wie mit VBScript.

Da Sie neu sind, ist es wichtig, dass Sie sich mit PowerShell vertraut machen, um sicherzustellen, dass Sie es wirklich verstehen und wissen, wann und warum Sie es verwenden sollten. Suchen Sie auf YouTube nach „Beginning PowerShell“ und führen Sie mit SendKeys eine Websuche nach PowerShell durch ---Beispiel---

Was Ihren Anwendungsfall betrifft:

Grundsätzlich sollte nach dem Auslösen des Herunterfahrens oder Neustartens Folgendes geschehen:

  1. CMD als Administrator öffnen (und bei UAC automatisch „Ja“ auswählen?).

Das Starten von PowerShell erfolgt über eine PowerShell-Eingabeaufforderung. Sie müssen cmd.exe nicht öffnen, um es zu verwenden. PowerShell kann alles ersetzen, was cmd.exe tut. Die UAC zu akzeptieren ist nur dann sinnvoll, wenn Sie versuchen, einen Befehl mit erhöhten Rechten auszuführen. PowerShell überspringt die UAC nicht, da Sie Administratoranmeldeinformationen angeben müssen. Windows erfordert dies.

  1. Führen Sie EINIGE BEFEHLE aus (es wird viele geben).

Erstellen Sie einfach ein Skript mit den gewünschten Befehlen.

  1. Schließen Sie CMD und lassen Sie dann Windows 10 herunterfahren/neu starten.

PowerShell wird standardmäßig beendet, sobald das Skript fertig ist. Sofern Sie nicht ausdrücklich anweisen, dies nicht zu tun.

Was Sie anscheinend haben möchten, sind Abmelde- und Anmeldeskripte. Dazu müssen Sie diese schreiben und sie den Anmelde-/Abmeldegruppen- oder lokalen Computerrichtlinieneinstellungen hinzufügen.

Verwenden Sie PowerShell und Gruppenrichtlinien für Ihr Anmeldeskript

Verwenden der Gruppenrichtlinie zum Bereitstellen eines Windows PowerShell-Anmeldeskripts

*Update basierend auf den Thread-Fortsetzungen unten*

Was Sie anscheinend haben möchten, sind Abmelde- und Anmeldeskripte. Dazu müssen Sie diese schreiben und sie den Richtlinieneinstellungen für die Anmelde-/Abmeldegruppe oder den lokalen Computer hinzufügen. Sie können dieselben Dinge für das Herunterfahren festlegen. Denken Sie daran, dass ein Neustart eine Anmeldeaktion auslöst. Auch dafür gibt es eine Richtlinieneinstellung. Die PowerShell-Konsole führt jeden Befehl aus, den cmd.exe ausführen kann. Sie müssen sie jedoch korrekt aufrufen. Wenn UAC ein Problem darstellt, deaktivieren Sie es vollständig. Das bedeutet jedoch, dass Sie damit alle Sicherheitsrisiken in Kauf nehmen.

Das Akzeptieren von UAC ist nur möglich, wenn Sie versuchen, einen Befehl mit erhöhten Rechten auszuführen. PowerShell überspringt UAC nicht, da Sie Administratoranmeldeinformationen angeben müssen. Windows erfordert dies.

Dafür ist Start-Process -Verb RunAs da und es hat einen Anmeldeinformationsschalter, den Sie aber trotzdem angeben müssen. Sie werden also immer noch dazu aufgefordert. Sie können Anmeldeinformationen zur Wiederverwendung in einer sicheren Datei speichern, müssen dies aber tun, bevor Sie Skripts ausführen.

Sie können das Folgende auf eigenes Risiko versuchen.

https://docs.microsoft.com/en-us/previous-versions/technet-magazine/cc162321(v=msdn.10)

https://github.com/sushihangover/SushiHangover-PowerShell/tree/master/modules/PSUserTools

(insbesondere das Skript mit dem Namen Start-ProcessAsAdministrator.ps1)

verwandte Informationen