Hat man verschiedene mobile Geräte im Einsatz, möchte man oft einfach eine schnelle Auswertung haben, welche Geräte upgedatet werden müssten, oder wann der letzte erfolgreiche Sync durchgelaufen ist. Hier kann uns auch die PowerShell mit einem Datagrid oder eine CSV-Datei für Excel weiterhelfen.
Code:
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://Mailserver.Domain.local/PowerShell/ -Authentication Kerberos
Import-PSSession $Session -AllowClobber
$Devices = Get-ActiveSyncDevice | sort UserDisplayName
$Global:DeviceInformationArr = New-Object system.Collections.ArrayList
#Die Schleife ruft die Infos von jedem einzelnen Device ab
Foreach ($Device in $Devices) {
$DeviceObj = New-Object PsObject
$DeviceObj | Add-Member -MemberType NoteProperty "Benutzer" -Value $Device.UserDisplayName.Substring($Device.UserDisplayName.LastIndexOf("/")+1)
$DeviceObj | Add-Member -MemberType NoteProperty "Beschreibung" -Value $Device.FriendlyName
$DeviceObj | Add-Member -MemberType NoteProperty "Gerät" -Value $Device.DeviceType
$DeviceObj | Add-Member -MemberType NoteProperty "Modell" -Value $Device.DeviceModel
$DeviceObj | Add-Member -MemberType NoteProperty "System" -Value $Device.DeviceOS
$DeviceObj | Add-Member -MemberType NoteProperty "IMEI" -Value $Device.DeviceImei
$DeviceStat = $Device | Get-ActiveSyncDeviceStatistics
$DeviceObj | Add-Member -MemberType NoteProperty "letzter Sync" -Value $DeviceStat.LastSuccessSync
$DeviceObj | Add-Member -MemberType NoteProperty "Ordner" -Value $DeviceStat.NumberOfFoldersSynced
$DeviceObj | Add-Member -MemberType NoteProperty "ID" -Value $DeviceStat.DeviceID
$Global:DeviceInformationArr.add($DeviceObj) | out-null
}
$Global:DeviceInformationArr | ogv # <- Ausgabe im Grid
$Global:DeviceInformationArr | Export-Csv Deviceliste.csv # <- Ausgabe als CSV-Datei - Kann mit Excel geöffnet und bearbeitet werden
Erklärung:
Zunächst stellen wir eine Verbindung zu unserem Exchange-Server her, und holen uns dort die Daten aller ActiveSyncDevices.
In einer Schleife lesen wir die für uns interessanten Infos in ein Array ein, das wir dann im Datagrid ausgeben und als CSV-Datei speichern.
Im Beispiel der Username, die Gerätebeschreibung (da teilweise manuell Gepflegt), Gerätedaten, Betriebssystemversion, IMEI für eindeutige Zuordnung, der letzte erfolgreiche Sync, wie viele Ordner synchronisiert werden und die Geräte ID.
Ich hoffe ich konnte mit dem Skript den einen oder anderen Anreiz geben, selbst ein PowerShell Skript umzusetzen