PowerShell

PowerShell Techguy.at

Leere AD Gruppen mittels PowerShell ermitteln

PowerShellHeute ein nützliches Script welches euch alle leeren AD Gruppen ausgibt, damit könnt ihr mal euer AD bereinigen.

Ich habe das Script mal geschrieben, da wir bei einem Kunden das AD bereinigen sollten.

Es gibt hier noch mehr dieser Scripte, diese werde ich entweder n dieser Serie oder demnächst mal als Beitrag bringen.

Zuerst einmal holen wir uns alle AD Gruppen mit folgendem Kommando.

Das Script

Get-ADGroup -Filter *

Bei Get-ADGroup oder Get-ADUser gibt es ein besonderes Attribut, und zwar “-Filter” welches auch zwingend ist, dazu aber in einem anderen Beitrag mehr.

In unserem Fall erhalten wir alle AD Gruppen aus dem AD, was dann ungefähr so aussieht.

SCDPM abgelaufene Tapes als Frei markieren PowerShell

PowerShellHeute mal wieder ein PowerShell Script für den SCDPM.

Diesmal handelt es sich um ein Script, welches alle abgelaufenen Tapes als “Frei” markiert und somit wieder beschreibbar macht.

Sehr nützlich dies einmal täglich am DPM Server laufen zu lassen, somit müsst ihr euch nicht selbst darum kümmern.

Kommen wir zum Script und zum Ablauf.

Das Script

Unser DPM Server hat momentan 2 abgelaufene Tapes.

image

Nun kommen wir zu unserem Script, diese besteht wieder mal aus der Definition des DPM Servers und dem Import des DPM Modules.

SCDPM Cleaning PowerShell

PowerShellWie ihr wahrscheinlich schon wisst, kann der DPM nicht automatisch eine Reinigung anstoßen, diese muss vom Admin mittels GUI gestartet werden.

Das Problem daran, ist, sobald der DPM eine Reinigung benötigt, werden alle Sicherungsjobs, vom Typ: Tape, gecancelt und bringen einen Fehler, somit solltet ihr sicherstellen das eure Laufwerke immer gereinigt sind.

Dazu habe ich ein PowerShell Script geschrieben, welches mittels geplantem Tasks, regelmäßig die Laufwerke eurer Library reinigt.

Das Script

PowerShell Out-GridView und PassThru

PowerShell

Heute möchte ich euch das PowerShell CMDlet “Out-GridView” und den Parameter PassThru vorstellen.

Out-GridView bietet euch die Möglichkeit ein Array in einem externen Fenster, etwas übersichtlicher, darzustellen.

Das Fenster bietet einen Excel ähnlichen Aufbau und ihr habt somit die Möglichkeit dort die Spalten zu sortieren und die Werte zu Filtern, und das sehr einfach und schnell.

PowerSehll Out-GridView

Fangen wir mit einem kleinen Beispiel an.

Mit folgenden Kommando holen wir uns alle Element aus einem Ordner.

Get-ChildItem -Path “C:\Temp\MyFolder”

Standardmäßig würde PowerShell dies nun so darstellen.

image

Als schnell Information sicherlich ausreichend, sollte die Liste jedoch länger sein und man sortieren oder Filtern möchte bietet Out-GridView hier bessere Möglichkeiten.

Verschieben aller Mailbox Datenbanken auf einen Node mittels PowerShell

PowerShellZugegeben, das wird ein kurzer Beitrag, aber das Script hat mir schon viel Zeit und Arbeit erspart, gerade bei Exchange Updates oder Tests ist es sehr hilfreich.

Ich zeige euch hier ein Script, welches mit nur 1 Zeile alle Mailbox Datenbanken auf einen anderen Exchange Node verschiebt, das ganze funktioniert mittels PowerShell Pipe ( | ).

Das Script

Zuerst, müssen wir mittels

Get-MailboxDatabase

alle Mailbox Datenbanken ermitteln. Je nach Aufbau und Umfang der Exchange Umgebung kann hier schon eine große Liste retour kommen.

Um eine Mailbox Datenbank zu verschieben muss folgendes Kommando ausgeführt werden

Move-ActiveMailboxDatabase *Name der DB* –ActivateOnServer *Name des Servers* -MountDialOverride none

Jetzt wäre das ja extrem mühsam, dieses Kommando für alle unsere Mailbox Datenbanken auszuführen, dann könnten wir es mittels der GUI auch machen. Aber es gibt die Pipe ( | ), die es uns in PowerShell ermöglicht, das Ergebnis einer Abfrage dem nächsten Kommando zu übergeben.

