2

交換コマンドレットを実行する次のコードがありますが、結果が返されると、次のような値が返されます。

Microsoft.Exchange.Management.RecipientTasks.MailboxAcePresentationObject

オブジェクト自体ではなく、このオブジェクトのテキスト値を取得するにはどうすればよいですか?

これは、値を取得するために使用しているコードです。

 powershell.Runspace = runspace;

    powershell = PowerShell.Create();
    PSCommand command = new PSCommand();
    command.AddCommand("Get-MailboxPermission");
    command.AddParameter("Identity", "myname");
    powershell.Commands = command;
    powershell.Runspace = runspace;
      Collection<PSObject> result = powershell.Invoke();


    StringBuilder sb = new StringBuilder();

    foreach (PSObject ps in result)
    {

        sb.AppendLine(ps.ToString());

    }

    sb.AppendLine();

    lbl.Text += sb.ToString();
4

1 に答える 1

1

文字列表現をどうしたいですか? ToString はクラス名を提供しています (これはオブジェクトのデフォルトの動作です)

クラス定義を見て、表示したいものを把握できます。

Exchange シェルのように表示したい場合は、そのビューが exchange.format.ps1xml でどのように定義されているかを確認できます。これは、Identity、User、AccessRights、IsInherited のプロパティが表示されていることを示しているように見えるファイルの抜粋です。 、および拒否します。

または、パイプラインを変更して out-string (または format-table など) を実行することもできます。これにより、PowerShell を終了する前に目的の文字列としてフォーマットされます。

    <View>
        <Name>Microsoft.Exchange.Management.RecipientTasks.MailboxAcePresentationObject</Name>
        <ViewSelectedBy>
            <TypeName>Microsoft.Exchange.Management.RecipientTasks.MailboxAcePresentationObject</TypeName>
        </ViewSelectedBy>
        <TableControl>
            <TableHeaders>
                <TableColumnHeader>
                    <Label>Identity</Label>
                    <Width>20</Width>
                </TableColumnHeader>
                <TableColumnHeader>
                    <Label>User</Label>
                    <Width>20</Width>
                </TableColumnHeader>
                <TableColumnHeader>
                    <Label>AccessRights</Label>
                </TableColumnHeader>
                <TableColumnHeader>
                    <Label>IsInherited</Label>
        <Width>11</Width>
                </TableColumnHeader>
                <TableColumnHeader>
                    <Label>Deny</Label>
                    <Width>5</Width>
                </TableColumnHeader>
            </TableHeaders>
            <TableRowEntries>
                <TableRowEntry>
                    <TableColumnItems>
                        <TableColumnItem>
                            <PropertyName>Identity</PropertyName>
                        </TableColumnItem>
                        <TableColumnItem>
                            <PropertyName>User</PropertyName>
                        </TableColumnItem>
                        <TableColumnItem>
                            <PropertyName>AccessRights</PropertyName>
                        </TableColumnItem>
                        <TableColumnItem>
                            <PropertyName>IsInherited</PropertyName>
                        </TableColumnItem>
                        <TableColumnItem>
                            <PropertyName>Deny</PropertyName>
                        </TableColumnItem>
                    </TableColumnItems>
                </TableRowEntry>
            </TableRowEntries>
        </TableControl>
    </View>
于 2012-05-13T03:29:09.537 に答える