2016-03-31 27 views
0

Yönetici olmayan AD Gruplarını almaya çalışıyorum ancak notlar alanında "Onay" var. Aynı veri kümesinde çıktı almak için rapora ihtiyacım var.Powershell Error Handling ve Null sonuçları

Sorun, aşağıdaki betiğin yalnızca Yöneticiler atanmış olan ancak Onay'ın not alanında olduğu null sonuçları olmayan AD Gruplarını döndürmesidir.

akım çıkışı bu

Group Name  Managed By  Managed By Email       
----------  ----------  ----------------       
ADGroup1   ManagerName1 [email protected] 

benziyor ve ben notları alanında Onayı sahip grupları içerecek şekilde raporu istiyorum ve bu rapor ideal şu ​​şekilde görünecektir. Bu, ADGroup2'nin bir yöneticiye sahip olmadığını, ancak notlar alanında Onay'ın olduğunu varsayar.

Group Name  Managed By  Managed By Email       
----------  ----------  ----------------       
ADGroup1   ManagerName1 [email protected] 
ADGroup2 

Komut dosyası, "null" sonuçlarını döndürmez.

Get-ADGroup -Filter 'GroupCategory -eq "Security"' -Properties ManagedBy | where-object {($_.ManagedBy -gt 0 -and $_.ManagedBy -ne $null -and $_.ManagedBy -notlike "*Organization Management*") -or ($_.Notes -like "*Approval*")} | 
ForEach-Object { 
$managedBy = IF([string]::IsNullOrEmpty($_.managedBy)) {""} else {$_.managedBy}; 

$manager = (get-aduser -Identity $managedBy -Properties emailAddress); 
$managerName = $manager.Name; 
$managerEmail = $manager.emailAddress; 

Write-Output $_; } | 
Select-Object @{n='Group Name';e={$_.Name}}, @{n='Managed By';e={$managerName}}, @{n='Managed By Email';e={$managerEmail}} | Sort-Object "Managed By", "Group Name" 

Herhangi bir yardım için teşekkür ederiz.

Teşekkürler!

+1

"Notlar" alanının gerçek adı "bilgi" dir ve siz buna " Get-ADGroup -Properties' –

cevap

1

Active Directory Kullanıcıları ve Bilgisayarları "Notlar" olarak işlenen satırlı alan destek niteliği bir Comment olduğunu - konfüzyon toplam yapmak, söz konusu özelliğin LDAP Görüntü Adı info geçerli: olmanın

$Groups = Get-ADGroup -Filter "GroupCategory -eq 'Security'" -Properties ManagedBy,info 
$ApprovalGroups = $Groups |Where-Object {$_.info -like "*Approval*"} 

O muhtemelen, çoğu koşulların tek bir LDAP arama filtresine dönmeye çalışacağını söyledi:

$Groups = Get-ADGroup -LDAPFilter "(&(info=*Approval*)(managedBy=*)(groupType:1.2.840.113556.1.4.803:=2147483648))" | Where-Object {$_.ManagedBy -notlike "*Organization Management*"} 
+0

Tha Gitmem gereken yere var! – Rob

İlgili konular