POWERSHELL

AD Module for Powershell

Andres Bohren
Hallo zusammen, Beim Surfen bin ich �ber das Active Directory Powershell Blog gestolpert. Das wollte ich auch mal ausprobieren. Hier nun die Anleitung: Man ben�tigt die�Remote Server Administration Tools (RSAT) von Windows 7. Nach der Installation der RSAT muss man in den Windows Features die "Active Directory Module f�r Windows Powershell" aktivieren. Das ganze funktioniert aber erst mit einem Domain Controller ab Windows 2008 R2�weil erst dort die Active Directory Webservices verf�gbar sind.

Powershell List AD Group Members

Andres Bohren
Hallo zusammen K�rzlich habe ich Code f�r eine ASP.Net Website gepostet, welche die Gruppenmitgliedschaft eines "Windows Authenticated" Users auflistet. http://blog.icewolf.ch/archive/2010/09/02/asp.net-get-group-membership-from-windows-authenticated-user.aspx Heute zeige ich euch wie man in Powershell die Gruppenmitglieder einer Gruppe mit Powershell auflisten lassen kann. Dies geschieht �ber die Dotnet Klasse System.DirectoryServices.AccountManagement. Ich habe eine Gruppe "L-Test" mit zwei Mitgliedern. Der Unstenstehende Powershell Code listed die Mitglieder nun auf. Add-Type -AssemblyName� System.DirectoryServices.AccountManagement $ct = [System.DirectoryServices.AccountManagement.ContextType]::Domain $group = [System.DirectoryServices.AccountManagement.GroupPrincipal]::FindByIdentity($ct,'L-Test')

Managed Service Accounts in Windows 2008 R2

Andres Bohren
Hallo zusammen, Ich habe mir die Managed Service Accounts in Windows 2008 R2 mal ein bisschen näher angeschaut. Auf dieser Technet Website gibt es eine Step-By-Step Anleitung: http://technet.microsoft.com/en-us/library/dd548356(WS.10).aspx import-Module ActiveDirectory New-ADServiceAccount -SamAccountName MyService -Name MyService Remove-ADServiceAccount -Identity MyService Install-ADServiceAccount -Identity MyService Remove-ADServiceAccount -Identity MyService Beim Install-ADServiceAccount kommt es zu einem Fehler. Ursache ist hier, dass der AccountName länger als 15 Zeichen ist. Davon steht aber leider nirgends etwas. So sieht das dann in der AD Management Console aus.

AD Replikation mit Powershell überwachen

Andres Bohren
Hallo zusammen, Ich habe mir kürzlich ein Powershell Script geschrieben, welches mir einmal Täglich die Replikation prüft und das Ergebnis per Mail sendet. Eigentlich macht das Script nichts anderes, als den untenstehenden Befehl aufzurufen und das Resultat in eine TXT Datei zu schreiben und diese dann per Email zu versenden. repadmin /replsummary Und hier das Script (oder hier als Download) ################################################################################ # Monitor Replmon # Runs "repadmin /replsummary" and sends the Output per Mail as Attachement # # (c) 2010 Andres Bohren ################################################################################

Mailbox Provisioning from CSV File

Andres Bohren
Hallo zusammen, Heute zeige ich euch mal, wie man User und Mailboxen aus einem CSV File anlegt. Als erstes machen wir ein CSV (Comma Separated Value) File und speichern es unter C:\mitarbeiter.csv ab Name,FirstName,LastName,UPN,OU Albert Einstein,Albert,Einstein,a.einstein@foo.com,TestOU Niels Bohr,Niels,Bohr,n.bohr@foo.com,TestOU So sieht das Script aus: $Pwd = ConvertTo-SecureString "P@ssw0rd" -AsPlainText -Force $csv = Import-Csv c:\mitarbeiter.csv $csv | ForEach-Object{New-Mailbox -Name $_."Name" -FirstName $_."FirstName" -Lastname $_."LastName" -UserPrincipalName $_."UPN" -OrganizationalUnit $_."OU" -Password $Pwd} Und nun lassen wir das ganze mal laufen.

How to get Exchange Version by Powershell

Andres Bohren
Hallo zusammen, Wie finde ich denn raus was für eine Exchange Version dass ich installiert habe? Gerade nach einem Update? Gemäs dem Exchange Team Blog ist das das verlässlichste Mittel nicht die AdminDisplayVersion sondern die Version von ExSetup.Exe aus dem \Exchange\bin Ordner. Get-ExchangeServer | fl Name,AdminDisplayVersion Ich habe deshalb mal schnell ein Powershell Script geschrieben, welches die Version von Exchange 2007/2010 erkennen kann. ############################################################################### # Get Exchange Product Version #

Scripts for Forefront Management Shell

Andres Bohren
Hallo zusammen, Ich habe da ein paar Scripts für die Forefront Management Shell erstellt. Wenn man eine ganz normale Powershell geladen hat, muss mann zuerst die Snap-ins für Forefront laden. Das geschieht mit dem folgenden Befehl: Add-PsSnapin FSSPSSnapin Anschliessend habe ich das Get-FseSpamReport CMDlet ausgeführt mit den Parametern -Starttime und -Endtime. Get-FseSpamReport -Starttime "01.02.2010 00:00" -Endtime "28.02.2010 00:00" War ein bisschen viel für meinen Geschmack - ich lasse mir also nur noch das anzeigen, was ich möchte.

Powershell ScriptSigning

Andres Bohren
Hallo zusammen, Wie kann man die Sicherheit von Scripts im Unternehmen erhöhen? Klar mit CodeSigning! Die Scripts werden signiert und der Interpreter kann die Signatur prüfen. Dazu habe ich mir mal ein CodeSigning Zertifikat ausgestellt. Ich habe da mal ein einfaches Powershell Script vorbereitet. Beim Versuch das Script auszuführen kommt eine Fehlermeldung. In der Standarteinstellung kann Powershell keine Scripts ausführen - dies muss explizit erlaubt werden. Eine Powershel als Admin starten und den folgenden Befehl eingeben:

Powershell - SQL DB

Andres Bohren
Hallo zusammen, Ich habe kürzlich die Benachrichtigung über Geburtstage auf meiner Website auf Powershell umgestellt. Dabei musste ich mit Powershell auf die MS SQL 2005 Datenbank zugreifen. Hier ein kleines Script welches genau das demonstriert. ############################################################################################# # GetMovies ############################################################################################# Function GetMovies { # Setup SQL Connection $SqlConnection = New-Object System.Data.SqlClient.SqlConnection $SqlConnection.ConnectionString = "Data Source=ICESRV02;database=db\_home\_icewolf;Uid=myusername;Pwd=mypassword" #SQL String $qSQL = "SELECT TOP 10 [fID], [fTitle], [fKategorie],[fBewertung],[fDatum],[fURL] FROM tMovies ORDER BY [fDatum] DESC" $SqlCmd = New-Object System.

Powershell - Send Email

Andres Bohren
Um ein Email mit Powershell zu versenden benötigt man nur einige wenige Zeilen Code: $SmtpServer = "localhost" $From = "someone@here.com" $To = "someone@internet.com" $Subject = "Greetings from MSH" $Body = "Hello, SomeOne `n Greetings from MSH" $Attachment = new-object Net.Mail.Attachment("C:\test.txt") $message = New-Object system.net.mail.mailmessage ($from,$to,$subject,$body) $message.attachments.add($attachment) $SmtpClient = new-object system.net.mail.smtpClient $SmtpClient.host = $SmtpServer $SmtpClient.Send($message) That’s it ;o)