首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Powershell替换组织单位中所有用户的描述文本

如何使用Powershell替换组织单位中所有用户的描述文本
EN

Stack Overflow用户
提问于 2016-03-23 13:41:23
回答 2查看 1.6K关注 0票数 1

我使用CSV文件将关于1700+用户的信息添加到中。我无意中试图使用\n来区分它们之间的一些属性。但它并没有逃脱新的防线。而是按原样键入。

代码语言:javascript
复制
$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“。

我可以让用户使用

代码语言:javascript
复制
Get-ADUser -Filter {description -like "\n"}

我需要一个使用.Replace("\n"," - ")的命令。我不知道如何用它来达到我的目标。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-23 14:22:23

您可以执行Foreach-Object循环,用过滤器和管道查找所有要设置-Aduser的描述。

代码语言:javascript
复制
         $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
        }

更新CSV中的用户

代码语言:javascript
复制
            foreach ($User in $users )
            {
                $User.SamAccountName | Set-ADUser -Description $user.Description
            }
票数 2
EN

Stack Overflow用户

发布于 2016-03-23 14:03:01

使用Set-ADUser

代码语言:javascript
复制
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,因为它不是默认返回的属性。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36179855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档