PowerShell – SWITCH

PowerShellHeute kümmern wir uns um eine PowerShell Funktion mit dem Namen “Switch”.

In PowerShell, oder generell in der Programmierung, gibt es viele Wege und Varianten auf ein Ereignis oder Ergebnis dementsprechend zu reagieren. Also zB: Wenn ein Wert “1” ist soll Aktion “A” passieren, bei Wert “2” soll Aktion “B” passieren, bei Wert “3”….. usw.

Es gibt hier die Möglichkeiten mit einer IF Abfrage, wobei das bei vielen Werten meist sehr kompliziert wird. Daher gibt es das SWITCH Kommando.

Die Aufgabe

Ich habe mir ein Beispiel einfallen lassen, welches hoffentlich leicht zu verstehen ist. Stellen wir uns vor wir wollen dem User mitteilen, wie schnell er auf dem jeweiligen Straßenabschnitt fahren darf.

Im Ortsgebiet sind 50 KM/h erlaubt, auf der Autobahn 130 KM/h usw.

Somit sind unsere Werte Autobahn, Bundesstrasse, Ortsgebiet und Wohngebiert, bei diesen wollen wir dem dementsprechende Warnung ausgeben.

Export und Import GPO mit PowerShell

PowerShell

Und wieder ein neuer Artikel mit PowerShell.

Diesmal war der Anlasse mir die unzähligen Domain Migration zu erleichtern. Ich war die letzten 2 Jahre sehr oft unterwegs und durfte mit verschiedenen Kunden Domainmigrationen planen und umsetzen, daraus entstand folgendes Script.

Dieses PowerShell Script hat 2 Funktionen, Import und Export.

Der Export speichert jedes GPO Element in ein eigenes Verzeichnis. Der Import importiert jedes GPO Element aus dem Export Ordner und kann optional noch einen Pre- oder Post Name hinzufügen.

Das Script

Das Script besteht aus mehreren Teilen die ich hier durchgehen, zum Schluss findet ihr einen Download zum Script.

Zu Beginn definieren die die Parameter, mit dem unser Script ausgeführt wird. Unser Schalter heißt “Mode” und bieten die Optionen Import und Export.

Mit “Mandatory=$True” muss dieser Schalter angegeben werden

Standarddrucker und Druckereinstellungen mittels PowerShell konfigurieren

PowerShell

Ich hatte vor kurzem mal die Anforderung von einem Kunden, mittels Script den Standarddrucker zu ermitteln diesen auf Schwarz-Weiß zu stellen.

Als PowerShell Fan habe ich natürlich sofort versucht das mit PS zu lösen, und war erstaunt wie einfach dies doch funktioniert.

Voraussetzung ist jedoch Windows 8 oder Windows Server 2012 mit PowerShell v3. Das installieren der aktuellen PowerShell Version auf Windows 7 hat leider auch nicht funktioniert.

 

Standarddrucker mittels PowerShell

Zuerst wollen wir mal den aktuellen Standarddrucker ermitteln

Get-WmiObject -Class Win32_Printer -Filter “Default = $true”

Hier sollte das Ergebnis in etwa so aussehen

Location :
Name : EPSON BX535WD Series
PrinterState : 128
PrinterStatus : 1
ShareName :
SystemName : SEIMI-NB

System Center Orchestrator Powershell Script Execution IP

Es gibt ein PowerShell Execution Script Integration Pack für System Center Orchestrator 2012 welches euch die Ausführung von Powershell Scripts auf entfernten Rechner erleichtert. Den Download findet ihr hier: http://orchestrator.codeplex.com/releases/view/76101 Das ganze noch importieren und deployen, und schon sehen euch 2 Activites im SCO zur Verfügung. Die beiden Activities unterscheiden sich nur in der Konfiguration, …

System Center Orchestrator Powershell Script Execution IP Read More »

DPM RecoveryPoint mittels PowerShell erstellen, für eine gesamte Schutzgruppe

Ich hatte gerade die Anforderung, für alle Datasoruces einer Schutzgruppe, einen RecoveryPoint zu erstellen. Leider nicht ganz so einfach mittels PowerShell, deshalb hier mein Weg. Zuerst sehen wir uns die Schutzgruppen an Get-ProtectionGroup –dpmServerName *Servername* Dies liefert uns eine Liste mit allen ProtectionGroup am angegebenen Server Jetzt müssen wir uns für eine ProtectionGroup entscheiden und …

DPM RecoveryPoint mittels PowerShell erstellen, für eine gesamte Schutzgruppe Read More »