factxy
Goto Top

Powershell Script als Admin ausführen ?

Hallo,

also ich hab da bereits gegoogelt und hier derweil noch keine praktikable Lösung gefunden als das ps script per cmd script welches als admin aufgerufen wird zu starten.
Frage 1: gibt es einen simplen weg das ps script direkt per admin zu starten?
Frage 2: wie genau per cmd script direkt

also cmd script wie:
powershell -command
dann diese ps Zeile
new-netfirewallrule -name "SQLServer" -displayname "SQLServer" -localport 5912 -remoteport any -profile domain,private -action allow -protocol tcp

bräuchte hier eine Zeile für die cmd als Beispiel!?

oder alternativ mit netsh!?

Besten Dank und viele Grüße

Content-Key: 1551004731

Url: https://administrator.de/contentid/1551004731

Ausgedruckt am: 25.04.2024 um 17:04 Uhr

Mitglied: MrCount
MrCount 25.11.2021 aktualisiert um 09:50:00 Uhr
Goto Top
Servus,

vielleicht hilft das:
# Self-elevate the script if required
    if (-Not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] 'Administrator')) {  
     if ([int](Get-CimInstance -Class Win32_OperatingSystem | Select-Object -ExpandProperty BuildNumber) -ge 6000) {
      $CommandLine = "-File `"" + $MyInvocation.MyCommand.Path + "`" " + $MyInvocation.UnboundArguments  
      Start-Process -FilePath PowerShell.exe -Verb Runas -ArgumentList $CommandLine
      Exit
     }
    }

... dein Code ...
Mitglied: MrCount
MrCount 25.11.2021 um 09:28:52 Uhr
Goto Top
Alternativ z.B. über Batch:

powershell -noprofile -command "&{ start-process powershell -ArgumentList '-noprofile -file PFAD_ZUM_SCRIPT.ps1' -verb RunAs}"  
Mitglied: 148656
148656 25.11.2021 um 09:39:50 Uhr
Goto Top
Moin,

Warum verteilst du die Firewalleinstellungen nicht via GPO?

Gruß
C.C.
Mitglied: factxy
factxy 25.11.2021 um 09:42:51 Uhr
Goto Top
Nö es geht darum das wir bei diversen Kunden (also nicht Firmenintern) die Regeln separat einstellen müssen
im Zuge einer Installation. Und da ist es natürlich effizienter wenn ich nur einen batch ausführe und fertig, als
alles manuell reinzuklopfen....

wenn ich das ps1 script per cmd (als Administrator) starte funktioniert es ja. Aber halt auch nicht optimial so....
deswegen

!?

Grüße
Mitglied: 149569
Lösung 149569 25.11.2021 um 10:11:02 Uhr
Goto Top
@echo off
net session >nul 2>&1 || (powershell -EP Bypass -NoP -C start "%~0" -verb runas &exit /b)  
powershell -EP Bypass -NoP -C "New-Netfirewallrule -name 'SQLServer' -displayname 'SQLServer' -localport 5912 -remoteport any -profile domain,private -action allow -protocol tcp"  
Mitglied: lcer00
lcer00 25.11.2021 um 13:01:39 Uhr
Goto Top
Hallo,
Zitat von @factxy:

Nö es geht darum das wir bei diversen Kunden (also nicht Firmenintern) die Regeln separat einstellen müssen
im Zuge einer Installation. Und da ist es natürlich effizienter wenn ich nur einen batch ausführe und fertig, als
alles manuell reinzuklopfen....
Na aber eine Installation führt man doch immer als Administrator aus. Der eine Klick zum Bestätigen der UAC ist doch zumutbar.

Grüße

lcer
Mitglied: factxy
factxy 25.11.2021 um 13:49:05 Uhr
Goto Top
Besten Dank!!!