2017-11-23 9 views
-1

아래 스크립트를 실행하고 템플릿에서 정보를 검색하고 권한을 할당합니다. 여기에 사용자가 배열 입력으로 내 아래의 스크립트 사용자 배열로 처리중인 얻으려면 싶습니다.Powershell Array funnction

$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 쉼표로 구분 이름의 문자열이다 사용자 객체로 변환된다 내 텍스트 입력된다. 배열에 캐스트하면 배열 이름이 아닌 쉼표로 구분 된 이름을 가진 하나의 문자열을 가진 배열을 얻을 수 있습니다. ⇏ [ 'auto', 'auto1' ]

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

[array]$userObj.User

당신이 그것을 분할해야 쉼표로 구분 된 문자열에서 이름의 배열을 가져 오려면 다음을

$userObj.User -split ',' 

은 또한 당신의 for 루프가 고장입니다. 이러한 루프는 다음 구조를 갖는다 :

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

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

하지만 여기서는 어쨌든 for 루프가 필요하지 않습니다. 분할 작업의 결과로 배열의 각 요소에 대해 명령을 실행하려면

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