PS-Skript läuft nicht aus einem elevated cmd
Moin moin,
da es manchmal nicht ohne die guten alten Batchfiles geht, rufe ich aus einem solchen ein Powershell-Skript auf. Leider funktioniert das nur, wenn das Batchfile _nicht!_ in einem elevated prompt läuft, obwohl ich "Set-ExecutionPolicy Unrestricted" eingestellt habe...
Ok, hier die Langform:
Aus einem Batchfile (.cmd) heraus verschiebe ich mit robocopy Dateien, erstelle eine Dateiliste und rufe dann in einer Schleife (1x pro vorhandener Datei) ein Powershell-Skript auf, dass u.a. den Eigentümer der Dateien ermittelt.
robocopy benötigt elevated rights, um die NTFS-Attribute und damit den Eigentümer mitzunehmen, also starte ich das .cmd-File aus einem elevated prompt. Beim Aufruf des Powershell-Skripts aus dem .cmd-File heraus via 'powershell C:\scripts\test.ps1' erhalte ich dann die Fehlermeldung "File C:\scripts\test.ps1 cannot be loaded because the execution of scripts is disabled on this system."
Öffne ich eine Powershell mit elevated rights und führe das Powershell-Skript direkt aus, läuft es einwandfrei los. Starte ich das .cmd-File aus einem non-elevated prompt heraus, wird das Powershell-Skript ebenfalls klaglos aufgerufen, allerdings scheitert robocopy wg. den NTFS-Attributen.
Zusammengefasst:
- Set-ExecutionPolicy Unrestricted eingestellt
- Aufruf Powershell-Skript direkt klappt mit und ohne Elevation, sowohl aus der Powershell heraus als auch vom prompt via powershell .\test.ps1
- Aufruf Powershell-Skript aus einem .cmd-File heraus klappt _nicht_ im elevated prompt
Vielleicht stehe ich ja grad quer im Stall, aber ich finde keine Lösung. Achja, ich sitze an einem Windows 7 Pro 64Bit mit lokalen Adminrechten, UAC steht auf höchster Stufe. Um dem ganzen die Krone aufzusetzen: Auf einem Server 2008R2 ist das komplette Teil schon seit Wochen problemlos am Laufen (UAC eine Stufe niedriger), ich soll es nun nur um ein paar Features erweiteren und dachte mir: Hey, das machste mal lieber nicht auf dem Server, sondern auf deiner Maschine.
Jemand ne Idee hierzu?
Danke.
Cheers,
jsysde
da es manchmal nicht ohne die guten alten Batchfiles geht, rufe ich aus einem solchen ein Powershell-Skript auf. Leider funktioniert das nur, wenn das Batchfile _nicht!_ in einem elevated prompt läuft, obwohl ich "Set-ExecutionPolicy Unrestricted" eingestellt habe...
Ok, hier die Langform:
Aus einem Batchfile (.cmd) heraus verschiebe ich mit robocopy Dateien, erstelle eine Dateiliste und rufe dann in einer Schleife (1x pro vorhandener Datei) ein Powershell-Skript auf, dass u.a. den Eigentümer der Dateien ermittelt.
robocopy benötigt elevated rights, um die NTFS-Attribute und damit den Eigentümer mitzunehmen, also starte ich das .cmd-File aus einem elevated prompt. Beim Aufruf des Powershell-Skripts aus dem .cmd-File heraus via 'powershell C:\scripts\test.ps1' erhalte ich dann die Fehlermeldung "File C:\scripts\test.ps1 cannot be loaded because the execution of scripts is disabled on this system."
Öffne ich eine Powershell mit elevated rights und führe das Powershell-Skript direkt aus, läuft es einwandfrei los. Starte ich das .cmd-File aus einem non-elevated prompt heraus, wird das Powershell-Skript ebenfalls klaglos aufgerufen, allerdings scheitert robocopy wg. den NTFS-Attributen.
Zusammengefasst:
- Set-ExecutionPolicy Unrestricted eingestellt
- Aufruf Powershell-Skript direkt klappt mit und ohne Elevation, sowohl aus der Powershell heraus als auch vom prompt via powershell .\test.ps1
- Aufruf Powershell-Skript aus einem .cmd-File heraus klappt _nicht_ im elevated prompt
Vielleicht stehe ich ja grad quer im Stall, aber ich finde keine Lösung. Achja, ich sitze an einem Windows 7 Pro 64Bit mit lokalen Adminrechten, UAC steht auf höchster Stufe. Um dem ganzen die Krone aufzusetzen: Auf einem Server 2008R2 ist das komplette Teil schon seit Wochen problemlos am Laufen (UAC eine Stufe niedriger), ich soll es nun nur um ein paar Features erweiteren und dachte mir: Hey, das machste mal lieber nicht auf dem Server, sondern auf deiner Maschine.
Jemand ne Idee hierzu?
Danke.
Cheers,
jsysde
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 195455
Url: https://administrator.de/contentid/195455
Ausgedruckt am: 22.11.2024 um 15:11 Uhr
5 Kommentare
Neuester Kommentar
Denke das die Execution-Policy bei Dir nur auf Userebene eingestellt ist.
Mach mal ein:
dort kannst du sehen ob die Richtlinie für Scripts nur auf User- oder auch auf Machine-Ebene eingestellt ist.
ein...
in einer elevated Powershell sollte dein Problem beheben...
Grüße Uwe
Mach mal ein:
get-executionpolicy -list
dort kannst du sehen ob die Richtlinie für Scripts nur auf User- oder auch auf Machine-Ebene eingestellt ist.
ein...
Set-ExecutionPolicy -Scope LocalMachine -Policy Unrestricted
Grüße Uwe