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 $_ ...
}