PowerShell Datei mit Doppelklick als Admin ausführen
Guten Tag
Wie kann ich eine PowerShell Datei mit Doppelklick als Administrator ausführen?
Es geht darum, dass andere, welche dieses Programm Doppelklicken, es automatisch mit Adminrechten ausführen.
mfg
Worker26
Wie kann ich eine PowerShell Datei mit Doppelklick als Administrator ausführen?
Es geht darum, dass andere, welche dieses Programm Doppelklicken, es automatisch mit Adminrechten ausführen.
mfg
Worker26
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 665319
Url: https://administrator.de/contentid/665319
Ausgedruckt am: 19.11.2024 um 13:11 Uhr
18 Kommentare
Neuester Kommentar
Hier sind ein paar Methoden beschrieben:
https://ss64.com/ps/syntax-elevate.html#:~:text=It%20is%20possible%20to% ..).
https://ss64.com/ps/syntax-elevate.html#:~:text=It%20is%20possible%20to% ..).
Moin,
Powershell-Skripte ausführen geht am einfachsten folgendermaßen:
1) Datei als .ps1-Datei abspeichern.
2) Von der Datei eine Verknüpfung machen (Rechtsklick > kopieren und dann Rechtsklick > Verknüpfung einfügen)
3) In den Verknüpfungseigenschaften sollte bei "Ziel" bereits der Pfad zum ps1-Skript stehen. Vor diesem musst du noch powershell -EP ByPass -File ergänzen. Vollständig sollte die Zeile dann so aussehen:
Zudem kannst du in den Eigenschaften unter Registerkarte Verknüpfung dann unter "Erweitert..." auch "Als Administrator ausführen" anhaken.
Ausgeführt wird dann immer die Verknüpfung
Gruß Thomas
Powershell-Skripte ausführen geht am einfachsten folgendermaßen:
1) Datei als .ps1-Datei abspeichern.
2) Von der Datei eine Verknüpfung machen (Rechtsklick > kopieren und dann Rechtsklick > Verknüpfung einfügen)
3) In den Verknüpfungseigenschaften sollte bei "Ziel" bereits der Pfad zum ps1-Skript stehen. Vor diesem musst du noch powershell -EP ByPass -File ergänzen. Vollständig sollte die Zeile dann so aussehen:
powershell -EP ByPass -File "C:\Pfad\zum\Skript.ps1"
Ausgeführt wird dann immer die Verknüpfung
Gruß Thomas
Einfach an den Anfang deines Skripts einfügen
param([switch]$Elevated)
function Test-Admin {
$currentUser = New-Object Security.Principal.WindowsPrincipal $([Security.Principal.WindowsIdentity]::GetCurrent())
$currentUser.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)
}
if ((Test-Admin) -eq $false) {
if ($elevated) {
# tried to elevate, did not work, aborting
} else {
Start-Process powershell.exe -Verb RunAs -ArgumentList ('-noprofile -noexit -file "{0}" -elevated' -f ($myinvocation.MyCommand.Definition))
}
exit
}
write-host "running with full privileges" -foreground "green"
Zitat von @Worker26:
Hacke ich "als Admin ausführen" in der Verknüpfung an, wird es nicht einmal ausgeführt. Dann schließt sich das Fenster direkt.
Bist du dir denn sicher, das er das Skript nicht schließt, weil er schon fertig ist?Hacke ich "als Admin ausführen" in der Verknüpfung an, wird es nicht einmal ausgeführt. Dann schließt sich das Fenster direkt.
Ergänze im Verknüpfungsziel mal -NoExit, so bleibt das Fenster weiter geöffnet.
powershell -EP ByPass -NoExit -File "C:\Pfad\zum\Skript.ps1"
Dann stimmt vermutlich der Pfad zum Skript nicht.
Machen wir es noch anders. Beim Verknüpfungsziel:
Beachte auch den Punkt hinter -Command (Dot-Sourcing). Nun kann sich das Fenster definitiv nicht mehr schließen.
Welche Fehlermeldung kommt hier?
Machen wir es noch anders. Beim Verknüpfungsziel:
powershell -EP ByPass -NoExit -Command . "C:\Pfad\zum\Skript.ps1"
Welche Fehlermeldung kommt hier?