PowerShell Skript lässt sich auf Windows 10 Computer nicht ausführen, was muss ich genau tun um ausreichend Berechtigung zu erhalten?
Ich verwende Hyper-V unter Windows 10 zur Virtualisierung und möchte mittels PowerShell Skript meine Virtuellen Maschinen auf einen vorhandenen Prüfpunkt zurücksetzen. Der Speicherort der VM's ist Lokal.
Wenn ich das PowerShell Skript als Administrator ausführe erhalte ich folgende Fehlermeldung:
Sie besitzen nicht die erforderliche Berechtigung für diese Aufgabe. Wenden Sie sich an den Administrator der Autorisierungsrichtlinie für Computer "DESKTOP-PC".
Mein PowerShell Skript:
Die Fehlermeldung:
Frage steht oben.
3 Antworten
Ich habe keien Ahnung was Du da treibst, bei mir läuft dergleichen problemlos.
Es macht ein Unterschied ob Du ein Script Als Administrator ausführst, oder es nur in einem Profil mit Adminrechten per Mausklick startest. Im letzteren Fall wird es ohne Adminrechte gestartet!
Immerhin gibt's die gute alte Technik des Selfelevating Script. (ein Programm starten, welches ohne Admirechte einen Fehler zurückgibt und in diesem Fall sich selbst nochmal mit Adminanforderung starten...
net session >$Null 2>&1 #Oldschool Admintest
if (!$?){
Start-Process powershell.exe -Verb RunAs -ArgumentList ('-executionpolicy bypass -file "{0}" -elevated' -f ($myinvocation.MyCommand.Definition))
exit $LASTEXITCODE
}
#ab hier alles, was als Admin laufen soll...
'ich laufe als Admin'
pause
Dito mit Prüfung über ein .Net-Assembly
$currentUser = New-Object Security.Principal.WindowsPrincipal $([Security.Principal.WindowsIdentity]::GetCurrent())
$currentUser.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)|?{!$_}|%{
Start-Process powershell.exe -Verb RunAs -ArgumentList ('-executionpolicy bypass -file "{0}" -elevated' -f ($myinvocation.MyCommand.Definition))
exit $LASTEXITCODE
}
#ab hier alles, was als Admin laufen soll...
'ich laufe als Admin'
pause
Ich persönlich finde die altmodische Variante einprägsamer, für den täglichen Einsatz.
Füge Scripte, welche mit Adminrechten Ausgeführt werden sollen, in eines der obigen Elevatorscripte ein, dann sollte es mit den Rechten klappen....
"Es macht ein Unterschied ob Du ein Script Als Administrator ausführst, oder es nur in einem Profil mit Adminrechten per Mausklick startest."
Genau das war mein Fehler....manchmal scheiterst an den einfachen Dingen :D
Danke Dir, du hast mir damit wirklich sehr weitergeholfen.
Damit hat es funktioniert:
net session >$Null 2>&1 #Oldschool Admintest
if (!$?){
Start-Process powershell.exe -Verb RunAs -ArgumentList ('-executionpolicy bypass -file "{0}" -elevated' -f ($myinvocation.MyCommand.Definition))
exit $LASTEXITCODE
}
#ab hier alles, was als Admin laufen soll...
'ich laufe als Admin'
pause
Erstmal startest Du die Powershell mit 'Rechtklick' -> 'Als Administrator ausführen'.
Dann guckst Du mit:
Get-ExecutionPolicy
Was Du da für Rechte hast, Scripte auszuführen.
Mit
Set-ExecutionPolicy 'Richtlinie' -force
setzt Du die Richtlinie entweder auf:
Unrestricted
oder
RemoteSigned
Mit letzterem erlaubst Du nur lokal von dir erstellte Scripte (das ist etwas sicherer)
Mit ersterem erlaubst Du das Ausführen aller möglichen Scripte.
Das Problem beschäftigt mich noch, habe aber gerade kein Gerät hier, auf dem ich das wirklich nachvollziehen kann. Jedenfalls hier:
https://www.altaro.com/hyper-v/powershell-commands-dont-work-2/
wird das Problem beschrieben.
Hallo mit sowas kenne ich mich nicht so aus aber wenn du das Programm nicht als Administrator öffnen kannst bist du kein Admin auf dein Account also du hast keine Admin rechte
Danke Dir.
Das habe ich natürlich schon geändert, des Berechtigung steht auf "Unrestricted".
Sonst könnte ich das PS Skript nicht als Administrator ausführen.
Funktioniert trotzdem nicht.