ActiveSync Geräte per PowerShell auswerten Thema ist als GELÖST markiert

kleine praktische Skripte die den Arbeitsalltag erleichtern.
Benutzeravatar
Ulrich Wiedholz
Beiträge: 282
Registriert: Samstag 10. Dezember 2011, 17:19
Kontaktdaten:

ActiveSync Geräte per PowerShell auswerten

Ungelesener Beitrag von Ulrich Wiedholz »

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: Alles auswählen

$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 *grüßgott*
In diesem Sinne...

Ulrich Wiedholz
UW-Operator.de
Benutzeravatar
Ulrich Wiedholz
Beiträge: 282
Registriert: Samstag 10. Dezember 2011, 17:19
Kontaktdaten:

Re: ActiveSync Geräte per PowerShell auswerten

Ungelesener Beitrag von Ulrich Wiedholz »

Ab dem Exchange Server 2013 sollte man dieses Skript verwenden:

Code: Alles auswählen

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://Mailserver.Domain.local/PowerShell/ -Authentication Kerberos
Import-PSSession $Session -AllowClobber

$Devices = Get-MobileDevice | 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-MobileDeviceStatistics
        $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
Get-ActiveSyncDevice wurde durch Get-MobileDevice ersetzt.
Get-ActiveSyncDeviceStatistics wurde durch Get-MobileDeviceStatistics ersetzt.

Verwendet man das alte Skript, funktioniert dieses auch, es erscheint aber eine Mitteilung dass in einer künftigen Version nur noch der mit Exchange 2013 eingeführte Befehl "MobileDevice" verwendet werden kann.
In diesem Sinne...

Ulrich Wiedholz
UW-Operator.de
Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast