PowerShell

PowerShell Techguy.at

WMI und PowerShell

PowerShell

Was ist WMI?

Benötige ich WMI noch wo doch PowerShell so viel besser ist?

Der eine oder andere wird sich diese Fragen nun stellen und ich muss sagen, WMI wird noch benötigt.

Kommt sicherlich auf die Aufgabenstellung an, aber ich habs jetzt doch schon einige Male benötigt damit meine Scripts sauber arbeiten.

Es können mittlerweile sehr viele Werte mittels PowerShell abgefragt oder gesetzt werden, aber leider noch nicht alle.

Somit benötigen wir noch WMI, wie das funktioniert zeige ich euch in diesem Artikel

WMI Abfragen

Den meisten sollte die WMI Klasse Win32_OperatingSystem bekannt sein, diese versuchen wir nun mal mittels PowerShell abzufragen

Get-WmiObject -Class Win32_OperatingSystem

Als Ergebnis erhalten wir folgendes:

PowerShell Techguy.at

Mac Adresse mit PowerShell überprüfen und reparieren

PowerShell

Ich musste vor kurzem die Eingabe einer MAC Adresse überprüfen, ob diese korrekt ist.

Natürlich habe ich dazu PowerShell verwendet und möchte euch heute das Script dazu zeigen.

Ziel ist es, die Eingabe auf das korrekte Format zu überprüfen und gegeben falls den Fehler zu korrigieren, wobei wir hier natürlich etwas eingeschränkt sind.

sollte die Adresse unvollständig sein, kann das beste Script diese Problem nicht lösen, war wir aber machen können ist das Format der Mac Adresse zu bestimmen, und die Ausgabe zu formatieren.

Das Script

Wir arbeiten hier teilweise mit Regular Expression um die Mac Adresse zu überprüfen, aber jetzt zum Script.

PowerShell Techguy.at

Rename AD User mit PowerShell

PowerShell

Heute mal wieder ein PowerShell Script zu Active Directory. Ich musste vor kurzem für einen automatischen Usereintritt und Userrochade einen User umbenennen.

Es gab hier mehrere Möglichkeiten, es gibt ein Rename-ADObject CMDLet, diese ändert aber nur den Displayname und Ad Name.

Ich hatte jedoch die Anforderung zusätzlich den Vornamen, Usernamen und SamAccountName zu ändern.

Dementsprechend müssen dann auch noch die Pfade zum Profil und HomeDirectory geändert werden, also gibt’s mal wieder ein PowerShell Script zum kompletten Rename des Ad Users.

Das Beispiel

Für unser Beispiel gibt es den User “Jasmine Hofmeister” mit dem aktuellen Usernamen “HofmeisterJ”.

Dieser User heiratet und bekommt den neuen Nachnamen “Seidl”.

Hier ändert sich also der Usernamen, Displayname, Name, Nachname und die Pfade.

PowerShell Techguy.at

Datasources mittels PowerShell aus DPM Schutzgruppe entfernen

PowerShellHeute mal wieder ein PowerShell Script zu System Center Data Protection Manager.

In diesem zeige ich euch ein einfaches Beispiel um eine SQL Datenbank aus einer Schutzgruppe am SCDPM zu entfernen.

Ich hatte euch hier den Weg gezeigt wie ihr eine Datasource der Schutzgruppe hinzufügen könnt, jetzt machen wir das Gegenteil.

Das Script ist so aufgebaut das genau eine Source hinzugefügt wird, kann aber sehr schnell umgeschrieben werden um mit mehreren Datasources zu arbeiten.

Zuerst einmal gehen wir die einzelnen Bereiche, Schritt für Schritt durch, am Ende mal wieder de Download zum gesamten Script.

Der Anfang

Zu Beginn importieren wir die SCDPM CMDlets

#Import Modules
Import-Module DataProtectionManager

Danach setzen wir unsere benötigten Variablen

$Protectiongroup = Die Schutzgruppe aus der wir die Datasource entfernen wollen
$Database = Der Name unsere SQL Datenbank
$DPMServer = Der DPM Server auf dem die Schutzgruppe existiert

PowerShell Techguy.at

Orchestrator Ordnerstruktur im Filesystem erstellen

PowerShell

Heute stelle ich euch mein aktuelles Lieblingsscript vor. Einerseits weil ich schon lange davon geredet habe das ich so was benötige, andererseits weil ich ein bisschen stolz bin es ganz alleine geschrieben zu haben.

Es geht darum die Ordnerstruktur aus dem Runbook Designer im Filesystem abzubilden.

Warum mir das so wichtig ist und warum euch diese Skript dabei helfen kann euren SCO zu bereinigen, zeige ich euch in diesem Artikel.

Warum dieses Script?

