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

Printed on: June 25, 2024 at 12:06 o'clock

Member: MrCount
MrCount Nov 25, 2021 updated at 08:50:00 (UTC)
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 ...
Member: MrCount
MrCount Nov 25, 2021 at 08:28:52 (UTC)
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 Nov 25, 2021 at 08:39:50 (UTC)
Goto Top
Moin,

Warum verteilst du die Firewalleinstellungen nicht via GPO?

Gruß
C.C.
Member: factxy
factxy Nov 25, 2021 at 08:42:51 (UTC)
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
Solution 149569 Nov 25, 2021 at 09:11:02 (UTC)
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"  
Member: lcer00
lcer00 Nov 25, 2021 at 12:01:39 (UTC)
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
Member: factxy
factxy Nov 25, 2021 at 12:49:05 (UTC)
Goto Top
Besten Dank!!!