[英]How to Replace Description Text for All Users in an Organizational Unit using Powershell
我已經使用CSV文件向Active Directory添加了大約1700多個用戶。 我不小心嘗試使用\\n
分隔它們之間的某些屬性。 但是它並沒有逃脫換行。 而是按原樣鍵入它。
$Users = Import-Csv -Path "C:\UsersList.csv"
foreach ($User in $Users)
{
$Name = $User.Name
$AccountPassword = $User.AccountPassword
$City = $User.City
$Company = $User.Company
$GivenName = $User.GivenName
$SamAccountName = $User.SamAccountName
$Surname = $User.Surname
$UserPrincipalName = $User.UPN
$Displayname = $User.Name
$Description = "Desc1: " + $User.Desc1 + "\nDesc2: " + $User.Desc2 + "\nDesc3: " + $User.Desc3 + "\nDesc4: " + $User.Desc4
$Path = $User.Path
New-ADUser -Name "$Name" -DisplayName "$Displayname" -SamAccountName "$SamAccountName" -UserPrincipalName "$UserPrincipalName" -GivenName "$GivenName" -Surname "$Surname" -Description "$Description" -AccountPassword (ConvertTo-SecureString $AccountPassword -AsPlainText -Force) -Enabled $true -Path "$Path" -ChangePasswordAtLogon $true
}
現在,我想為所有用戶更改“說明”中的那些“ \\ n”。
我可以讓用戶使用
Get-ADUser -Filter {description -like "\n"}
我需要一個使用.Replace("\\n"," - ")
。 我不知道如何使用它來達到我的目標。
使用Set-ADUser
:
Get-ADUser -Filter {description -like "*\n*"} -Properties Description |
ForEach-Object {
$newDescription = $_.Description.Replace('\n', ' - ')
Set-ADUser -Identity $_ -Description $newDescription
}
請注意,使用-like
運算符,您需要在\\n
之前和之后添加通配符,否則,您只會獲得描述僅由\\n
且沒有其他內容的用戶。 您還需要告訴Get-ADUser
包括屬性Description
因為它不在默認返回的屬性之列。
您可以執行Foreach-Object循環以查找帶有過濾器的所有描述,並將其通過管道傳遞給Set-Aduser。
$Description = "-Desc1: " + $User.Desc1 + "-Desc2: " + $User.Desc2 + "-Desc3: " + $User.Desc3 + "-Desc4: " + $User.Desc4
foreach ($User in (Get-ADUser -Filter {description -like "*\n*"}) )
{
$User.SamAccountName | Set-ADUser -Description $Description
}
foreach ($User in $users )
{
$User.SamAccountName | Set-ADUser -Description $user.Description
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.