使用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