gpt4 book ai didi

powershell - PowerShell 中 Get-ADUser 多行筛选器的反引号

转载 作者:行者123 更新时间:2023-12-02 09:17:16 26 4
gpt4 key购买 nike

我在 PowerShell 中使用 Get-AdUser 命令在多行过滤器表达式中使用反引号(重音符号)时遇到问题。具体来说,我正在 Windows 7 上测试 PowerShell 2.0。

一个工作示例(过滤器全部位于一行):

Get-ADUser -Filter {Name -like "Smith*" -and Enabled -eq $True}
# This works as expected, a list of matching objects is returned on pipeline

一个损坏的示例(过滤器被分成多行):

Get-ADUser -Filter {Name -like "Smith*" `
-and Enabled -eq $True}
# Error message indicates "Operator not supported at position [of backtick]

第二个损坏的示例(反引号前带有 -and 的多行过滤器):

Get-ADUser -Filter {Name -like "Smith*" -and `
Enabled -eq $True}
#Error message indicates "Syntax error at position [of backtick]"

请提供解决方法的示例或解释不支持这些多行过滤器的原因。我无法弄清楚这个问题,但这似乎应该是 PowerShell 中一种简单且常见的操作类型。

最佳答案

我相信更有经验的人可以帮助解决这个问题,但是 PowerShell 似乎没有消耗这一行的反引号,因此它会将其发送到不喜欢它的 AD 过滤器解析器。我在 about_ActiveDirectory_Filter 中没有找到任何内容这就能准确地解释这一点。不过,反引号仍然用于转义字符。可能换行符被传递到 AD 过滤器解析器,但它不喜欢它。

我知道有效的解决方法是预先将脚本 block 构建到变量中并将其传递给 Get-Aduser

$sb = {
Name -like "Matt*" -and
Enabled -eq $True
}
Get-ADUser -Filter $sb

关于powershell - PowerShell 中 Get-ADUser 多行筛选器的反引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45740863/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com