2013-03-28 4 views
1

제공된 매개 변수를 기반으로 Active Directory 사용자를 만드는 함수를 작성했습니다. 사용자가 잘 만듭니다. 그러나 내가 겪고있는 문제는 함수에서 반환 된 데이터입니다. 사용자가 생성되었는지 아닌지에 따라 부울 응답을 반환하기 만하면됩니다. 대신 배열을 다시 전달합니다.함수가 반환 된 데이터 형식

기능의 샘플 :

Function CreateUser() { 
     param([string]$ParentDN, 
      [string]$FirstName, 
      [string]$LastName, 
      [string]$Username, 
      [string]$EmailAddress, 
      [string]$Password); 

     Try { 
     $UserOU = [ADSI] "LDAP://$LDAPServer/$ParentDN"; 
     $NewUser = $UserOU.Create("user","cn=$Username"); 
     $NewUser.Put("sAMAccountName","$Username"); 
     $NewUser.Put("givenName","$FirstName"); 
     $NewUser.Put("sn","$LastName"); 
     $NewUser.Put("UserPrincipalName","[email protected]$NetworkFQDN"); 
     $NewUser.Put("mail","$EmailAddress"); 
     $NewUser.SetInfo(); 

     $NewUser.SetPassword("$Password"); 
     $NewUser.SetInfo(); 

     $flag = $NewUser.userAccountControl.Value -bxor 65536; #Password Never Expires flag 
     $NewUser.userAccountControl = $flag; 
     $NewUser.InvokeSet("AccountDisabled","False") #Enables Account 
     $NewUser.SetInfo(); 

     return $true; 
     } 
     Catch { 
     return $false; 
     } 
    } 

그리고 난 다음 구문을 사용하여 호출 해요 :

$CreateUserResults = CreateUser -FirstName $User_FirstName -LastName $User_LastName -EmailAddress $User_EmailAddress -ParentDN $User_ParentOU -Password $User_Password -Username $User_SamAccountName 

어떤 조언이나 방향을 감상 할 수있다.

감사합니다, 라이언

답변

2

내가 테스트 할 수 있습니다 어디 모르겠지만, 그 setinfo() 방법은 함수에 의해 반환되는 것을 방지하기 위해 $null로 리디렉션해야 할 데이터를 반환하는 의심.

+1

'$ null = $ NewUser.SetInfo();'또는'$ NewUser.SetInfo() | Out-Null' (SetPassword와 같은 다른 호출을 위해 필요할 수도 있음). 그것은 실제로 트릭을해야합니다. – Joost