3 min read
Skriptabbruch verhindern: PowerShell-Fehler clever behandeln
Da $error eine globale Variable ist, solltest du in Erwägung ziehen, eine eigene Protokollierungsvariable für die...
PowerShell-Erfolgsrezepte – die Profi-Tipps für effektives Scripting
Müde, sich durch leere Eigenschaften in PowerShell-Objekten zu wühlen? PowerShell-Objekte sind oft voll von leeren Properties, die deine Übersicht stören. Mit der versteckten PSObject-Erweiterung kannst du jedoch eine einfache Filterfunktion nutzen, um nur gefüllte Eigenschaften, also populated properties, anzuzeigen. So sparst du Zeit und siehst sofort die relevanten Daten – ideal, wenn du präzise und effizient arbeiten willst! Perfekt für die Optimierung von Datenansichten ohne manuelle Eingriffe.
Gelegentlich erhält man Objekte mit vielen leeren Eigenschaften, an denen man nicht wirklich interessiert ist. Du kannst Select-Object verwenden, um Eigenschaften manuell auszuwählen, aber wenn sich die leeren Eigenschaften ändern, wäre eine automatisierte Lösung hilfreich.
Glücklicherweise fügt PowerShell jedem Objekt eine geheime PSObject -Erweiterung hinzu, die die gesamte Objektstruktur, einschließlich der Eigenschaften und ihrer Werte, offenlegt. Auf diese Weise würde eine einfache Filterfunktion wie folgt aussehen:
filter Filter-EmptyProperty
{
$hashtable = [Ordered]@{}
foreach ($property in $_.PSObject.Properties)
{
if ($property.Value)
{
$hashtable[$property.Name]=$property.Value
}
}
[PSCustomObject]$hashtable
}
Im Wesentlichen werden für jedes Objekt alle seine Eigenschaften auf einen Wert geprüft, und nur wenn ein Wert gefunden wird, wird die Eigenschaft zu einer geordneten Hashtabelle hinzugefügt. Sobald alle gewünschten Eigenschaften gesammelt wurden, wird die geordnete Hash-Tabelle in ein Objekt umgewandelt und ausgegeben.
Teste diese Befehle (oder jeden anderen Quellbefehl, der leere Eigenschaften zurückgibt):
# enthält leere Eigenschaften
Get-ComputerInfo -Property *
# zeigt nur gefüllte Eigenschaften an
Get-ComputerInfo -Eigenschaft * | Filter-EmptyProperty
Entfessele das volle Potenzial von PowerShell mit unserem praktischen Poster. Egal, ob frischer Einsteiger oder erfahrener Profi, dieser Spickzettel ist so konzipiert, dass du schnell die wichtigsten und am häufigsten verwendeten Cmdlets findest.
Das Poster ist zum Download und in Papierform erhältlich.
Okt 17, 2024 by Aleksandar Nikolić und Dr. Tobias Weltner
Da $error eine globale Variable ist, solltest du in Erwägung ziehen, eine eigene Protokollierungsvariable für die...
Okt 10, 2024 by Aleksandar Nikolić und Dr. Tobias Weltner
Du bist mit try...catch vertraut? Exceptions kannst du mit Trap-Anweisungen behandeln. Kurz und knackig kommt hier der...
Okt 30, 2024 by Aleksandar Nikolić und Dr. Tobias Weltner
Verabschiede dich von fest codierten Pfaden und Einstellungen! Vereinfache deine PowerShell-Skripte, indem du...
Tobias Weltner und Aleksandar Nikolić haben gemeinsam die Blogpost-Reihe „Tobias&Aleksandars PowerShell-Tipps“ verfasst. Deshalb möchten wir euch beide hier vorstellen:
----------------------------
Aleksandar Nikolić ist ein Microsoft Azure MVP und Mitbegründer von PowerShellMagazine.com, der ultimativen Online-Ressource für PowerShell-Enthusiasten. Mit über 18 Jahren Erfahrung in der Systemadministration ist er ein angesehener Trainer und Redner, der rund um den Globus reist, um sein Wissen und seine Fähigkeiten über Azure, Entra und PowerShell weiterzugeben. Er hat auf IT-Veranstaltungen wie Microsoft Ignite, ESPC, NIC, CloudBrew, NTK und der PowerShell Conference Europe gesprochen.
----------------------------
Tobias ist ein langjähriger Microsoft MVP und war von Anfang an an der Entwicklung von PowerShell beteiligt. Er hat die PowerShell IDE „ISESteroids“ erfunden, zahlreiche Bücher über PowerShell für Microsoft Press und O'Reilly geschrieben, die PowerShell Conference EU (psconf.eu) gegründet und trägt derzeit als Mitglied der „Microsoft Cmdlet Working Group“ zur Weiterentwicklung der PowerShell bei. Tobias gibt sein Wissen als Berater in Projekten und als Trainer in Inhouse-Schulungen für zahlreiche Unternehmen und Agenturen in ganz Europa weiter.