Einblicke in (Security)-Themen ausm tiefen Wald

Monat: Juni 2024

Befehl auf remote Maschine ausführen

Wie schon in meinem anderen PowerShell-Posting zum Administrieren von remote Maschinen, geht es hier um das Gleiche, allerdings mit einem anderen Befehl.

Invoke-Command -ComputerName ZielPC -ScriptBlock { Get-Process } -Credential (Get-Credential)

In diesem Falle wird der Befehl Get-Process ausgeführt. Man kann natürlich auch seinen kompletten Code in eine andere Variable packen und diese dann hier nennen. Komfortabel wird es, wenn man seinen Scriptblock einfach in eine externe Datei legt und diese inkludiert.

TaskManager – Prozesse auslesen und darstellen

Der folgende Befehl listet alle Prozesse auf, sortiert nach CPU-Nutzung:

Get-Process | Select-Object -Property ProcessName, Id, CPU | Sort-Object -Property CPU -Descending

Netzwerk Konfiguration auslesen

Will man mittels PowerShell die in Windows hinterlegten Netzwerk-Konfigurationen auslesen, so nimmt sich man den folgenden Befehl:

Get-NetIPConfiguration | Select-Object -Property InterfaceAlias, IPv4Address, IPv6Address, DNServer

Dieser Befehl sammelt Netzwerkkonfigurationsdetails wie Schnittstellenaliase, IPv4- und IPv6-Adressen und DNS-Serverinformationen.

Befehl letzte Änderung des Passworts eines Benutzers im Active Directory

Wann hat ein User das letzte Mal sein Passwort geändert? Wenn ich ein Active Directory einsetze und PowerShell nutzen möchte, so lautet der Befehl dazu wie folgt:

Get-ADUser USER -Properties PwdLastSet | Select-Object Name,UserPrincipalName,@{N="PasswordDate";e={[DateTime]::FromFileTime($_.Pwdlastset)}}

Man muss lediglich das Wort USER durch den Benutzernamen ersetzen.

An welchem DC Server bin ich angemeldet?

Die Anmeldung eines Clients am Active Directory findet sich in der Umgebungsvariable %logonserver% auf der Konsole:

echo %logonserver%

Einträge in der Windows-Ereignisanzeige per PowerShell abfragen

Wenn man einmal schnell die Fehlermeldungen oder auch nur Warnungen von Windows aus der Ereignisanzeige mittels PowerShell abrufen will, so kann man dies mit folgendem Kommando:

get-winevent -FilterHashtable @{Logname = 'System';Level=2} -MaxEvents 30 | sort-Object ProviderName,TimeCreated

Will man auch noch die Warnungen dazu haben, so muss aus Level=2 einfach Level=3 werden.

Einschränkungen einmalig aufheben pro Session

Oft steht man vor dem Problem, dass aus Sicherheitsgründen die Skripte nicht ausgeführt werden können bzw. dürfen. Spätestens dann fängt man an zu googeln und landet bei execution policies.

Es geht aber auch einfacher. Mit dem folgenden Befehl umgeht man etwaige Sperren recht einfach:

powershell -ep bypass

Sollte der Befehl Probleme bereiten, so gibt es auch noch eine andere Möglichkeit:

Set-ExecutionPolicy Bypass -Scope Process -Force; .\script.ps1

Seite 2 von 2

Präsentiert von WordPress & Theme erstellt von Anders Norén