Arrays Powershell阵列功能

Arrays Powershell阵列功能,arrays,powershell-3.0,Arrays,Powershell 3.0,我在脚本下面运行,从模板中检索信息并分配权限。在这里,我想将用户作为数组输入。我下面的脚本没有将用户作为数组处理 $userObj = [PSCustomObject]((Get-Content -Raw C:\txt\sample.txt) -replace ':','=' | ConvertFrom-StringData) [array]$userObj.User for ($i[0]; $userObj.user; $i++) { Add-MailboxPermission -

我在脚本下面运行,从模板中检索信息并分配权限。在这里,我想将用户作为数组输入。我下面的脚本没有将用户作为数组处理

$userObj = [PSCustomObject]((Get-Content -Raw C:\txt\sample.txt) -replace ':','=' | ConvertFrom-StringData)

[array]$userObj.User

for ($i[0]; $userObj.user; $i++) {
    Add-MailboxPermission -Identity $userObj.Identity -User $userObj.User -AccessRights FullAccess -InheritanceType All -confirm:$false
}
这是我的文本输入,它被转换为自定义对象


$userObj.User
是一个名称以逗号分隔的字符串。将其转换为数组只会得到一个带有逗号分隔名称的字符串的数组,而不是一个名称数组

[array]$userObj.User
⇒ <代码>['自动,自动1']
[array]$userObj.User
&nrArr<代码>[‘自动’、‘自动1’]

要从逗号分隔的字符串中获取名称数组,需要将其拆分:

$userObj.User -split ','
此外,您的
for
循环已中断。这些循环具有以下结构:

for (loop variable initialization; condition; loop variable incrementation)
e、 g

但无论如何,您可能不需要为循环使用
。如果要对分割操作产生的数组的每个元素运行命令,请改用
ForEach对象

$userObj.User -split ',' | ForEach-Object {
    Add-MailboxPermission -Identity $userObj.Identity -User $_ ...
}

为什么要讨论图像?这是记事本格式,将作为自定义ps对象读取和转换。
$userObj.User -split ',' | ForEach-Object {
    Add-MailboxPermission -Identity $userObj.Identity -User $_ ...
}