Archiv für den Monat: März 2021

Unterschied zwischen PowerShell und Python – kurz, knapp und sehr eindrucksvoll

Der Vergleich zwischen Programmiersprache A und Programmiersprache B ist im Allgemeinen wie der sprichwörtliche Vergleich zwischen Äpfel und Birnen. Zwei Programmiersprachen lassen sich einfach nicht objektiv vergleichen. Der folgende „Vergleich“ zwischen PowerShell und Python ist daher auch nicht ganz ernst gemeint.

Eine Stärke von Python ist, dass es keine echte Limitierung für die Größe von ganzen Zahlen gibt.

Der folgende Ausdruck liefert in Python eine Zahl, die in einem typischen Konsolenfenster ganze 245 Zeilen (!) umfasst.

Bei der PowerShell besteht das Ergebnis dagegen aus nur einem einzigen Zeichen. Mathematisch korrekt sind beide;)

Die PowerShellv erwendete für sehr große Zahlen eine praktische Abkürzung;)

Tipp des Tages: Source-Abfrage bei Get-WinEvent

Bei PowerShell 7 gibt es bekanntlich kein Get-EventLog-Cmdlet mehr, statt dessen gibt es das universelle Get-WinEvent-Cmdlet, das es bereits bei der Windows PowerShell gab. Das Cmdlet ist zwar insgesamt leistungsfähiger, aber auch nicht ganz so pflegeleicht, da Filterparameter entweder über eine Hashtable oder einen XPath-Ausdruck angegeben werden müssen.

Ich habe ein wenig suchen müssen, um das Pendant für den Source-Parameter von Get-Eventlog für Get-WinEvent ausfindig zu machen. Es ist in beiden Fällen die Angabe „Providername“ innerhalb des Suchausdrucks.

Die beiden folgenden Befehle geben die letzten 10 Einträge aus dem System-Eventlog zurück, die vom Service Control Manager geschrieben wurden.

[code language=“powershell“] Get-WinEvent -FilterHashtable @{Logname=“System“;Providername=’Service Control Manager‘} -MaxEvents 10 [/code]

und

[code language=“powershell“] Get-WinEvent -FilterXPath „Event/System/Provider[@Name=’Service Control Manager‘]“ -LogName System -MaxEvents 10 [/code]