2012-04-26 5 views
0

그래서 두 번째로 실행 한 후에 자체 함수를 생성하는 데 문제가 있습니다. 내 사용자 이름과 암호가 맞으면 GetUsers 명령을 처음 생성하고 사용자와 함께 arraylist를 반환합니다. 내가 사용하는 사용자 이름이나 암호가 무엇이든간에 다시 실행하면 동일한 사용자가 반환됩니다. 내 코드가 엉망이라고 확신하지만, 명확하게하기 위해 노력하고있다.Powershell이 ​​지워지지 않는 이유는 무엇입니까?

약간의 배경 지식으로, 나는 초심자 프로그래머라고 생각한다. 그래서 문제는 아주 기본적으로 매우 근사 할 수있다.

감사합니다.

public ArrayList GetUsers(string user, string pass) 
     { 
      InitialSessionState iss = InitialSessionState.CreateDefault(); 

      iss.ImportPSModule(new[] { "MSOnline" }); 
      using (Runspace myRunSpace = RunspaceFactory.CreateRunspace(iss)) 
      { 
       myRunSpace.Open(); 
       using (System.Management.Automation.PowerShell powershell = System.Management.Automation.PowerShell.Create()) 
       { 
        ArrayList available_users = new ArrayList(); 

        //create Powershell runspace 

        powershell.Runspace = myRunSpace; 

        Command connect = new Command("Connect-MsolService"); 
        System.Security.SecureString secureString = new System.Security.SecureString(); 
        string myPassword = pass; 
        foreach (char c in myPassword) 
         secureString.AppendChar(c); 

        connect.Parameters.Add("Credential", new PSCredential(user, secureString)); 
        powershell.Commands.AddCommand(connect); 

        Collection<PSObject> results = null; 
        results = powershell.Invoke(); 
        powershell.Commands.Clear(); 

        Command getuser = new Command("Get-MsolUser"); 
        powershell.Commands.AddCommand(getuser); 
        results = null; 

        powershell.Stop(); 

        results = powershell.Invoke(); 

        foreach (PSObject item in results) 
        { 
         string userprincipalname = item.Properties["UserPrincipalName"].Value as string; 
         available_users.Add(userprincipalname); 
        } 

        powershell.Dispose(); 
        myRunSpace.Dispose(); 

        powershell.Runspace.Dispose(); 
        powershell.Runspace.Close(); 
        myRunSpace.Close(); 
        return available_users; 
       } 
      } 
     } 
+0

그것에 대한 전체 소스 코드와 함께 어떤 최종 해결책? – Kiquenet

답변

0

available_users 유형을 명시 적으로 삭제하거나 null을 시도 했습니까? 나는 그것이 필요하지 않을 것이라고 생각하지만, ...