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 – Datentypen

Unter PowerShell gibt es folgende Datentypen.

Datentyp Beschreibung
[string] Zeichenkette fester Länge von Unicode Buchstaben
[char] 16 Bit Unicode-Zeichen. Nur ein Zeichen
[byte] vorzeichenloses 8 Bit Zeichen
[int] vorzeichenbehafteter 32 Bit Integer
[long] vorzeichenbehafteter 64 Bit Integer
[bool] / [switch] Boolean, True/Wahr oder False/Falsch
[decimal] 128 Bit dezimal Wert
[single] Einfache Genauigkeit, Gleitkommazahl
[double] Doppelte Genauigkeit, Gleitkommazahl
[DateTime] Datum und Zeit
[xml] XML Objekte
[array] Feld, Array
[hashtable] Hashtabelle, Steuerwerttabelle

 

 

rewe

PowerShell – Funktion, Übergabe von Parameter an Funktionen

Eine Funktion besteht aus dem Keyword Function gefolgt vom Funktion-Name mit möglichen Parameter und dem Script-Block.

Hier ein Beispiel ohen Parameter.

Noch ein Beispiel mit Parametern.

Der Aufruf einer Funktion wird über den Namen der Funktion realisiert. Die Paramter können als String, Variable oder als reiner Text übergeben werden.

 

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