Ich halte mich doch sehr an die Regeln oder Best Practice Empfehlungen von Microsoft und erstelle pro Ordner nur ein Runbook, somit besitze ich in meiner SCO Umgebung sehr viele Ordner.

PowerShell Techguy.at

PowerShell – Export dynamischer Verteilerlisten aus Exchange

PowerShellHeute eine kurzer Beitrag, um die Mitglieder einer dynamischen Exchange Verteilerliste in eine CSV Datei zu exportieren.

Dies war die Anforderung eines Kunden, der regelmäßig die Mitglieder von dynamischen Verteilerlisten kontrollieren wollte, und das ohne die Exchange Konsole zu starten.

Natürlich bietet sich hier PowerShell sehr gut an, da wir das Script so geplant haben das es einmal täglich läuft und das File in einer bestimmten Ablage erstellt.

Sobald der Kunde wieder kontrollieren will, hat dieser immer den aktuellen Stand in seinem CSV File.

Das Script

Zuerst einmal müssen wir die Exchange PowerShell CMDlets laden dazu einfach

PowerShell Techguy.at

Active Directory Vererbung mittels PowerShell aktivieren

PowerShell

Mal wieder ein Beispiel eines meiner Kunden.

Wir mussten vor einem geplanten Rename aller User das AD bereinigen und eventuell Unterbrechungen der Vererbung wieder aktivieren.

Es gab immer wieder User bei denen die Option “Include inheritable permission from this object’s parent” oder auch “Vererbbare Berechtigungen des übergeordneten Objektes einschließen” nicht aktiv war, somit hatten wir bei diesen Benutzern nicht das Recht etwas zu ändern.

Jetzt hätten wir bei jedem User die Eigenschaften kontrollieren müssen und gegeben falls diese Option aktivieren.

Aber zum Glück haben wir ja PowerShell, damit ist das in Sekunden erledigt.

Datasources mittels PowerShell zur DPM Schutzgruppe hinzufügen

PowerShell

Heute mal wieder ein PowerShell Script zu System Center Data Protection Manager.

In diesem zeige ich euch ein einfaches Beispiel um eine SQL Datenbank einer Schutzgruppe im SCDPM hinzuzufügen.

Das Script ist so aufgebaut das genau eine Source hinzugefügt wird, kann aber sehr schnell umgeschrieben werden um mit mehreren Datasources zu arbeiten.

Zuerst einmal gehen wir die einzelnen Bereiche, Schritt für Schritt durch, am Ende mal wieder de Download zum gesamten Script.

Der Anfang

Zu Beginn importieren wir die SCDPM CMDlets

#Import Modules
Import-Module DataProtectionManager

Danach setzen wir unsere benötigten Variablen

$Protectiongroup = Die Schutzgruppe der wir die Datasource hinzufügen wollen
$Server = Der Server auf dem sich die Datasource befindet
$Database = Der Name unsere SQL Datenbank
$DPMServer = Der DPM Server auf dem die Schutzgruppe existiert

PowerShell Techguy.at

PowerShell Import-Module oder Add-PSSnapIn

PowerShell

PowerShell besteht aus sogenannten Modulen oder Snap-ins. Wer eine “normale” PowerShell Konsole öffnet kann die vom System mitgelieferten PowerShell CMDlets verwenden.

Wer jedoch die Funktionen erweitern will, muss zuvor die Module importieren oder die Snap-Ins hinzufügen.

Viele Produkte liefern eigene PowerShell CMDlets mit, zum Beispiel ein Exchange Server, oder die gesamte System Center Familie.

Nur weil diese installiert sind, heißt dies nicht das diese in jeder PowerShell Konsole auch zur Verfügung stehen.

Die Herausforderung

Diesen Fehler sollte jeder schon mal gesehen haben.

PowerShell Techguy.at

Powershell Get-Date

PowerShell

Heute behandeln wir das CMDlet Get-Date und ich zeige euch einige, hoffentlich, coole Dinge und was ihr alles damit anstellen könnt.

Wir benötigen das aktuelle Datum und die aktuelle Uhrzeit zB um Logfiles mit einem Datum zu versehen. Oder um zB Dateien zu bekommen die älter als ein bestimmtes Datum sind.

Dazu müssten wir mit dem Datum rechnen können.

Wie das funktioniert zeige ich euch in diesem Beitrag.

Der Einstieg

Also, fangen wir mal klein an und starten die PowerShell ISE auf unserem Rechner.

Als erste geben wir mal folgendes sein

Get-Date

Das sollte uns das aktuelle Datum inklusive der Zeit zurückgeben, sollte dann auch wie folgt aussehen

Mittwoch, 13. November 2013 18:05:37

Sagte ich doch das es ganz einfach ist.


Jetzt möchten wir vielleicht nur den aktuellen Tag, das Jahr oder nur den Monat haben, das sieht dann wie folgt aus