将System.String转换为MultiValuedProperty

时间:2016-02-08 16:39:50

标签: powershell

我正在尝试创建一个用户执行脚本来提示用户并使用变量将它们提供给另一个命令。 像这样:

$owners  = Read-Host
$members = Read-Host

New-DistributionGroup -Name test -ManagedBy $owners -Members $members

问题是Read-Host提供了System.String的类型名称,而-ManagedBy-Members开关需要MultiValuedProperty。 我已尝试将System.String导出为CSV,但即使它们用逗号分隔,也不会分解多个值。

我知道如果我只填充CSV并进行导入它会起作用,但我将此脚本分发给分支机构,我需要它们尽可能少的步骤。

2 个答案:

答案 0 :(得分:1)

因此,如果他们提供的字符串是逗号分隔的字符串,您可以执行类似的操作。

$owners = (Read-host).Split(',')

会员大致相同......

答案 1 :(得分:1)

"多值财产"只是意味着您可以提供多个值(即数组)作为参数的参数。如果您的用户输入类似

的内容
alice@example.com,bob@example.com,charlie@example.com

你需要拆分(逗号分隔的)字符串以获得一个实际的数组:

$owners  = $owners -split ' *, *'
$members = $members -split ' *, *'

表达式*, *还将处理用户在分隔逗号之前和/或之后可能放置的空格。