【问题标题】:Setting a computer room number with a PowerShell script使用 PowerShell 脚本设置机房号
【发布时间】:2015-09-04 16:19:18
【问题描述】:

感谢大家的回复。我已经纠正了我的代码中的错误,尽管它们只是一个剪切和粘贴错误。这是我得到的错误示例。例如,如果我这样做:

PS > Set-ADComputer "VM-WINDOWS7" -Location "NA/HQ/Building A"
PS > Get-ADComputer "VM-WINDOWS7" -Properties location |select-object location

它有效,我得到了结果:

Location
--------
NA/HQ/Building A

但是当我这样做时:

PS > Set-ADComputer "VM-WINDOWS7" -RoomNumber "7"

或者

PS > Set-ADComputer "VM-WINDOWS7" -RoomNumber @{Replace="7"}

我得到错误:

Set-ADComputer: Cannot find a parameter that matches the name "RoomNumber".
At line: 1 Character: 41
+ Set-ADComputer "VM-WINDOWS7" -RoomNumber <<<<  @{Replace="7"}
    + CategoryInfo: InvalidArgument: (:) [Set-ADComputer], ParameterBindingException
    + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.ActiveDirectory.Management.Commands.SetADComputer

就像我之前说的,参数 RoomNumber 无法识别,所以我想它可能有另一个名称,例如(AD 中的帐户名称 = PowerShell 中的 SAMAccountName)。

【问题讨论】:

  • 需要修复Write-Host "Room number set to... 行上的双引号情况。看起来第一个引号不是正确的字符,只需将其删除并重新键入它,您也不想在其中的变量周围加上引号。您的问题行中还有一个额外的“o”Rooom
  • 你的代码出现是对的,但我在这里看到一个错字:@ {RooomNumber="$RoomNumber"} 应该是@{RooomNumber="$RoomNumber"}。我会继续寻找。你也有错误吗?您需要详细描述正在发生的事情。您将更快地获得解决方案。

标签: powershell active-directory


【解决方案1】:

你肯定有几个问题。您将 AD 属性 roomNumber 错误键入为 rooomNumber。您还有一个声明哈希表的空间。

很像ssaviers,我也看到了一些巧妙的引号。这些通常可以来自复制和粘贴,但如果它们在您的代码中,则需要小心。

“ - smartquote
" - regular double quote

话虽如此,有问题的部分可能只需要更新:

Set-ADComputer "$HostName" -Replace @{roomNumber = "$RoomNumber"}

【讨论】:

    【解决方案2】:

    找到答案:

    Set-ADComputer 没有 -roomnumber 参数。但可以使用 Add、Replace、Clear 或 Remove 参数对其进行修改。 'ROOMNUMBER' 字段是 LDAP,所以它有不同的语法:

    Set-ADComputer $HostName -replace @{roomNumber='$RoomNumber'} (这是我一开始使用的,但我没有正确写)

    看起来 AD 中的很多字段,尤其是计算机领域都需要这样做。

    无论如何,谢谢大家的想法和支持。

    干杯。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-10
      • 1970-01-01
      • 1970-01-01
      • 2016-10-15
      相关资源
      最近更新 更多