PowerShell循环使用输入变量

时间:2012-12-17 17:56:26

标签: loops powershell exchange-server

首先,对于一般的PowerShell /编码,我是一个完全白痴,所以如果这是一个过于简单的问题,我会道歉。

我有一个脚本,我用来通过PowerShell创建分发列表:

param($name,$user=$(throw "You must specify the name of the group"))
New-DistributionGroup -Name $name -OrganizationalUnit "XXX.com/Distribution Lists"
Add-DistributionGroupMember -Identity "$name" -Member "$user"

第一个变量$ name是组的名称,第二个$ user是要添加到组中的用户的名称。

理想情况下,我想循环添加用户,以便有人可以使用./script GROUPNAME User1 User2 User3 User4 User5唤起脚本。

任何人都可以提出任何见解或指出我正确的方向吗?

3 个答案:

答案 0 :(得分:1)

您可以将$user或更确切地说$users视为数组:

$users | %{ Add-DistributionGroupMember -Identity "$name" -Member $_ }

(可能有更好的方法可以添加多个用户,但上面的内容可以帮助您入门。)

脚本可以像:

一样调用
.\script GROUPNAME User1,User2,User3

答案 1 :(得分:1)

尝试这样的事情:

-- script --
param($name, [string[]]$users=$(throw "You must specify the name of the user(s)"))

New-DistributionGroup -Name $name -OrganizationalUnit "XXX.com/Distribution Lists" 
foreach($user in $users)
{
    Add-DistributionGroupMember -Identity $name -Member $user
} 

答案 2 :(得分:1)

您可以更改Name参数的类型以接受多个名称,并将其传递给Add-DistributionGroupMember cmdlet:

param($name, [string[]]$users=$(throw "You must specify the name of the user(s)"))

$dg = New-DistributionGroup -Name $name -OrganizationalUnit "XXX.com/Distribution Lists" 
$users | Add-DistributionGroupMember -Identity $dg