image2

You Are here: Start Kategorie als Blog Powershell-Befehle Exchange 2007/2010

Powershell-Befehle Exchange 2007/2010 PDF Drucken E-Mail
Mittwoch, den 06. Januar 2010 um 14:53 Uhr

Hier gibt es mal ein paar, für mich nützliche, Powershell-Befehle, die einige Verschachtelungen bieten und in der GUI nicht abgefragt werden können

 

Automapping für deaktivieren (ab 2010 SP2)

Get-Recipient | ?{$_.recipientTypeDetails -like "RoomMailbox"} | Add-MailboxPermission -User USER -AccessRights FullAccess -AutoMapping $true

TrackingLog per Powershell durchsuchen - Probleme bei der Erweiterung eines Verteilers finden

Get-MessageTrackingLog -EventID "Expand" -ResultSize Unlimited -Start "20.12.2011 12:00:00" | where {$_.RecipientStatus -eq "250 2.1.5 RESOLVER.GRP.Expanded; distribution list expanded" -and $_.RecipientCount -eq "0"}|ft Time*,Sender,Relat*,messagesubject

Anzeigen aller User, die OWA nutzen:

Get-Mailbox| where-object {$_.ProtocolSettings -like "*owa§1*"}|sort-object alias

Anzeigen aller User, die ActiveSync nutzen:

Get-CASMailbox | where-object {$_.ActiveSyncEnabled -like "True"}|sort-object name

Übersicht über ActivSyncDevice mit erfolgreichem Sync in den letzten Wochen

Get-Mailbox -ResultSize:Unlimited | ForEach {Get-ActiveSyncDeviceStatistics -Mailbox:$_.Identity} | Where {$_.LastSuccessSync -gt '11/30/2011'}|ft Id*,LastSuccessSync*

Anzeigen aller User aus einer bestimmten OU:

Get-Mailbox| where-object {$_.OrganizationalUnit -like "test.local/User "}|sort-object alias

Anzeigen bestimmter Mailboxstatistiken:

Get-MailboxStatistics | ft displayname,*ItemCount,total* -GroupBy StorageLimitStatus

Anzeigen der Mailboxstatistiken in MB:

Get-mailbox -database aegis| Get-MailboxStatistics |ft displayname, @{label="Total Size (MB)";expression={$_.TotalItemSize.Value.ToMB()}},@{label="Items";expression={$_.ItemCount}}

Anzeigen bestimmter Mailboxstatistiken für User einer definierten OU:

Get-Mailboxstatistics| where-object {$_.storagegroupname -like "user"}|ft displayname,itemcount,totalitemsize

Gesamten Forrest berücksichtigen:

$AdminSessionADSettings.ViewEntireForest = $True

Verschieben der Mailboxen aller User, die in einer bestimmten OU sind (2007 > 2010 new-mailboxmoverequest):

Get-Mailbox| where-object {$_.OrganizationalUnit -like "test.local/User" -and $_.database -notlike "EX07\User\User"}|move-mailbox -TargetDatabase "EX07\User\User"

 

Alle Mitglieder aller Verteilerruppen auflisten:

 

foreach ($group in Get-DistributionGroup) {get-distributiongroupmember $group | ft alias, @{label='Test1';expression={$group.name}}}

 

spezielle Rechte Abfragen


Get-MailboxPermission User| Where-Object {($_.AccessRights -eq 'Fullaccess')}

Get-ADPermission User| Where-Object {($_.ExtendedRights -eq 'Send-As')}

spezielle Rechte Abfragen - DB

Get-Mailbox -Database Test|Add-MailboxPermission -user SG_Mailbox_FullAccess -AccessRights FullAccess

Ergebnisse exportieren:


Get-Mailbox | Export-Csv c:\test.csv

Get-Mailbox | Out-File c:\test.txt

wichtige Operatoren bei Abfragen

-lt -- „Kleiner als“
-le -- „Kleiner als“ oder „Gleich“
-gt -- „Größer als“
-ge -- „Größer als“ oder „Gleich“
-eq -- „Gleich“
-ne -- „Ungleich“
-like – „Gleich“; verwendet Platzhalterzeichen für Musterübereinstimmung

leere Abfrage

-notlike ''

 

Dateioperation - erste Zeile und letztes Zeichen in der Zeile Löschen

 

$Quelle="d:\test.txt"
$Ziel="d:\testneu.txt"
$Datei = Get-Content $Quelle

Get-Content $Quelle| foreach-object {$_.TrimEnd(';')| Out-File -FilePath $Ziel -append}

get-content $ziel | select -Skip 1 | set-content "$ziel-temp"
move "$ziel-temp" $ziel -Force


siehe auch:
http://msg-blog.de/2008/05/22/das-kleine-exchange-powershell-1x1/#comments
http://www.msxfaq.de/code/powershell.htm
http://www.microsoft.com/germany/technet/scriptcenter/topics/msh/cmdlets/where-object.mspx