我已使用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"," - ")
的命令。我不知道如何使用它来实现我的目标。
答案 0 :(得分:2)
使用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
,因为它不是默认返回的属性。
答案 1 :(得分:2)
您可以执行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
}