2014-09-24 64 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