2016-03-29 18 views
2
function contactOU 
{ 
    #This selects which OU to place the contact in. 
    write-host 
    write-host '~Contact type~' 
    write-host '1. Admin' 
    write-host '2. Assistant Owner' 
    write-host '3. Owner Partner' 
    write-host '4. Owner' 
    write-host '5. Team Leader' 
    write-host 
    $contacttype = (Read-host -prompt 'Which type of contact') 
    if($contacttype = "1") {$contactOU = "OU=Admins,OU=Marketing Companies,OU=Contacts,DC=company,DC=com,DC=au"} 
    if($contacttype = "2"){$contactOU = "OU=Assistant Owners,OU=Marketing Companies,OU=Contacts,DC=company,DC=com,DC=au"} 
    if($contacttype = "3"){$contactOU = "OU=Owner Partner,OU=Marketing Companies,OU=Contacts,DC=company,DC=com,DC=au"} 
    if($contacttype = "4"){$contactOU = "OU=Owners,OU=Marketing Companies,OU=Contacts,DC=company,DC=com,DC=au"} 
    if($contacttype = "5"){$contactOU = "OU=Team Leaders,OU=Marketing Companies,OU=Contacts,DC=company,DC=com,DC=au"} 
    else{write-host 'Please select a valid number',contactOU} 

    #For testing 
    write-host $contactOU 

    #May put this in an individual function? 
    New-ADObject -name $contactname -type Contact -Path $contactOU -OtherAttributes @{displayName=$contactname;mail=$emailaddress;targetAddress=$targetaddress} 

} 

Yaşadığım sorun, IF seçeneklerini seçtiğim numaradan hangisini seçerseniz seçin son seçenek? (Takım Lideri OU). IF beyanlarımın neyin yanlış olduğunu bilen var mı?İfadeler - Powershell

+0

:

function Get-ContactOu { Param( [Parameter(Mandatory=$false, Position=0, ParameterSetName='Admin')] [switch]$Admin, [Parameter(Mandatory=$false, Position=0, ParameterSetName='AssistantOwner')] [switch]$AssistantOwner, [Parameter(Mandatory=$false, Position=0, ParameterSetName='OwnerPartner')] [switch]$OwnerPartner, [Parameter(Mandatory=$false, Position=0, ParameterSetName='Owner')] [switch]$Owner, [Parameter(Mandatory=$false, Position=0, ParameterSetName='TeamLeader')] [switch]$TeamLeader ) $ou = ''; if ($Admin) { $ou = 'Admins' } if ($AssistantOwner) { $ou = 'Assistant Owners' } if ($OwnerPartner) { $ou = 'Owner Partner' } if ($Owner) { $ou = 'Owners' } if ($TeamLeader) { $ou = 'Team Leaders' } $path = 'OU={0},OU=Marketing Companies,OU=Contacts,DC=company,DC=com,DC=au' -f $ou New-ADObject -name $contactname -type Contact -Path $path -OtherAttributes @{displayName=$contactname;mail=$emailaddress;targetAddress=$targetaddress} } 

Artık bir anahtarı ile işlevini kullanabilirsiniz '=', karşılaştırılamayacak bir değer atamaktır. – Martin

cevap

2

Kory Gill zaten eğer tablolar içinde sorunu buldum bakın. Ancak, PowerShell işlev parametrelerini kullanmayı düşünün. Örnek: 2, 3, 4, 5'ten if-tabloların, çünkü sırasında, Aslında, $ ContactType 1 olarak ayarlanır

Get-ContactOu -Admin