【问题标题】:*$($name.text)* does not work can you explain? [duplicate]*$($name.text)* 不起作用你能解释一下吗? [复制]
【发布时间】:2019-05-16 03:10:16
【问题描述】:

我试图理解为什么这不起作用

get-aduser -filter {Name -like "*$($Name.text)*"}

我知道 $($name.text) 的意思是你能不能把这个不是字符串值 "" 。

感谢您的帮助。

【问题讨论】:

  • 您遇到错误?为什么在系统上运行 sn-p 会发生什么?
  • 它失败的原因是因为 - 尽管有很多在线脚本块样本 - -Filter 参数实际上是一个 string 参数。 [sigh ...] 脚本块适用于非常简单的事情,但复合/复杂 $Vars 几乎总是会失败。 ///// 解决方案是将复杂的 $Var 保存到更简单的 $Var 并使用更简单的,或者使用适当的过滤器字符串。以下奥塔工作...-Filter "Name -like '*$($Name.Text)'"。注意外部双引号和内部单例。 ///// 我无法测试 [无 AD 访问权限],但它与其他样本匹配。
  • 提供@Lee_Dailey 有用评论的背景信息:最好avoid the use of script blocks ({ ... }) as -Filter arguments。

标签: powershell filter active-directory


【解决方案1】:

我不是 100% 确定为什么这不起作用,但您可以创建一个临时字符串来解决这个问题。

$tmpStr = "*" + $Name.text + "*"
Get-ADUser -Filter {Name -like $tmpStr}

【讨论】:

猜你喜欢
  • 2020-12-23
  • 2010-09-16
  • 1970-01-01
  • 2011-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-15
相关资源
最近更新 更多