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;
}
}
}
그것에 대한 전체 소스 코드와 함께 어떤 최종 해결책? – Kiquenet