4

Exchange 2010 メールボックスをサーバー上のファイルの場所に .pst 形式で移行するための ac# Windows フォーム アプリを作成しています。Powershell SDK (Runspace05) の例を使用して、Exchange コマンドレット (Get-Mailbox) にアクセスし、コンボ ボックスにユーザーのメールボックスを問題なく入力しました。

私が問題を抱えている部分は、New-MailboxExportRequest コマンドレット (エクスポートを実行するコマンドレット) を実行することと、そのオブジェクトを返してリストボックス コントロールに表示する機能です。私は何が欠けていますか?よろしくお願いします。

コード:

InitialSessionState iss = InitialSessionState.CreateDefault();
        PSSnapInException warning;
        iss.ImportPSSnapIn("Microsoft.Exchange.Management.PowerShell.E2010", out warning);
        using (Runspace myrunspace = RunspaceFactory.CreateRunspace(iss))
        {
            myrunspace.Open();
            using (PowerShell powershell = PowerShell.Create())
            {
                var mailbox = cmbEmailUserName.Text;
                var pstFile = txtFileSaveLocation.Text;
                const int badLimit = 100; //can be increased in necessary

                powershell.AddCommand("Microsoft.Exchange.Management.PowerShell.E2010\\New-MailboxExportRequest");
                powershell.AddParameter("Mailbox", mailbox);
                powershell.AddParameter("FilePath", pstFile);

                powershell.Runspace = myrunspace;                 
                Collection<PSObject> results = powershell.Invoke();

                foreach (PSObject thisResult in results)
                        {
                            lstBoxStatus.Items.Add(thisResult);
                        }
        myrunspace.Close();

            }
        }
4

1 に答える 1

1

PSObjectオブジェクト自体ではなく、のプロパティにアクセスしたい。

これを試して:

foreach (PSObject thisResult in results)
{
    foreach (PSPropertyInfo thisResultInfo in thisResult.Properties)
    {
        lstBoxStatus.Items.Add("Name: {0} Value: {1} Type: {2}", thisResultInfo.Name, thisResultInfo.Value, thisResultInfo.MemberType);
    }
}
于 2013-08-27T18:06:55.653 に答える