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
18 Antworten
- LÖSUNG schicksal schreibt am 01.04.2021 um 10:25:21 Uhr
- LÖSUNG TK1987 schreibt am 01.04.2021 um 10:32:23 Uhr
- LÖSUNG Worker26 schreibt am 01.04.2021 um 10:51:00 Uhr
- LÖSUNG TK1987 schreibt am 01.04.2021 um 11:00:02 Uhr
- LÖSUNG Worker26 schreibt am 01.04.2021 um 11:02:42 Uhr
- LÖSUNG TK1987 schreibt am 01.04.2021 um 11:11:02 Uhr
- LÖSUNG Worker26 schreibt am 01.04.2021 um 11:20:23 Uhr
- LÖSUNG TK1987 schreibt am 01.04.2021 um 11:27:34 Uhr
- LÖSUNG Worker26 schreibt am 01.04.2021 um 11:29:24 Uhr
- LÖSUNG Worker26 schreibt am 01.04.2021 um 11:36:20 Uhr
- LÖSUNG Worker26 schreibt am 01.04.2021 um 11:29:24 Uhr
- LÖSUNG TK1987 schreibt am 01.04.2021 um 11:27:34 Uhr
- LÖSUNG Worker26 schreibt am 01.04.2021 um 11:20:23 Uhr
- LÖSUNG TK1987 schreibt am 01.04.2021 um 11:11:02 Uhr
- LÖSUNG Worker26 schreibt am 01.04.2021 um 11:02:42 Uhr
- LÖSUNG TK1987 schreibt am 01.04.2021 um 11:00:02 Uhr
- LÖSUNG Worker26 schreibt am 01.04.2021 um 10:51:00 Uhr
- LÖSUNG chkdsk schreibt am 01.04.2021 um 10:38:23 Uhr
- LÖSUNG Worker26 schreibt am 01.04.2021 um 10:53:57 Uhr
- LÖSUNG chkdsk schreibt am 01.04.2021 um 10:55:17 Uhr
- LÖSUNG Worker26 schreibt am 01.04.2021 um 10:58:24 Uhr
- LÖSUNG chkdsk schreibt am 01.04.2021 um 11:02:11 Uhr
- LÖSUNG Worker26 schreibt am 01.04.2021 um 11:05:28 Uhr
- LÖSUNG chkdsk schreibt am 01.04.2021 um 11:10:27 Uhr
- LÖSUNG Worker26 schreibt am 01.04.2021 um 11:23:26 Uhr
- LÖSUNG chkdsk schreibt am 01.04.2021 um 11:10:27 Uhr
- LÖSUNG Worker26 schreibt am 01.04.2021 um 11:05:28 Uhr
- LÖSUNG chkdsk schreibt am 01.04.2021 um 11:02:11 Uhr
- LÖSUNG Worker26 schreibt am 01.04.2021 um 10:58:24 Uhr
- LÖSUNG chkdsk schreibt am 01.04.2021 um 10:55:17 Uhr
- LÖSUNG Worker26 schreibt am 01.04.2021 um 10:53:57 Uhr
LÖSUNG 01.04.2021 um 10:25 Uhr
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% ....
LÖSUNG 01.04.2021, aktualisiert um 10:45 Uhr
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
LÖSUNG 01.04.2021 um 10:38 Uhr
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"
LÖSUNG 01.04.2021 um 10:51 Uhr
LÖSUNG 01.04.2021 um 10:53 Uhr
Hallo @chkdsk,
auch wenn ich das einfüge, schließt sich das Fenster direkt, nachdem ich akzeptiert habe das Änderungen vorgenommen werden dürfen.
auch wenn ich das einfüge, schließt sich das Fenster direkt, nachdem ich akzeptiert habe das Änderungen vorgenommen werden dürfen.
LÖSUNG 01.04.2021 um 10:55 Uhr
Dann zeige doch mal deinen Code her, den du schon hast.
LÖSUNG 01.04.2021 um 10:58 Uhr
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"
$testverzeichnis = "C:\FLS"
If (Test-Path $testverzeichnis)
{
Write-Host -BackGroundColor Green "Die Datei $($testverzeichnis) existiert."
Remove-Item -Path $testverzeichnis -Recurse
Write-Host -BackGroundColor Red "Ordner wurde gelöscht"
}
copy-item -Path \\srv-fls\FLS_Vistour_Client -Destination C:\FLS\ -Recurse
Write-Host -BackGroundColor Green "FLS Ordner wurde erstellt!"
$quelldatei = "C:\FLS\FLS*.exe"
$quellordner = "C:\FLS"
$zielpfad = "C:\Users\Public\Desktop"
New-Item -Value $quelldatei -Path $zielpfad\FLS_Visitour.lnk -ItemType SymbolicLink
pause
LÖSUNG 01.04.2021, aktualisiert um 11:04 Uhr
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"
LÖSUNG 01.04.2021 um 11:02 Uhr
Dann kopiere mal deinen Code in die ISE und schau dir die Fehlermeldung an
LÖSUNG 01.04.2021 um 11:02 Uhr
Das Fenster schließt sich leider trotzdem.
Ja, sonst würde ich eine Verknüpfung am Desktop haben, wenn es funktionieren würde.
Ja, sonst würde ich eine Verknüpfung am Desktop haben, wenn es funktionieren würde.
LÖSUNG 01.04.2021 um 11:10 Uhr
Das ist aber nicht die ISE
LÖSUNG 01.04.2021 um 11:11 Uhr
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?
LÖSUNG 01.04.2021 um 11:20 Uhr
LÖSUNG 01.04.2021, aktualisiert um 11:28 Uhr
Damit ist schon mal klar, dass er die Datei bzw. den Pfad nicht findet.
Sind in dem Teil, den du unkenntlich gemacht hast, zufällig Dollarzeichen oder ähnliches vorhanden?
Ändere beim Pfad mal die Doubleqoutes auf Singlequotes ab.
Sind in dem Teil, den du unkenntlich gemacht hast, zufällig Dollarzeichen oder ähnliches vorhanden?
Ändere beim Pfad mal die Doubleqoutes auf Singlequotes ab.
LÖSUNG 01.04.2021 um 11:29 Uhr
Nein, da steht nur mein Name.
Mit Singlequotes klappt es auch nicht
Mit Singlequotes klappt es auch nicht
LÖSUNG 01.04.2021 um 11:36 Uhr
Hab das Pfad Problem gefunden. Es handelt sich um einen UNC Pfad. Ich hab den Laufwerkbuchstaben durch das richtige ersetzt und nun klappts, danke für die Hilfe. Habt noch einen schönen Tag :D