2016-11-15 2 views
0

사용자 만들기 스크립트의 일부로 회사를 기반으로 두 개의 AD 보안 그룹에 사용자를 추가하고 있습니다. 사용자가 그룹에 추가되고 있지만 경고 메시지가 나타납니다. 사용자가 올바르게 추가 될 때 경고 메시지가 표시되는 이유에 대해 혼란스러워합니다.그룹에 새 aduser를 추가 할 때 경고

경고 : ADGroup에 'CN = HS, CN = Users, DC = MY, DC = DOMAIN'을 (를) 추가 할 수 없습니다. 오류 : '지정된 계정 이름이 이미 그룹의 회원입니다'.

경고 : 'CN = HS Students, CN = Users, DC = My, DC = DOMAIN'을 (를) ADGroup에 추가 할 수 없습니다. 오류 : '지정된 계정 이름이 이미 그룹의 회원입니다'. 여기

내 생성 사용자 스크립트입니다

그래서
foreach ($User in $ADUsers) 
{ 
#Read user data from each field in each row and assign the data to a variable as below 

$Username = $User.ID 
$Password = $User.BDATE 
$Firstname = $User.FNAME 
$Lastname = $User.LNAME 
$Department = $User.GRD 
$Company = $User.SCHID #This field refers to the OU the user account is to be moved to 

# Choose OU 
Switch ($Company) 
{ 
    "1480" {$OU = 'OU=students,OU=users,ou=hs,dc=clasd,dc=net'} 
    "1479" {$OU = 'OU=students,OU=users,ou=elem,dc=clasd,dc=net'} 
} 

#Check to see if the user already exists in AD 
if (Get-ADUser -F {SamAccountName -eq $Username}) 
{ 
    #If user does exist, give a warning 
    Write-Warning "A user account with username $Username already exist in Active Directory." 
} 
else 
{ 
    #User does not exist then proceed to create the new user account 
    "Processing started (on " + $date + "): " | Out-File $log -append 
    "--------------------------------------------" | Out-File $log -append 

    #Account will be created in the OU provided by the $OU variable read from the CSV file 
    New-ADUser ` 
     -SamAccountName $Username ` 
     -UserPrincipalName "[email protected]" ` 
     -Name "$Firstname $Lastname" ` 
     -GivenName $Firstname ` 
     -Department "$Department" ` 
     -Company "$Company" ` 
     -EmailAddress "[email protected]" ` 
     -Surname $Lastname ` 
     -Enabled $True ` 
     -Scriptpath "login.vbs" ` 
     -DisplayName "$Firstname $Lastname" ` 
     -Path $OU ` 
     -AccountPassword (convertto-securestring $Password -AsPlainText -Force) ` 
     -ChangePasswordAtLogon $true 

    #Start-Sleep 5 

    # Add User to Groups 
    Get-Aduser -filter 'company -eq "1480"' | %{Add-ADPrincipalGroupMembership -Identity $_.SamAccountName -MemberOf "HS", "HS Students"} 

} 
} 

답변

0

사용자가 말하는대로 사용자가 "올바르게 추가되지 않았습니다."

경고는 단지 수행하려는 작업이 이미 완료 되었기 때문에 명령이 기능을 완료하지 못했다는 것을 알려주는 것입니다.

편집 :

Get-Aduser -filter 'company -eq "1480"' | %{Add-ADPrincipalGroupMembership -Identity $_.SamAccountName -MemberOf "HS", "HS Students" -WarningAction SilentlyContinue} 
Get-Aduser -filter 'company -eq "1479"' | %{Add-ADPrincipalGroupMembership -Identity $_.SamAccountName -MemberOf "Elem", "Elem Students" -WarningAction SilentlyContinue} 

이 두 명령은 또한 끝으로 이동해야합니다 : 당신이 그것을 표시하지 않은 경우에는 노란색 경고 텍스트를 억제하기 위해이 SilentlyContinue에 WarningAction 매개 변수를 설정할 수 있습니다 스크립트의 - 그래서 그들은 foreach 루프 외부에 있습니다. 이것은 모든 새 계정이 생성 된 후에 만 ​​한 번 실행된다는 것을 의미합니다.

+0

회사가 1480 인 모든 사용자를 hs 및 hs 학생에 추가하고 해당 회사가 elem 및 elem 학생에게 1479 인 모든 사용자를 추가하려고합니다. –

+0

WarningAction 매개 변수의 업데이트를 참조하십시오. –

1

, 왜 당신이 얻을-aduser을하고, 당신이 회사가 1480로 설정 한 모든 사용자를 얻고있다? 당신은 같은 것을 할 필요가있을 것이다 : 그래, 당신이 필요로하는 모든 값으로 해시 테이블을 생성하고 새로운 aduser 명령에 스플래 고려합니다

New-ADUser @args -PassThru | 
    ForEach-Object { Add-ADPrincipalGroupMembership -Identity $_.SamAccountName -MemberOf "HS", "HS Students" } 

을 많이 clearner 보이는 그래서 같은 :

$args = @{ 
    DisplayName = $_.DisplayName 
    GivenName = $_.GivenName 
    Surname = $_.sn 
    SamAccountName = $_.SamAccountName 
    UserPrincipalName = $($_.SamAccountName + "@xxx.xxx") 
    Department = $_.Department 
    Title = $_.Title 
    City = $_.City 
    Office = $_.Office 
    MobilePhone = $_.MobilePhone 
    OfficePhone = $_.telephoneNumber 
    Name = $_.DisplayName 
    Company = "xxx" 
    Path = $path 
    State = $region 
} 
New-ADUser @args -PassThru 
+0

해시 테이블을 사용하는 것이 좋습니다. 하지만 내 방식대로 작동하지? 또는 해시 테이블을 사용하는 가장 좋은 방법은 무엇입니까? –

+0

아니, 문제가되지 않습니다, 당신의 방법은 잘 작동, 그냥 해시 테이블 방식으로 볼 수 있습니다. – 4c74356b41

관련 문제