Schlagwort-Archive: PowerShell Framework

PowerShell ist ein plattformübergreifendes Framework und Skriptsprache von Microsoft zur Automatisierung, Konfiguration und Verwaltung von Systemen.

Windows Firewall deaktivieren mit PowerShell

Deaktivieren der Windows Firewall einfach mit netsh oder in der PowerShell

Es gibt immer noch Situationen, in denen es notwendig ist, die Firewall zu deaktivieren. Dazu gibt es unterstützte Methoden, bei diesen der Dienst nicht angehalten oder deaktiviert werden muss. Unter Windows Server 2008 R2 oder höher kann die Firewall aus der Konsole mithilfe von netsh-Befehlen deaktiviert werden. Windows Server 2012 oder höher ermöglicht darüber hinaus die ausführung des Set-NetFirewallProfile PowerShell-Cmdlet.

Deaktivieren der Firewall mit Windows PowerShell.

Dazu öffne Windows PowerShell als Administrator und führe folgende Zeile aus:

Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False

Die wieder aktivierung der Windows Defender Firewall erfordert am Ende -Enable True anstelle von False.

So deaktiviert man die Firewall mit dem netsh-Befehl.

Öffne eine Eingabeaufforderung mit administrativen Rechten und füge folgendes Command ein:

netsh advfirewall set allprofiles state off

Ping in der PowerShell

PowerShell ICMP Ping mit Test-Connection

Ping unter Windows 10 beschränkt sich nicht mehr nur zur Ausführung aus dem Command Prompt, dabei wartet Ping in der PowerShell mit zusätzlichen Möglichkeiten auf. Das Cmdlet Test-Connection in der PowerShell 7 enthält erweiterte Funktionen, wie Repeat und Traceroute oder als Ping Prozess im Hintergrund.

Test-Connection

Beispiele mit Test-Connection

Das Cmdlet Test-Connection sendet ICMP Echo-Anforderungspakete (Internet Control Message Protocol) an einen oder mehrere durch Komma getrennte Remote-Hosts und gibt die Echo Antworten zurück.

PS C:\> Test-Connection 8.8.8.8, 8.8.4.4, time.google.com

Mit der Option -Repeat wird wie dies von Ping bekannt ist, ICMP Anfragen an den angegebenen Host gesendet, bis zur Beendigung des Vorgangs, durch die Eingabe von CTRL+BREAK.

PS C:\> Test-Connection 1.1.1.1 -Repeat

Dieses Beispiel zeigt, wie ein Test-Connection Befehl als PowerShell Hintergrund Job ausgeführt wird.

PS C:\> $job = Start-Job -ScriptBlock { Test-Connection -TargetName (Get-Content -Path "Servers.txt") }
$Results = Receive-Job $job -Wait

Routenverfolgung mit Test-NetConnection

Die Routenverfolgung in PowerShell 5.1 die standardmässig bei Windows 10 installiert ist.

PS C:\> Test-NetConnection 1.1.1.1 -TraceRoute

ComputerName           : 1.1.1.1
RemoteAddress          : 1.1.1.1
InterfaceAlias         : WLAN
SourceAddress          : 192.168.1.3
PingSucceeded          : True
PingReplyDetails (RTT) : 5 ms
TraceRoute             : 192.168.1.1
                         85.7.42.1
                         193.134.95.170
                         138.187.131.211
                         138.187.129.97
                         1.1.1.1

Routenverfolgung – Traceroute mit dem Test-Connection in der PowerShell.

Der in PowerShell 6.0 eingeführte Parameter Traceroute ordnet eine Routenverfolgung an, zwischen dem lokalen Computer und dem Remote-Ziel, das mit Parameter angegeben wird.

PS C:\> Test-Connection www.google.com -Traceroute -IPv4

In einem weiteren Beispiel werden Parameter verwendet um den Befehl Test-Connection anzupassen. Der lokale Computer sendet einen Ping-Test an einen Remotecomputer.

PS C:\> Test-Connection -TargetName Server10 -Count 4 -Delay 2 -MaxHops 128 -BufferSize 256

Dieses Cmdlet ist ab PowerShell 6.0 und neuer verfügbar.

Test-Connection TCP Port Parameter

Der Parameter -TcpPort gibt die TCP-Portnummer zum Ziel an, die im TCP-Verbindungstest verwendet werden soll. Das Cmdlet versucht, eine TCP-Verbindung mit angegebenen Port zum Ziel herzustellen.

PS C:\> Test-Connection -TargetName isc.org -TcpPort 443

Wenn eine Verbindung hergestellt werden kann, wird $True zurückgegeben. Kann keine Verbindung hergestellt werden, wird $False zurückgegeben. Der Paramter -TcpPort ist ab PowerShell 7.0 und neuer verfügbar.

Test-Connection MTU Size Parameter

Der Parameter -MtuSize wird verwendet, um die Pfad MTU Größe zu ermitteln.

PS C:\> Test-Connection -TargetName ripe.org -MtuSize

Das Cmdlet gibt ein PingReply#MTUSize Objekt zurück, das die Pfad MTU Größe zum Ziel enthält, es ist ab PowerShell 7.0 und neuer verfügbar.

Test-Connection Parameter Quiet

Der Parameter -Quiet gibt einen booleschen Wert zurück. Die Verwendung dieses Parameters unterdrückt alle Fehler.

PS C:\> Test-Connection -TargetName iana.org -Quiet

Dieses Cmdlet ist ab PowerShell 7.0 und neuer verfügbar.

PowerShell Remoting Test-Connection

Im nächsten Beispiel wird eine Sitzung zum Server2 erstellt, wenn mindestens einer der an den Computer gesendeten Pings erfolgreich ist. Hierzu muss auf dem Remote Computer TrustedHosts konfiguriert werden.

PS C:\> if (Test-Connection -TargetName Server2 -Quiet) { New-PSSession -ComputerName Server2 }

Um HTTP für PowerShell-Remoting zu verwenden, führt man folgenden Befehl auf dem Remote-Host aus, von einem als Administrator geöffneten (cmd) Command Prompt.

C:\> winrm quickconfig

Die TrustedHosts-Konfigurationseinstellung erfolgt durch ausführen von winrm.cmd mit der Option config/client auf dem Remote-Host.

winrm set winrm/config/client @{TrustedHosts="192.168.1.2"}

Anfragen von 192.168.1.2 werden angenommen. Die Abfrage der Globale Konfiguration von WinRM ist wie folgt.

C:\> winrm get winrm/config/client