none
Problem mit if und elseif Aweisung RRS feed

  • 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

    Donnerstag, 26. Juli 2012 14:39

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


    Freitag, 27. Juli 2012 08:20

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


    Freitag, 27. Juli 2012 08:20
  • Danke Raimund!! Das war mein Fehler!

    Gruß
    Thomas

    Montag, 30. Juli 2012 13:10