# created by Jan Kovar # honza@tnx.cz # http://www.tnx.cz/ # $Address = $Null #Zbytecny radek $Mailboxes = Get-CASMailbox -resultsize unlimited -filter {Activesyncenabled -eq $true} #Chci mailboxy, ktere maji povoleny Active sync $mobily = @{"Unknown" = 0} #Pouzivam hash table, pridavam prvni par "Zadna synchronizace:" > no_sync2007.txt #Vytvarim soubor no_sync2007.txt - uzivatele s povolenym ActiveSyncem, kteri ho nepouzivaji "Zadny deviceuseragent:" > no_agent2007.txt #Vytvarim soubor no_agent2007.txt - uzivatele, kteri pouzili ActiveSync, ale maji prazdne pole DeviceUserAgent $datum = ((get-date).AddDays(-30)) #Vytvarim promenou s datumem pred 30 dny Foreach ($Address in $Mailboxes) #Beru vsechny objekty, ktere mi vratil get-casmailbox ... { #1 start $mbx = get-activesyncdevicestatistics -mailbox $Address.Name #Pro kazdy mailbox s aktivnim AS spoustim dotaz na vsechny zarizeni, ktere se synchronizuji s mbx If (!$mbx) #Pokud je vysledek prazdny { #2 start $Address.Name >> no_sync2007.txt #Ukladam jmeno uzivatele do souboru. Ma povoleny Active sync, ale nepouzil to. } #2 konec else #Pokud neni vysledek prazdny { #3 start Foreach ($device in $mbx) #Budu zkoumat kazde zarizeni, se kterym synchronizoval { #4 start If ((!$device.LastSyncAttemptTime) -OR ($device.LastSyncAttemptTime -lt $datum)) #Zahazuju vsechny zarizeni, ktere nemaji nejaky pokus o sychronizaci #a nebo je to delsi dobu nez 30 dni. {} #Takove me nezajimaji else #Zajimaji me jen zarizeni, ktere zkusily komunikovat poslednich 30 dnu. { #5 start If (!$device.DeviceUserAgent) #Jestli maji prazdny DeviceUserAgent { #6 start $index = "Unknown" #Hledam Unknown zarizeni v tabulce $overit = $mobily[$index] #Nactu hodnotu $overit = $overit + 1 #Prictu 1 $mobily[$index] = $overit #Ulozim zpet "Jmeno: " + $Address.Name >> no_agent2007.txt #Zapisu jmeno do seznamu uzivatelu, pouzivajicich nezname zarizeni, at se muzeme zeptat #co to ma za exotickou masinku } #6 konec else #Pokud to nacetlo nejaky DeviceUserAgent { #7 start $pole = $device.DeviceUserAgent.split("/") #Rozdelim hodnotu DeviceUserAgent podle lomitka do polozek pole $index = $pole[0] #Zajima me jen prvni hodnota $overit = $mobily[$index] #Zjistime, jestli uz mam tento mobil v tabulce If (!$overit) #Pokud ne { #8 start $mobily[$index] = 1 #Pridam novy telefons poctem 1 do tabulky } #8 konec else #Pokud existuje { #9 start $overit = $overit + 1 #Tak se nam o 1 zvysi pocet v tabulce $mobily[$index] = $overit #A zapise se } #9 konec } #7 konec } #5 konec } #4 konec } #3 konec } #1 konec $mobily.GetEnumerator() | select key, Value | export-csv devices2007.csv -NoTypeInformation #Ted z hash table udelam objekt, vyberu sloupce a exportuju do csv