iT邦幫忙

0

active direvtory使用powaershell透過CSV修改大量使用者電話的問題

  • 分享至 

  • xImage

我的CSV檔案內容如圖片
https://ithelp.ithome.com.tw/upload/images/20241108/20153569mAR29Dgcyz.png
指令內容
PS C:\Windows\system32> Import-CSV "C:\temp\usersPhoneNumbers.csv" | foreach {Set-ADUser -Identity $.SAMAccountName -te
lephoneNumber $
.telephoneNumber}

錯誤訊息
Set-ADUser : 無法驗證 'Identity' 參數上的引數。引數為 Null。請為引數提供一個有效值,然後嘗試重新執行該命令。
位於 線路:1 字元:76

  • ... umbers.csv" | foreach {Set-ADUser -Identity $_.SAMAccountName -teleph ...
  •                                             ~~~~~~~~~~~~~~~~~
    
    • CategoryInfo : InvalidData: (:) [Set-ADUser],ParameterBindingValidationException
    • FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.SetADUser

Set-ADUser : 無法驗證 'Identity' 參數上的引數。引數為 Null。請為引數提供一個有效值,然後嘗試重新執行該命令。
位於 線路:1 字元:76

  • ... umbers.csv" | foreach {Set-ADUser -Identity $_.SAMAccountName -teleph ...
  •                                             ~~~~~~~~~~~~~~~~~
    
    • CategoryInfo : InvalidData: (:) [Set-ADUser],ParameterBindingValidationException
    • FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.SetADUser

Set-ADUser : 無法驗證 'Identity' 參數上的引數。引數為 Null。請為引數提供一個有效值,然後嘗試重新執行該命令。
位於 線路:1 字元:76

  • ... umbers.csv" | foreach {Set-ADUser -Identity $_.SAMAccountName -teleph ...
  •                                             ~~~~~~~~~~~~~~~~~
    
    • CategoryInfo : InvalidData: (:) [Set-ADUser],ParameterBindingValidationException
    • FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.SetADUser

不確定Identity這要輸入什麼資訊
請各位大神指教

看更多先前的討論...收起先前的討論...
阿摔 iT邦新手 3 級 ‧ 2024-11-08 17:16:59 檢舉
看了一下語法感覺應該是前面宣告有問題抓不到檔案內容 或者說無法代入資訊所以出現錯誤
阿摔 iT邦新手 3 級 ‧ 2024-11-08 17:21:06 檢舉
不對 你CSV檔案要用,隔開
SAMAccountName,telephoneNumber
語法有點問題,參考一下這邊的說明
https://community.spiceworks.com/t/set-aduser-replace-error/822097
Set-ADUser -Identity 這裡是指 AD USER 資料庫上的欄位名稱,後面上對應的CSV資料欄位
edan_liu iT邦新手 5 級 ‧ 2024-11-14 10:18:04 檢舉
感謝各位大神指教
問題已解決
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
阿摔
iT邦新手 3 級 ‧ 2024-11-08 17:08:59

要使用 Active Directory (AD) PowerShell 從 CSV 檔案批量更新使用者的電話號碼,可以遵循以下步驟。假設 CSV 檔案包含兩欄:使用者名稱(或其他識別屬性)和新的電話號碼。
幫你問了GPT

  1. 準備 CSV 檔案
    確保 CSV 檔案格式如下:
    Username,PhoneNumber
    jdoe,123-456-7890
    asmith,987-654-3210

Username:使用者名稱或其他可唯一識別使用者的屬性(如使用者的 sAMAccountName 或 UserPrincipalName)。
PhoneNumber:要更新的電話號碼。
2. 使用 PowerShell 腳本更新電話號碼
可以使用以下 PowerShell 腳本來讀取 CSV 檔案並批量更新 AD 使用者的電話號碼屬性。

PowerShell 腳本
powershell
複製程式碼

# 匯入 Active Directory 模組
Import-Module ActiveDirectory

# 定義 CSV 檔案的路徑
$csvPath = "C:\path\to\your\file.csv"

# 讀取 CSV 檔案
$users = Import-Csv -Path $csvPath

# 遍歷每個使用者並更新電話號碼
foreach ($user in $users) {
    # 使用者名稱 (從 CSV 讀取)
    $username = $user.Username
    # 新的電話號碼
    $phoneNumber = $user.PhoneNumber
    
    # 更新使用者的電話屬性
    try {
        # 根據 sAMAccountName 找到使用者並更新
        Set-ADUser -Identity $username -OfficePhone $phoneNumber
        Write-Host "成功更新 $username 的電話號碼為 $phoneNumber"
    }
    catch {
        Write-Host "更新 $username 的電話號碼失敗: $_"
    }
}
  1. 執行腳本
    確保您有適當的權限來更新 AD 中的使用者屬性。然後在 PowerShell 管理員模式中執行此腳本。

說明
Set-ADUser:用來修改 Active Directory 中的使用者屬性。
-Identity:識別使用者的屬性(此範例中使用 sAMAccountName)。
-OfficePhone:指定使用者的「辦公室電話」屬性(即電話號碼)。
注意事項
權限:執行此腳本的帳戶必須具有修改使用者屬性的權限。
備份:建議在進行批量更新前,先備份 AD 中的數據。
測試:先對少量使用者進行測試,確認更新結果正確無誤。

我要發表回答

立即登入回答