본문 바로가기
IT/Windows

AD에 계정 속성 업데이트 하는 파워셸

by aner 2023. 12. 18.
반응형

# CSV 파일 경로 지정
$csvPath = "C:\powershell\Job_20231218_setaccount - a.csv"

# CSV 파일 읽기
$users = Import-Csv -Path $csvPath

# Active Directory 모듈 로드
# Import-Module ActiveDirectory

# 각 사용자에 대해 처리
foreach ($user in $users) {
    # CSV 파일에 있는 필드 가져오기
    $SamAccount = $user.MAILNICKNAME  <- 앞은 변수 이름 = 뒤는 호출한 csv 파일 이름과 csv 파일의 컬럼 이름 ->
    $Cn = $user.CN
    $Displayname = $user.DisplayName
    $Mail = $user.mail
    $MailNickName = $user.MAILNICKNAME
    $Department = $user.Department
    $Description = $user.Description
    $PhysicalDeliveryOfficeName = $user.PhysicalDeliveryOfficeName
    $Company = $user.Company
    $Title = $user.Title
    $TelephoneNumber = $user.TelephoneNumber
    $Mobile = $user.Mobile
    $StreetAddress = $user.streetaddress

    # 필드가 비어있으면 강제로 null 처리
    $Department = If ($Department -eq "") { $null } else { $Department }
    $StreetAddress = If ($StreetAddress -eq "") { $null } else { $StreetAddress }
    $Description = If ($Description -eq "") { $null } else { $Description }
    $Mobile = If ($Mobile -eq "") { $null } else { $Mobile }
    $Mail = If ($Mail -eq "") { $null } else { $Mail }
    $Title = If ($Title -eq "") { $null } else { $Title }
    $TelephoneNumber = If ($TelephoneNumber -eq "") { $null } else { $TelephoneNumber }
    $Company = If ($Company -eq "") { $null } else { $Company }
    $PhysicalDeliveryOfficeName = If ($PhysicalDeliveryOfficeName -eq "") { $null } else { $PhysicalDeliveryOfficeName }
    $DisplayName = If ($DisplayName -eq "") { $null } else { $DisplayName }

    # 사용자 계정 업데이트
    Set-ADUser -Identity $SamAccount -Department $Department -StreetAddress $StreetAddress -Description $Description -MobilePhone $Mobile -EmailAddress $Mail -Title $Title -OfficePhone $TelephoneNumber -Company $Company -Office $PhysicalDeliveryOfficeName -DisplayName $Displayname

    # 필요한 경우 다른 속성도 업데이트 가능
    # Set-ADUser -Identity $SamAccount -OtherAttribute $newValue
}

Write-Host "계정 업데이트가 완료되었습니다."

반응형