AdventShell

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 – Export dynamischer Verteilerlisten aus Exchange Read More »

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.

Active Directory Vererbung mittels PowerShell aktivieren Read More »

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

Datasources mittels PowerShell zur DPM Schutzgruppe hinzufügen Read More »

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 Import-Module oder Add-PSSnapIn Read More »

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

Powershell Get-Date Read More »

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.

Leere AD Gruppen mittels PowerShell ermitteln Read More »

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 abgelaufene Tapes als Frei markieren PowerShell Read More »

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

SCDPM Cleaning PowerShell Read More »

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.

PowerShell Out-GridView und PassThru Read More »

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.

Verschieben aller Mailbox Datenbanken auf einen Node mittels PowerShell Read More »