2012-11-02 124 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

相關問題