2014-09-24 67 views
0

我想靚起來我的代碼一點點(並因此學習一些東西)PowerShell的數組或對象

我有一個非常簡單的問題,我想用一個foreach循環來解決

,但我不知道有足夠的瞭解PowerShell的沒有正確地執行它

我有這樣的文字

$gr0 = get-adgroup -Properties * -Filter "(Name -eq 'Division 0')" -SearchBase "OU=Groups,DC=solutions,DC=local"; 
$gr1 = get-adgroup -Properties * -Filter "(Name -eq 'Division 1')" -SearchBase "OU=Groups,DC=solutions,DC=local"; 
$gr2 = get-adgroup -Properties * -Filter "(Name -eq 'Division 2')" -SearchBase "OU=Groups,DC=solutions,DC=local"; 

我然後繼續運行在各組的結果W A環第i個相同的代碼

什麼,我試圖做的是

$組[] = $ GR0 $ GR1 GR2 $

的foreach(在組羣){做某事;}

但我似乎可以找到任何很好的例子

任何幫助都將是巨大的

感謝

回答

1

您是否在Powershell中尋找foreach的語法?這裏有一個例子:

foreach ($group in $groups) { 
    do something; 
} 

編輯:這裏是執行在一個循環的動作方式:

$groups = @(); 
for($i=0; $i<=2; $i++) { 
    $groups += get-adgroup -Properties * -Filter "(Name -eq 'Division $i')" -SearchBase "OU=Groups,DC=solutions,DC=local"; 
} 

參考:

+0

其實我在尋找如何加載陣列正確的,所以foreach將步驟到每一個 – Crash893 2014-09-24 14:58:55

+0

@ Crash893:檢查我的編輯。 – Neolisk 2014-09-24 15:04:46

1

我想你正在尋找你的分組導致這樣在一起

$groups = @(); 
$groups += $gr0 
$groups += $gr1 
$groups += $gr2 

你最有可能有其他原因做你做的方式,但你也可以在一個對象更新-Filter所以這一切的回報。

$groups = get-adgroup -Properties * -Filter "(Name -like 'Division*')" -SearchBase "OU=Groups,DC=solutions,DC=local" | Where-Object{$_.Name -match "Division [012]"} 

-Filter不支持匹配運算符。因此,抓住所有以「Division」開頭的數據,並將它們輸入Where-Object,以獲得僅爲Division 0,1,2的數據。根據您的需要,您可以完全省略Where子句。

1

也許這樣?

foreach ($groupname in 'Division 0','Division 1','Division 2') 
{ 
    $grp = get-adgroup -Properties * -Filter "Name -eq '$groupname'" -SearchBase "OU=Groups,DC=solutions,DC=local" 
    do stuff with $grp 
} 

馬特:

$groupnames = 'Division 0','Division 1','Division 2' 
$NameFilters = $groupnames -replace '^','(Name=' -replace '$',')' 
$Filter = "'(|$NameFilters)'" 

foreach ($grp in get-adgroup -Properties * -LDAPFilter $filter -SearchBase "OU=Groups,DC=solutions,DC=local") 
{ 
    do something with $grp... 
    } 

$過濾器將每個組名的LDAP或運算過濾器:

'(|(Name=Division 0) (Name=Division 1) (Name=Division 2))' 
+0

我正要用這個編輯我的帖子。我會認爲單個過濾器會更好。但是,如果兩組之間沒有關係,這會更好。 – Matt 2014-09-24 15:33:44

+0

留下了一個從任意名稱集合創建過濾器的示例。 – mjolinor 2014-09-24 15:54:54