Nützliche Powershellcommandos und Tools

Version aller Exchangeserver auslesen:

Get-ExchangeServer | Sort-Object Name | ForEach {Invoke-Command -ComputerName $_.Name -ScriptBlock {Get-Command ExSetup.exe | ForEach{$_.FileVersionInfo}}} | Format-Table -Auto

ActiveSync Auswertung als HTML:

Get-ActiveSyncDevice | select userdisplayname,deviceaccessstate,deviceid,deviceuseragent | ConvertTo-Html | Out-File “$($pwd.path)\ActiveSyncDevices_$(get-date -f dd/mm/yyyy).html”

Zu Arrays etwas hinzufügen oder kürzen:

Set-DistributionGroup “Sample” -GrantSendOnBehalfTo @{remove=’dom10\user1′}
Set-DistributionGroup “Sample” -GrantSendOnBehalfTo @{add=’dom10\user1′,’dom10\user2′}

Ausgabelimit für Shell Commandos eliminieren:

$FormatEnumerationLimit =-1

Gelöschte Mailboxen per Powershell in Exchange 2010 finden:

Get-MailboxServer exsrv* | Get-MailboxStatistics | ?{$_.disconnectdate -ne $null -and $_.displayname -like “userxy*”} | ft displayname,servername,disconnectdate

 

Datenbanken nach Activationprefenz auf DAG Server verteilen:

[PS] C:\Program Files\Microsoft\Exchange Server\V14\scripts>.\RedistributeActiveDatabases.ps1 -DagName myDAG -BalanceDbsByActivationPreference -Confirm:$false

 

Mailboxstatistik erzeugen und per Mail verschicken

 

$rootou = [ADSI](“LDAP://ou=corp,dc=corp,dc=net”)

 

$ous = ($rootou.psbase.children | Where-Object {$_.psBase.schemaClassName -eq “OrganizationalUnit”} |Select-Object -expand Name)

 

#foreach ($ou in $ous) {Get-Mailbox -OrganizationalUnit “ou=$ou,ou=corp,dc=dom,dc=local”  -resultsize unlimited | Get-MailboxStatistics | sort-object Totalitemsize -descending | select-object displayname,totalitemsize | ConvertTo-Html | Out-File C:\inetpub\wwwroot\stats\$ou-sizes.html}

 

$smtpclient = new-object system.net.mail.smtpClient

$mailmessage = new-object system.net.mail.mailmessage

$smtpclient.host = “smtphost.dom.local”

$mailmessage.from =”sender@dom.local

#$mailmessage.to.add(“someone@dom.local“)

$mailmessage.subject =”Mailboxsize Statistics”

$mailmessage.isbodyhtml = $true

 

foreach ($ou in $ous) {$filename = “c:\inetpub\wwwroot\stats\$ou-sizes.html”;$att = new-object Net.Mail.Attachment($filename);$mailmessage.Attachments.Add($att)}

$mailmessage.Body = “Attached you find the mailboxstatistics”

 

##for ($i=0;$i -le 1;$i++){

##$i

#$smtpclient.send($mailmessage)

##}

 

Durchschnittliche Mailboxgröße ermitteln:

Get-Mailbox -OrganizationalUnit “ou=corp,dc=corp,dc=net”  -resultsize unlimited | Get-

MailboxStatistics | %{$_.totalitemsize.value.tomb()} |measure-object –average

 

This entry was posted in Exchange 2013. Bookmark the permalink.