powershell을 사용하여 AD 사용자를 이동할 수 있다는 것을 알고 있습니다. 내가 성취하고자하는 것은 그들의 묘사를 토대로 많은 사람들을 움직이는 것이다. 나는 csv 파일을 가지고 있고 그 csv에서 졸업 칼럼의 해입니다. 2016 년부터 2022 년까지 YOG가있는 모든 사용자가 고등학교 OU로 이전되기를 바랍니다.powershell을 사용하여 AD 사용자 이동
아직 코드를 작성하지 않았습니다. 필자는 부서에 기반한 설명을 기반으로 사용자 계정을 포착하는 데 성공했습니다. 다음은 동일한 데이터입니다.
"ID","FNAME","LNAME","BDATE","GRD","SCHID"
"111111","TEst","student1","19980601","2016","1480"
"222222","test","Student2","19980522","2017","1480"
"333333","test","Student3","19970813","2025","1479"
나는 csv 파일에 학교 코드를 추가했습니다. 이 파일을 기반으로 정확한 ou로 학생들을 이동시키는 것이 훨씬 쉬울 것이라고 생각합니다. 1480은 elem, 1479 hs입니다. 또한 여기에 광고 계정을 만드는 데 사용하는 코드입니다.
다음 GRD 필드가 ID 필드를 사용하여 계정을 이동 한 후 범위 2016에서 2022 사이에 있고 경우# Import active directory module for running AD cmdlets
Import-Module activedirectory
#Store the data from ADUsers.csv in the $ADUsers variable
$ADUsers = Import-csv userimport.csv
#Store report in log file in the $log variable
$log = "log.txt"
#Loop through each row containing user details in the CSV file
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
#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=users,ou=hs,dc=clasd,dc=net" `
-AccountPassword (convertto-securestring $Password -AsPlainText -Force) `
-ChangePasswordAtLogon $true
# Add User to Groups
#Add-ADPrincipalGroupMembership -Identity $Username -MemberOf "Elem","Elem Students"
Start-Sleep 3
# Move Users to appropiate OU based on School Code
$usr = import-csv userimport.csv
foreach ($User in $usr) {
if ($user.grd -in 2016){
Get-ADUser $User.ID | Move-ADObject -TargetPath 'OU=users,ou=hs,dc=clasd,dc=net'
}
}
}
}
안녕하세요, 작성하려고 시도한 코드와 샘플 CSV 파일을 제공해주십시오. – sodawillow
나는 같은 이름의 학생들을 걱정하지 않는다. 그들이 동일한 이름을 가지고 있다면 나는 그들의 로그인 계정에 사용하는 ID 번호를 보게됩니다. 모든 사용자 이름은 ID 번호입니다. 나는 학생들을 올바른 OU로 만들면서 학생들을 옮기고 싶습니다. –
광고 사용자 이름은 어떤 형식입니까? CSV의 데이터와 어떻게 대응합니까? YOG가 이미 AD 속성에 저장되어 있습니까? –