【问题标题】:Can I not use a variable in with Get-ADUser我不能在 Get-ADUser 中使用变量吗
【发布时间】:2019-12-18 03:17:45
【问题描述】:

我有一个从表单中提取的变量,我需要将其与匹配的显示名称绑定以检索现有的 samAccountName。

 If (Get-ADUser -Filter { (displayName -eq $user) -AND ($Returner -eq "Yes")} ) { 
    $Check = Get-ADUser -Filter{displayName -eq $user} -Properties SamAccountName
    $sam = $check.SamAccountName
    $sam
    }

只要我有 -AND ($Returner.....) 部分,检查就无法执行。

我需要在那里签入,因为这是从 Cherwell 表单传递的内容,以标记用户是返回者,然后我将为该人提取当前的 samAccountName。

有人可以帮助我了解如何使用 Get-ADUser 命令检查参数。

非常感谢

S.

【问题讨论】:

  • 您正在为您的scriptblock 使用scriptblock 格式...但该参数需要一个字符串。设计 AD 模块的“聪明人”允许使用脚本块格式 [并将其用于许多示例],但它对于复杂的过滤器并不可靠。您可能需要切换到类似于 >>> -Filter "(displayName -eq $user) -AND ($Returner -eq 'Yes')" 的字符串

标签: powershell active-directory


【解决方案1】:

我不明白你为什么要执行相同的Get-ADUser 命令两次..

你可以这样做:

$adUser = Get-ADUser -Filter "DisplayName -eq '$user'" -Properties DisplayName, SamAccountName
$sam = if (($adUser) -and $Returner -eq "Yes" ) { $adUser.SamAccountName }
$sam

希望有帮助

【讨论】:

  • 谢谢,这看起来确实更整洁了——我会把它放到 dev 中,看看它是如何挂在一起的。
  • 这是 $sam = if (($adUser) 检查 Null 吗?所以基本上如果 $adUser 有一个值并且 $returner = Yes 然后创建 $sam 变量?
【解决方案2】:

您在get-aduser-filter 内使用$Returner。如果我理解正确的话,这是一个表单创建的变量。

您应该在 if 语句中检查 $Returner

If ( (Get-ADUser -Filter { displayName -eq $user}) -AND ($Returner -eq "Yes")) { 
    $Check = Get-ADUser -Filter{displayName -eq $user} -Properties SamAccountName
    $sam = $check.SamAccountName
    $sam
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-03
    • 1970-01-01
    • 2021-06-11
    • 2012-09-25
    相关资源
    最近更新 更多