Quantcast
Channel: Windows PowerShell Forum
Viewing all articles
Browse latest Browse all 2314

Hilfe bei Script

$
0
0

Hallo zusammen

Da ich noch ein bisschen unerfahren in Powershell bin bräuchte ich eure Hilfe..
Die Ausgangslage ist so ich bin ein Azubi in einer mittelgrossen Firma in der Microsoft-Server-Abteilung und jetzt bekam ich den Auftrag bei einem Powershell-Script einen bestimmten Teil zu automatisieren.
Bei besagtem Script geht es darum die Anzahl aller Handy's in der Firma herauszufinden und diese der richtigen OS-Version zuzuweisen, schlussendlich sollte die Anzahl aller OS-versionen die es in der Firma gibt herauskommen.

Jetzt ist es so das bis jetzt die OS-Versionen von Hand, in Form von Variabeln, eingetippt werden mussten.

$iOS6.6 = 0 

Jetzt sollte ich diesen Teil mit der Hilfe eines Hashtable automatisieren, so das sich eine neue OS-Version automatisch, bei jedem Durchlauf, hinzufügt.

$îOSHasttable = @{}

Jetzt habe ich das so weit, das es bei jedem Durchlauf alle OS-Versionen in die leere Hashtable geschrieben werden und es dann bei jedem Handy schaut welche OS-Version es hat und es dementsprechend bei der gleichen OS-Version im hashtable den Wert um eins erhöht.

Mein Problem ist jetzt das die OS-Versionen so in die Hashtable geschrieben werden: iOS 7.0.4 11B554a
ich bräuchte es eher in diesem Format: iOS 7.0.4*

Falls sich da jemand mal das Script anschauen und einen Weg finden könnte wie man das im Format iOS 7.0.4* darstellen kann, ware ich sehr froh...

Hier noch das Script:

$s = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://srv00832/powershell -Authentication Kerberos
Import-PSSession $s -EA SilentlyContinue
$Zaehler = 0
$iPhoneiOS = 0
$AppleGeraete = 0
$iPhoneHashiOS = @{} 
[Array]$ADUser = Get-CASMailbox -ResultSize 25 | Where {$_.HasActiveSyncDevicePartnership -eq $TRUE}
foreach ($User in $ADUser)
{
	$Zaehler++
	$AcSyDeStatisticList = Get-ActiveSyncDeviceStatistics -Mailbox $($User.SamAccountName)
    foreach ($AcSyDeStatistic in $AcSyDeStatisticList)
	{
		$LastSyncTime = $($AcSyDeStatistic.LastSuccessSync)
		If ($LastSyncTime -ne $null)
		{
			$LastSyncDiff = $LastSyncTime - $(Get-Date)
			If ($LastSyncDiff -gt $Zeitraum){     
                if (($($AcSyDeStatistic.DeviceOS) -eq $null) -and ($($AcSyDeStatistic.DeviceUserAgent) -like "Apple*")){$iPhoneiOS++}
                if ($($AcSyDeStatistic.DeviceUserAgent) -like "Apple*"){$AppleGeraete++}
                   ForEach($KeyName in @($AcSyDeStatistic.DeviceOS)) {
                   $iPhoneHashiOS.$KeyName = 0
                   $iPhoneHashiOS.key.Remove((Where-Object -Like "Windows*"))
                            }
                   foreach ($key in [object[]]$iPhoneHashiOS.Keys){
                    if($AcSyDeStatistic.DeviceOS -like $key){
                        $iPhoneHashiOS[$key]++
                        }
                    }

                }
            }
        }
    }

P.S Eine andere Möglichkeit wäre auch noch in der Hashtable schon die OS-Versionen vordefiniert zu haben und dann wärend dem Durchlauf die neuen OS-Versionen hinzuzufügen

$s = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://srv00832/powershell -Authentication Kerberos
Import-PSSession $s -EA SilentlyContinue
$Zaehler = 0
$iPhoneiOS = 0
$AppleGeraete = 0
$iPhoneHashiOS = @{"iOS 6.0*" = 0; "iOS 6.1*" = 0; "iOS 6.1.1*" = 0; "iOS 6.1.2*" = 0; "iOS 6.1.3*" = 0; "iOS 7.0*" = 0; "iOS 7.0.2*" = 0; "iOS 7.0.3*" = 0; "iOS 7.0.4*" = 0; "iOS 7.1*" = 0} 
[Array]$ADUser = Get-CASMailbox -ResultSize 5 | Where {$_.HasActiveSyncDevicePartnership -eq $TRUE}
foreach ($User in $ADUser)
{
	$Zaehler++
	$AcSyDeStatisticList = Get-ActiveSyncDeviceStatistics -Mailbox $($User.SamAccountName)
    foreach ($AcSyDeStatistic in $AcSyDeStatisticList)
	{
		$LastSyncTime = $($AcSyDeStatistic.LastSuccessSync)
		If ($LastSyncTime -ne $null)
		{
			$LastSyncDiff = $LastSyncTime - $(Get-Date)
			If ($LastSyncDiff -gt $Zeitraum){

                $AcSyDeStatistic.DeviceOS
                if ($AcSyDeStatistic.DeviceOS -notlike $iPhoneHashiOS){ForEach($KeyName in @($AcSyDeStatistic.DeviceOS)){$iPhoneHashiOS.$KeyName = 0}}     
                if (($($AcSyDeStatistic.DeviceOS) -eq $null) -and ($($AcSyDeStatistic.DeviceUserAgent) -like "Apple*")){$iPhoneiOS++}
                if ($($AcSyDeStatistic.DeviceUserAgent) -like "Apple*"){$AppleGeraete++}
                foreach ($key in [object[]]$iPhoneHashiOS.Keys){
                    if ($AcSyDeStatistic.DeviceOS -like $key){
                        $iPhoneHashiOS[$key]++
                        }
                    }

                }
            }
        }
    }
   

Gruss Dominique

iOS 7.0.4 11B554a 


Dominique Hofmann


Viewing all articles
Browse latest Browse all 2314

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>