CSV ファイルから AD に新しいユーザー アカウントを作成するためのスクリプトを作成しましたが、ユーザーのコピー部分に問題があります。すべての新しいユーザーにコピー ユーザーがある場合は機能しますが、コピー ユーザーを指定せずに空白のままにすると、変数の作成に失敗し、前の行のコピー ユーザー変数が使用されます。CSV ファイルでコピー ユーザー セルが入力されている場合にのみ、ユーザーのコピー部分を実行するようにこれを修正する方法はありますか?
$ADUsers = Import-Csv "C:\Bulk Create New Users\New Users.csv"
ForEach ($ADUsers 内の $User)
{
$Server = "ドメインコントローラ"
$FirstName = $User.FirstName
$姓 = $ユーザー.姓
$ExtraCharacter = $User.ExtraCharacter
$Emailサフィックス = $User.Emailサフィックス
$ビジネスユニット = $ユーザー.ビジネスユニット
$JobTitle = $User.JobTitle
$説明 = $ユーザー.説明
$Company = $User.Company
$Office = $User.Office
$OU = $ユーザー.OU
$パスワード = $ユーザー.パスワード
$CopyUser = Get-ADUser -Identity $User.CopyUser -Properties MemberOf
$IntranetGroup = $User.IntranetGroup
$表示名 = $ユーザー.表示名
$ユーザー名 = $User.ユーザー名
$メール = $User.メール
New-ADUser -Server $Server -Name $DisplayName -AccountPassword (ConvertTo-SecureString -AsPlainText $Password -Force) -Company $Company -Description $Description -DisplayName $DisplayName -EmailAddress $Email -Enabled $True -GivenName $FirstName -Office $Office -OtherAttributes @{'extensionAttribute10'=$Email;'mailNickname'=$Username} -Path $OU -SamAccountName $Username -Surname $Surname -Title $JobTitle -UserPrincipalName $Email
Set-ADUser -Server $Server -Identity $Username -Add @{proxyAddresses ="SMTP:" + $Email}
Add-ADPrincipalGroupMembership -Server $Server -Identity $Username -MemberOf "Standard","Member","Groups"
#Copy membership groups from the copy user to the new user & then remove the Equitrac group
$CopyToNewUser = Get-ADUser -Server $Server -Identity $UserName -Properties MemberOf
$CopyUser.MemberOf | Where-Object {$CopyToNewUser.MemberOf -notcontains $_} | Add-ADGroupMember -Server $Server -Members $CopyToNewUser
Remove-ADPrincipalGroupMembership -Server $Server -Identity $UserName -MemberOf "Equitrac Print Users" -Confirm:$False}
答え1
- プロパティが
.CopyUser
空かどうか確認する Get-ADUser
何かが返されたかどうかを確認します$User.CopyUser
$ADUsers = Import-Csv "C:\Bulk Create New Users\New Users.csv"
ForEach ($User in ($ADUsers|Where {$_.CopyUser -ne ''}) ) {
if(!($CopyUser = Get-ADUser -Identity $User.CopyUser -Properties MemberOf)){continue}
...
}