Benutzer mit den meisten Antworten
Problem mit if und elseif Aweisung

Frage
-
Hallo mal wieder,
Habe ein Problem mit meinem if/elseif Script:
Was soll passieren:
- Suche alles user die enterprisevoice enabled sind (das bekomme ich mit dem Flag 385 raus)
- dann prüfe die Telnummer des Users
- Anhand der Vorwahl soll nun die lokale Policy zugewiesen werden
- da es für Leipzig zwei Policys gibt (-3 und -4, steht für die Anzahl der Ziffern nach dem 6666. Bsp: 03416666123 bekommt die -3 policy und 034166661234 bekommt die -4 policy) habe ich die Ziffern ausgezählt und diese dann zugewiesen.$ArrayEnterpriseUsers = Get-ADUser -Filter {msRTCSIP-OptionFlags -like "385"} -Properties SamAccountName |Select SamAccountName Foreach ($ArrayEnterpriseUser in $ArrayEnterpriseUsers) { $user_tel = Get-ADUser $ArrayEnterpriseUser -Properties msRTCSIP-Line |select -ExpandProperty msRTCSIP-Line | measure -c |Select -ExpandProperty Characters if (Get-ADUser -Identity $ArrayEnterpriseUser -Filter ({msRTCSIP-Line -like "+496172*"})){ get-ummailbox -Identity $ArrayEnterpriseUser | disable-ummailbox -Confirm false Enable-UMMailbox -Identity $ArrayEnterpriseUser -UMMailboxPolicy "GermanyBadHomburg" } elseif (Get-ADUser -Identity $ArrayEnterpriseUser -Filter ({msRTCSIP-Line -like "+49511*"})){ get-ummailbox -Identity $ArrayEnterpriseUser | disable-ummailbox -Confirm false Enable-UMMailbox -Identity $ArrayEnterpriseUser -UMMailboxPolicy "GermanyHannover" } elseif (Get-ADUser -Identity $ArrayEnterpriseUser -Filter ({msRTCSIP-Line -like "+49221993858*"})){ get-ummailbox -Identity $ArrayEnterpriseUser | disable-ummailbox -Confirm false Enable-UMMailbox -Identity $ArrayEnterpriseUser -UMMailboxPolicy "GermanyKoeln-HM" } elseif (Get-ADUser -Identity $ArrayEnterpriseUser -Filter ({msRTCSIP-Line -like "+49221299285*"})){ get-ummailbox -Identity $ArrayEnterpriseUser | disable-ummailbox -Confirm false Enable-UMMailbox -Identity $ArrayEnterpriseUser -UMMailboxPolicy "GermanyKoeln-SS" } elseif (Get-ADUser -Identity $ArrayEnterpriseUser -Filter ({msRTCSIP-Line -like "+49351*"})){ get-ummailbox -Identity $ArrayEnterpriseUser | disable-ummailbox -Confirm false Enable-UMMailbox -Identity $ArrayEnterpriseUser -UMMailboxPolicy "GermanyMagdeburg" } elseif (Get-ADUser -Identity $ArrayEnterpriseUser -Filter ({msRTCSIP-Line -like "+498121*"})){ get-ummailbox -Identity $ArrayEnterpriseUser | disable-ummailbox -Confirm false Enable-UMMailbox -Identity $ArrayEnterpriseUser -UMMailboxPolicy "GermanyPoing" } elseif (Get-ADUser -Identity $ArrayEnterpriseUser -Filter ({msRTCSIP-Line -like "+49711*"})){ get-ummailbox -Identity $ArrayEnterpriseUser | disable-ummailbox -Confirm false Enable-UMMailbox -Identity $ArrayEnterpriseUser -UMMailboxPolicy "GermanyStuttgart" } elseif (Get-ADUser -Identity $ArrayEnterpriseUser -Properties msRTCSIP-Line -Filter ({msRTCSIP-Line -like "+493416666*"})){ if ( $user_tel -eq "17"){ get-ummailbox -Identity $ArrayEnterpriseUser | disable-ummailbox -Confirm false Enable-UMMailbox -Identity $ArrayEnterpriseUser -UMMailboxPolicy "GermanyLeipzig-3" }else{ get-ummailbox -Identity $ArrayEnterpriseUser | disable-ummailbox -Confirm false Enable-UMMailbox -Identity $ArrayEnterpriseUser -UMMailboxPolicy "GermanyLeipzig-4" } } }
Aus meiner sicht sieht auch alles ganz toll aus aber ich bekomme immer folgenden Fehler:Get-ADUser : Parameter set cannot be resolved using the specified named parameters.
At C:\Temp\Admin.TB\PS-Scripts\Check_and_Enable_UMMailbox.ps1:13 char:17
+ if (Get-ADUser <<<< -Identity $ArrayEnterpriseUser -Filter ({msRTCSIP-Line -like "+496172*"})){
+ CategoryInfo : InvalidArgument: (:) [Get-ADUser], ParameterBindingException
+ FullyQualifiedErrorId : AmbiguousParameterSet,Microsoft.ActiveDirectory.Management.Commands.GetADUser
Wo liegt da mein Problem?:(
VG, Thomas
Antworten
-
Get-ADUser kennt drei Property Sets (http://technet.microsoft.com/en-us/library/ee617241.aspx). Der Fehler "AmbiguousParameterSet" sagt aus, daß die PowerShell nicht eindeutig erkennen kann, welches der drei Property Sets Du benutzten möchtest.
Entweder, Du benutzt den Parameter
- "Identity" (Du weißt genau, welchen Benutzer Du lesen möchtest), oder
- "LDAPFilter" (Du suchst nach n Benutzern mittels LDAP Filter), oder
- "Filter" (Du suchst nach n Benutzern mittels Filter)
Diese Parameter schließen sich gegenseitig aus und können nicht in einem Aufruf zusammen benutzt werden.
Somit ist dies keine Problem mit dem If-Statement sondern mit dem Aufruf von Get-ADUser.
-Raimund
- Bearbeitet Raimund AndréeMicrosoft employee Freitag, 27. Juli 2012 08:21
- Als Antwort vorgeschlagen Denniver ReiningMVP, Moderator Montag, 30. Juli 2012 11:45
- Als Antwort markiert Digiflex Montag, 30. Juli 2012 13:08
Alle Antworten
-
Get-ADUser kennt drei Property Sets (http://technet.microsoft.com/en-us/library/ee617241.aspx). Der Fehler "AmbiguousParameterSet" sagt aus, daß die PowerShell nicht eindeutig erkennen kann, welches der drei Property Sets Du benutzten möchtest.
Entweder, Du benutzt den Parameter
- "Identity" (Du weißt genau, welchen Benutzer Du lesen möchtest), oder
- "LDAPFilter" (Du suchst nach n Benutzern mittels LDAP Filter), oder
- "Filter" (Du suchst nach n Benutzern mittels Filter)
Diese Parameter schließen sich gegenseitig aus und können nicht in einem Aufruf zusammen benutzt werden.
Somit ist dies keine Problem mit dem If-Statement sondern mit dem Aufruf von Get-ADUser.
-Raimund
- Bearbeitet Raimund AndréeMicrosoft employee Freitag, 27. Juli 2012 08:21
- Als Antwort vorgeschlagen Denniver ReiningMVP, Moderator Montag, 30. Juli 2012 11:45
- Als Antwort markiert Digiflex Montag, 30. Juli 2012 13:08