none
PowerShell Web Application을 이용해서 Mailbox 생성 RRS feed

답변

  • 안녕하십니까? 김도남 님

    Microsoft TechNet Forum 사이트를 방문해 주셔서 감사합니다.

     

    문의 하신 “PowerShell Web Application을 이용해서 Mailbox 생성에 대한 답변을 드리겠습니다.

     

    Step 1 : Assembly 참조

     

    아래의 경로에 System.Management.Automation을 참조를 합니다.

     

    C:\Program Files\Reference Assemblies\Microsoft\WindowsPowerShell\v1.0\ System.Management.Automation.dll

     

     

    Step 2 : WS MAN 설정

     

    WinRM의 설정을 아래와 같이 변경을 합니다.

     

    Client

     

    WSMan:\localhost\client 의 아이템의 설정을 아래아 같이 설정을 합니다.

     

    AllowUnEncrypted : $true

    TrustedHosts : *

    Auth\Basic : $true

     

    Server

     

    WSMan:\localhost\Service의 아이템의 설정을 아래와 같이 설정을 합니다.

     

    AllowUnEncrypted : $true
    Auth\Basic : $true

     

    Ineternet Information Service Manager Tool에서 PowerShell Web Application Basic 인증방식을 활성화 합니다.

     

     

    Step 3 : Runspace 연결

     

    RunspaceFactory Class를 이용해서 RunsSpace를 생성을 합니다.

    WSManConnectionInfo Instance를 생성해서 Exchange PowerShell Web Application이 설치되어 있는 서버의 정보를 입력을 합니다.

     

    string liveIdconnectionUri2 = "http://192.168.20.34/powershell";

     

    string admin_username = <관리자 계정>;

    string pwd = <관리자 계정 비밀번호>;

     

     

     

    System.Security.SecureString password;

     

    password = new System.Security.SecureString();

    for (int i = 0; i < pwd.Length; i++)

    {

        password.AppendChar(pwd[i]);

    }

    password.MakeReadOnly();

     

    PSCredential credential = new PSCredential(admin_username, password);

     

     

    WSManConnectionInfo connectionInfo2 = new WSManConnectionInfo(new Uri(liveIdconnectionUri2)

        , "http://schemas.microsoft.com/powershell/Microsoft.Exchange", credential);

     

    connectionInfo2.AuthenticationMechanism = AuthenticationMechanism.Basic;

     

     

    _runspace = RunspaceFactory.CreateRunspace(connectionInfo2);

     

    try

    {

        _runspace.Open();

    }

    catch (Exception ex)

    {

        MessageBox.Show(ex.ToString());

    }

     

     

    Step 4 : 메일 박스 생성

     

    Pipeline을 이용해서 Command or Script를 이용해서 Exchange Shell 명령어를 실행할 수 있습니다.  Pipeline Runspace Instance를 이용해서 생성을 합니다.

     

    StringBuilder stringbuild = new StringBuilder();

    Pipeline pipeline = null;

     

    //파이프생성

    pipeline = _runspace.CreatePipeline();

     

    pipeline.Commands.AddScript(Testscript);

     

     

    //파이프 명령 실행

    Collection<PSObject> list = null;

     

    string script1 = @"New-Mailbox -Name TestUser02 -Alias TestUser02 -UserPrincipalName TestUser02@ForumQA.com -SamAccountName TestUser02 -Password (ConvertTo-SecureString 'pa$$w0rd' -asplaintext -force)";

     

    pipeline.Commands.AddScript(script1);

     

    list = pipeline.Invoke();

     

     

    //반환값 추출

    foreach (var psObj in list)

    {

        stringbuild.AppendLine(psObj.ToString());

    }

     

    참고 자료

     

    WSManConnectionInfo Class

    http://msdn.microsoft.com/en-us/library/dd182592(v=VS.85).aspx

     

    Pipeline Class

    http://msdn.microsoft.com/en-us/library/system.management.automation.runspaces.pipeline(v=vs.85).aspx

     

    PSObject Class

    http://msdn.microsoft.com/en-us/library/system.management.automation.psobject(v=vs.85).aspx

     

    제가 문제에 대해 더 알아야 할 것이 있다면 응답 주시면 감사하겠습니다.

    제시해 드린 답변이 도움이 되었기를 바랍니다.

    • 답변으로 표시됨 김도남 2011년 12월 28일 수요일 오전 7:05
    2011년 12월 26일 월요일 오전 8:47
    중재자