2012-11-02 84 views
1

当使用PowerShell的AD cmdlet,您可以执行下列操作返回类型Microsoft.ActiveDirectory.Management.ADUser的对象:如何创建具有选择性属性的对象?

Get-ADUser user 
Get-ADUser user -Properties * 

然而,第二个将返回一个对象,具有更多的特性。

我工作在C#我自己的PowerShell命令将被返回自定义对象,与此类似。我如何设置它只返回基于参数的特定属性?

下面是这将返回一个示例类。我将如何设置它,有时包括暂停布尔,有时不包括?例如,只有当我有-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

下面是使用一个开关的一个简单的例子:

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

如果调用与挂起的开关脚本块,$新将有属性:

$new = & $scriptBlock -Suspended 

如果调用没有暂停开关的脚本块,$新的不具有这样的性质:

$new = & $scriptBlock 
+0

我明白你说什么,我现在在我的代码使用交换机,但我希望从一个C#的角度来看这样做。我有交换机工作,并且我建立了类。我只是不知道如何去处理你在C#中所说的话。 – squid808

相关问题