这是两个问题。
首先,我试图使此PS命令起作用(尝试提取描述中带有某些字符的帐户并替换这些字符),并且它始终在表达式或表达式中给我“意外的令牌'Set-ADUser'声明。”错误:
Get-ADUser -Filter {description -like "*Example*"} -Properties description | ForEach-Object {$newDescription = $_.Description.Replace("Example", "Example2") Set-ADUser -Identity $_ -Description $newDescription}
我基于在这里找到的内容(第二个答案-Ansgar Wiechers撰写)How to Replace Description Text for All Users in an Organizational Unit using Powershell
非常感谢任何帮助!以前从未使用过这样的网站,但不想在此上花费太多时间。
我的第二个问题与第一个问题有关,并在前面提到的链接上有示例。有没有一种方法可以在不按Enter的情况下移至PS中的下一行? 我问的原因是,当我将上述链接中的代码复制到Word中,对其进行编辑,然后复制到PS中并运行时,它运行得很好-实际上并没有改变任何东西,但是运行了。当我尝试全部运行为一行时,它将引发错误。
人们这样做时是否正在其他程序中构建命令?
答案 0 :(得分:0)
您几乎完全正确。唯一的错误是您需要对$_.DistinguishedName
的{{1}}参数使用$_.SamAccountName
或-Identity
。
当您尝试将所有内容放在同一行上时,这些事情经常发生。这使得很难阅读代码。
我也将Set-ADUser
更改为.Replace
。这使其不区分大小写(与您的-replace
相同),因此现在“ example”也将由“ Example2”代替。
这是新代码。
-Filter