2017-11-23 3 views
-1

私は以下のスクリプトを実行しており、テンプレートから情報を取得し、許可を割り当てています。ここで私は配列の入力として私の下のスクリプトは、配列としてユーザーを処理していないユーザーを取得したいと思います。Powershell配列の募集

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

はここ

enter image description here

+0

なぜこの画像は問題になりますか? – Abhijeetk431

+0

これは、カスタムpsオブジェクトとして読み込まれて変換されるノートパッド形式です。 –

答えて

0

$userObj.Userは、カンマで区切られた名前の文字列であるカスタムオブジェクトとして変換され、私のテキスト入力です。それを配列にキャストすると、名前の配列ではなく、カンマで区切られた名前を持つ1つの文字列を持つ配列が得られます。

[array]$userObj.User[ 'auto,auto1' ]
[array]$userObj.User[ 'auto', 'auto1' ]

あなたはそれを分割する必要がカンマで区切られた文字列から名前の配列を取得するには:また

$userObj.User -split ',' 

、あなたのforループが壊れています。これらのループは、以下の構造を有する。

for (loop variable initialization; condition; loop variable incrementation) 

例えば、

for ($i=0; $i -lt 10; $i++) 

しかし、とにかくforループは必要ありません。分割操作の結果配列の各要素に対してコマンドを実行する場合は、代わりにForEach-Objectを使用してください。

$userObj.User -split ',' | ForEach-Object { 
    Add-MailboxPermission -Identity $userObj.Identity -User $_ ... 
} 
関連する問題