【问题标题】:PowerShell AD Module - Variables in FilterPowerShell AD 模块 - 过滤器中的变量
【发布时间】:2013-11-05 13:45:29
【问题描述】:

很抱歉,问题很简单,但我很难回答。

我的代码很简单...我想从命令行获取一个变量到我的脚本中,并将该变量用作 AD 命令中的过滤器字符串。我有如下:

PARAM($myOU)

$FoundOUs = Get-ADOrganizationalUnit -Filter 'Name -like "*"' -SearchBase ="OU=Offices,DC=dc1,DC=domain,DC=com"

所以,我想用 $myOU 替换 "*"... 我不知道如何做到这一点。我尝试过 -Filter Name $myOU 等,但没有运气。任何建议都会很棒。

【问题讨论】:

  • 我不确定这是不是最好的选择,但这似乎有效(在发布后尝试过 - 应该在发布前尝试过)$FoundOUs = Get-ADOrganizationalUnit -Filter "Name -like '$($myOU)'" -SearchBase ="OU=Offices,DC=dc1,DC=domain,DC=com" 无论如何,这工作......再次,不确定是否最好,但它确实有效。

标签: powershell filter active-directory


【解决方案1】:

像这样使用字符串插值:

$FoundOUs = Get-ADOrganizationalUnit -Filter "Name -like '$myOU'" -SearchBase="OU=Offices,DC=dc1,DC=domain,DC=com"

请注意,字符串插值仅发生在双引号字符串中,因此请交换单引号和双引号的顺序,以便对变量进行插值。在这种情况下也不需要使用$($myOU)。当您需要访问属性时,通常使用子表达式,例如$($myOU.Length) 或通常评估字符串中的表达式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-04
    • 1970-01-01
    • 2022-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多