如何使用选择性属性创建对象



使用PowerShell的AD cmdlet时,您可以执行以下任一项返回类型Microsoft.Activedirectory.Management.Aduser的对象:

Get-ADUser user
Get-ADUser user -Properties *

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

我正在使用C#中的powershell cmdlet,这将返回与此相似的自定义对象。如何将其设置为仅根据参数返回某些属性?

这是将返回的示例类。我将如何将其设置为有时包括悬浮的布尔,有时不包括?例如,只有当我有一个参数-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;
    }
}

这是使用开关的简短示例:

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

如果您使用悬挂开关调用ScriptBlock,则$ new将具有属性:

$new = & $scriptBlock -Suspended

如果您在没有悬挂开关的情况下调用ScriptBlock,则$ new将没有属性:

$new = & $scriptBlock

最新更新