尝试更改 Active Directory 中的特定描述时表达式中出现意外标记 'Set-ADUser'

Unexpected Token 'Set-ADUser' in expression when trying to change particular Descriptions in Active Directory

这是一个双重问题。

首先,我试图让这个 PS 命令起作用(尝试提取描述中包含某些字符的帐户并替换这些字符),它一直给我 "Unexpected token 'Set-ADUser' in expression or statement."错误:

Get-ADUser -Filter {description -like "*Example*"} -Properties description | ForEach-Object {$newDescription = $_.Description.Replace("Example", "Example2") Set-ADUser -Identity $_ -Description $newDescription}

我是基于我在这里找到的(第二个答案 - Ansgar Wiechers)

非常感谢任何帮助!以前从未使用过这样的网站,但不想在这上面花太多时间。

我的第二个问题与第一个问题有关,前面提到的 link 有例子。有没有一种方法可以在不按 Enter 的情况下移动到 PS 中的下一行? 我问的原因是当我将上面的代码 link 复制到 Word 中,编辑它,然后复制到 PS 和 运行 中时,它 运行 没问题' 实际上改变了什么,但它 运行。当我尝试 运行 全部作为一行时,它会抛出错误。

人们这样做是在另一个程序中构建命令吗?

你几乎做对了。唯一的错误是您需要使用 $_.DistinguishedName$_.SamAccountName 作为 Set-ADUser-Identity 参数。

当您尝试将所有内容都放在一行中时,这些事情经常发生。这使得阅读代码变得非常困难。

我也把.Replace改成了-replace。这使得它不区分大小写(与您的 -Filter 相同),所以现在 'example' 也将被 'Example2' 取代。

这是新代码。

Get-ADUser -Filter { Description -like "*Example*"} -Properties Description | 
    ForEach-Object {
        $newDescription = $_.Description -replace "Example", "Example2"
        Set-ADUser -Identity $_.DistinguishedName -Description $newDescription
    }