1

使用 Powershell 的 AD Cmdlet 时,您可以执行以下任一操作来返回 Microsoft.ActiveDirectory.Management.ADUser 类型的对象:

Get-ADUser user
Get-ADUser user -Properties *

但是,第二个将返回一个具有更多属性的对象。

我正在使用 C# 编写自己的 PowerShell Cmdlet,它将返回与此类似的自定义对象。如何将其设置为仅根据参数返回某些属性?

这是一个将返回的示例类。我如何将其设置为有时包含 Suspended bool,有时不包含?例如,只有当我有一个论点 -Suspended

public class User
{
    public string Username { get; set; }
    public string GivenName { get; set; }
    public string FamilyName { get; set; }
    public string Uri { get; set; }
    public bool Suspended { get; set; }

    public GAUser(string username, string givenName,
        string familyName)
    {
        Username = username;
        GivenName = givenName;
        FamilyName = familyName;
    }
}
4

1 回答 1

0

下面是一个使用开关的简短示例:

$scriptBlock = {
 param ([switch]$Suspended)
 $original = New-Object System.Object
 if ($Suspended)
 {
  $original | Add-Member -MemberType NoteProperty -Name Suspended -Value $true
 }
 Write-Output $original
}

如果您使用 Suspended 开关调用脚本块,则 $new 将具有以下属性:

$new = & $scriptBlock -Suspended

如果您在没有 Suspended 开关的情况下调用脚本块,则 $new 将不具有以下属性:

$new = & $scriptBlock
于 2012-11-02T23:15:37.437 回答