Warum funktioniert das zeilenweise Ausführen eines Powershell-Skripts, das gleiche gilt jedoch nicht durch die Ausführung einer Skriptdatei?

Warum funktioniert das zeilenweise Ausführen eines Powershell-Skripts, das gleiche gilt jedoch nicht durch die Ausführung einer Skriptdatei?

Unter Windows 7 Prof führt das Ausführen der Powershell-Befehle (Ver. 3) in Windows Powershell_ISE (als Administrator) zum erwarteten Ergebnis (Hinzufügen eines Domänenbenutzers zur lokalen/Computer-Administratorgruppe), das Starten aus einer Skript-PS1-Datei in einem Ordner C:\Users\myDomainUser\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startupführt jedoch nicht dazu!?

$objGroup = [ADSI]("WinNT://myComputerName/Администраторы")'Administrators in Russian
$objUser = [ADSI]("WinNT://myDomainName/myDomainUser")
$objGroup.PSBase.Invoke("Add", $objUser.PSBase.Path)

Warum?
Wie kann ich beim Neustart von Windows 7 einen Domänenbenutzer besser zur lokalen Administratorgruppe hinzufügen?

Antwort1

Aus Sicherheitsgründen (und zusätzlich zur Skriptausführungsrichtlinie) hat Microsoft .ps1-Dateien so eingestellt, dass sie mit Notepad geöffnet werden. (Dummes Microsoft.) Geplante Aufgaben sind möglicherweise eine bessere Lösung, aber wenn Sie das Skript aus dem Startordner starten möchten, würde ich empfehlen, eine Verknüpfung zum Skript im Startordner zu erstellen und das Skript an einem anderen Ort zu speichern. Ich verwende Verknüpfungen, die ungefähr so ​​aussehen:C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -file "C:\Scripts\Powershell\Tool.ps1"

Wenn Sie diese Syntax verwenden, beachten Sie, dass alle zusätzlichen Optionen, die Sie möglicherweise an Powershell übergeben möchten, vor der Option -file stehen müssen. Alles nach der Option -file wird entweder als Pfad zum Skript oder als Option/Argument interpretiert, das an das Skript übergeben werden soll.

Antwort2

Sie können versuchen, es mit dem Taskplaner auszuführen.

Starten Sie den Taskplaner (Startmenü, Alle Programme, Zubehör, Systemprogramme, Taskplaner). Wählen Sie im rechten Fensterbereich „Task erstellen“. Geben Sie einen Namen für den Task ein. Ändern Sie den Benutzer, wenn Sie möchten. Wählen Sie „Mit höchsten Berechtigungen ausführen“. Erstellen Sie auf der Registerkarte „Trigger“ einen Trigger für „bei der Anmeldung“ oder „beim Start“, je nachdem, was Sie möchten. Erstellen Sie auf der Registerkarte „Aktionen“ eine neue Aktion, die auf das Skript verweist.

verwandte Informationen