지난 번 질문에서 언급했듯이 저는 PowerShell을 처음 사용하고 새로운 사용자 생성을위한 약간의 Frankenstein 스크립트를 함께 사용했습니다. new-aduser를 사용하여 사용자를 만드는 데는 문제가 없지만 'new-mailbox'cmdlet을 추가하려고하면 'sytems.collections.hashtable'이 만들어지고 스크립트 오류가 발생합니다. 나는 그것이 해시 테이블을 다루지 않는 mailbox cmdlet과 관련이 있다고 추정한다. 해쉬 테이블을 새로운 메일 박스에 보내고 set-aduser에 파이프를 전달하는 방법이 있는가, 아니면 할 수없는 것을 시도하고 있는가? 내가하려는 일을 성취하기위한 쉬운 방법이 있습니까? 현재 Powershell ISE를 내 Exchange 서버에 pssession과 함께 사용하고 있습니다. 모든 조언/팁/비판을 환영하며 대단히 감사합니다.Hashtable의 새로운 사용자 및 사서함
Function Provision { PROCESS { CreateUser $_ } }
Function ProvisionInputCSV {
Param ([string]$filename)
$users = Import-CSV $filename
foreach ($user in $users) {
$ht = @{'givenName'=$user."First Name";
'sn'= $user."Last Name";
'displayName'= $user."Last Name" + " ," + " " + $user."First Name";
'samAccountName'= $user."Logon Name";
'title'= $user."title";
'description'= $user."Description";
'department'= $user."Department";
'company'= $user."Company";
'password'= ConvertTo-SecureString -AsPlainText $user.Password -force;
'userprincipalname'= $user.userprincipalname;
'employeeid'= $user.employeeid
}
Write-Output $ht
}
}
Function CreateUser { Param($user) New-Mailbox $user -Database "StaffDB1" -alias $user.samaccountname -password $user.password -UserPrincipalName $user.userprincipalname -OrganizationalUnit "ou=users,dc=mydomain,DC=com" -ResetPasswordOnNextLogon $true -DisplayName $user.displayname | Set-Mailbox -CustomAttribute5 "AA" | Set-ADUser -GivenName $user.givenname -Surname $user.surname -DisplayName $user.displayname -EmployeeID $user.employeeid -Description $user.description -Department $user.department -Company $user.company -UserPrincipalName $user.userprincipalname -Enabled $true}
ProvisionInputCSV c:\users\newusers.csv | Provision
감사합니다. Patrick. New-Mailbox의 -Name 속성을 설정하기위한 원래 코드가 있습니다 (원래 $ user 변수를 사용했습니다). 사서함이 만들어지고 사용자 지정 특성이 설정되지만 set-aduser는 건너 뜁니다. 또한 Set-Aduser가 허용하지 않는 생성시에 'EmployeeID'와 같은 광고 속성을 설정할 수 있어야합니다. new-aduser를 새 사서함에 파이프하는 방법이 있는지 알고 있습니까? – xyz1234