PowerShell – Scriptdauer messen Teil 1

Es gibt eine einfache Möglichkeit die vom Script benötigte Zeit nach Durchlaufen des Scriptes zu ermittel. Beim Starten wird das Datum ermitteln, nach beenden des eigentlichem Scriptvorgangs wird nochmals das Datum ermittelt. Zieht das zweite Datum vom ersten ab, so erhält man als Differenz die benötigte Zeitspanne als Ergebnis. Diese kann dann wie folgt ausgegebene werden.

 

rewe

PowerShell – ASCII Code anzeigen

Mit einer einfachen For-Schleife lassen sich blitzschnell alle ASCII-Zeichen auflisten. Jedem Zeichen ist eine Dezimalzahl zugeordnet, mittels [char] kann die Dezimalzahl in das eigentliche Zeichen ‘konvertiert’ werden. Das Script liest den entsprechenden Wert aus und gibt ihn mittels Write-Host in der Console wieder.

 Die Ausgabe sieht dann wie folgt aus.

rewe

PowerShell – Excel-Sheet auslesen

Zu nächst muss wieder eine COM-Objekt instanziiert werden, anschließend können Daten im Excel-Sheet einfach über Zeile (Row) und Spalte (Column) ausgelesen werden. Das gewünschte Arbeitsblatt, der Standardname bei neuen Dateien ist Tabelle 1, kann über den Index oder den Namen angesprochen werden. Also …Item(1) oder …Item(“Tabelle 1”).

 

 

Um mehrere Daten abzuarbeiten nutze ich im folgendem Beispiel eine Do-While Schleife. Dabei wird der Wert von $Zeile nach jeder Ausgabe im eins erhöht. Enthält das aktuelle Feld keine Zeichen mehr, so wird die Do-While-Schleife beendet.

rewe

PowerShell – Excel-Sheet erstellen

Mit dem folgendem Script wird ein leeres, unformatiertes Excel-Sheet erstellt und geöffnet. Dazu wird die COM-Schnittstelle genutzt.

rewe

PowerShell – Passwort sicher in Datei speichern und wieder verwenden

Das Passwort einmal eingeben und dann wieder verwenden für spätere Zwecke in einem Script erneut verwenden.

 Hinweis: Das Passwort wird mittels der SID des ausführenden Benutzter sowie der SID des Computers verschlüsselt. Somit bringt keinem andrem Benutzer diese Datei etwas, auch nicht auf dem selben Computer.

rewe

PowerShell – Datum Formatieren

Das Datum formatiert anzeigen lassen Dies kann mittels der Eigenschaft GetDateTimeFormats() bewerkstelligt werden. Diese  gibt eine große Liste von vordefinierten Einstellungen für das Datum aus.

Hat man sich für eine der Formatvorlagen entschieden, kann man dies über den Arrayindex ansprechen. Doch wie ist der Index? Dafür habe ich hier eine einfache For-Schleife gebastelt.

Der Arrayindex wird dann wie folgt angegeben.

 

 

rewe

PowerShell – nicht Standard-Eigenschaften an Einem User- oder Gruppenobjekt ändern.

Um in PowerShell zusätzliche Eigenschaften an einem Objekt ändern zu können, muss wie folgt vorgegangen werden. Ein Beispiel anhand der edvsa-Drives. Erst müssen die zu ändernden Eigenschaften mittels dem Paramter –IncludedProperties geladen werden.

 So wurde der Wert von edsva-DriveK, also dem K-Laufwerk, in den Wert \\Server007a\AccountLockouts geändert. Analog verhält sich dieses Vorgehen bei Set-QADGroup ,Set-QADComputer oder Set-QADObject.

 

rewe

PowerShell – Change History (ARS)

Die einfachste Variane ist, um sich mit dem Quest Service zu verbinden, mit Eingabe des Passwortes und Angabe des Benutzers.

 

Hier eine sehr dynamische Variante, diese ermittelt den ausführenden Benutzer, sowie die aktuelle Domain. Es wird ein verschlüsseltes Textfile im Userprofile angelegt indem das Passwort gespeichert wird. Ist das File älter als einen Tag, wird die Datei gelöscht und das Passwort muss erneut eingeben werden. So kann man sich bequem einen Tag lang ohne Passwort eingabe zum QAD Service verbinden.

 

rewe

PowerShell – Laufwerke eines Benutzers auflisten

Mit folgendem Snippet lassen sich alle edsva-Drives aufliste. Leider dauert dieser Vorgang etwas länger, da alle Eigenschaften des Objektes durchsucht werden. Wichtig ist die Angabe des Parameter -Proxy um sich auf den ARS zu verbinden.

Einzelne Laufwerke lassen sich wie folgt auflisten, dies ist deutlich schneller, da hier nicht alle Eigenschaften des User-Objektes durchsucht werden.

Wichtig ist hierbei, dass die Eigenschaft bei der Ausgabe in Hochkomas gesetzt wird, da sonst ein Fehler mit dem Hinweis eines unwerwarteten Tokens auftritt. Dies liegt an dem Bindestrich in der Bezeichnung der Laufwerke.

 

rewe