使用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;
}
}
答案 0 :(得分: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开关调用scriptblock,$ new将具有属性:
$new = & $scriptBlock -Suspended
如果您在没有Suspended开关的情况下调用scriptblock,则$ new将不具有该属性:
$new = & $scriptBlock