PowerShell Skript lässt sich auf Windows 10 Computer nicht ausführen, was muss ich genau tun um ausreichend Berechtigung zu erhalten?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

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....

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren

User101001 
Fragesteller
 11.05.2021, 16:37

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
0
User101001 
Fragesteller
 11.05.2021, 16:47
"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

1

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.


User101001 
Fragesteller
 11.05.2021, 11:58

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.

1

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

Woher ich das weiß:eigene Erfahrung

User101001 
Fragesteller
 11.05.2021, 11:03

Ich bin Administrator. Trotzdem Danke.

0