ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • AD에 계정 속성 업데이트 하는 파워셸
    IT/Windows 2023. 12. 18. 17:36
    반응형

    # 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 "계정 업데이트가 완료되었습니다."

    반응형
Designed by Tistory.