使用PowerShell脚本

时间:2015-09-04 16:19:19

标签: powershell active-directory

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

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)。

2 个答案:

答案 0 :(得分:0)

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

ssaviers非常相似,我也看到了一些明智的引用。这些通常可以来自复制和粘贴,但如果它们在您的代码中,则需要小心。

“ - smartquote
" - regular double quote

据说有问题的部分可能只需要更新:

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

答案 1 :(得分:0)

找到答案:

Set-ADComputer没有-roomnumber参数。但可以使用添加,替换,清除或删除参数进行修改。 &#39; ROOMNUMBER&#39;字段是LDAP,因此它具有不同的语法:

Set-ADComputer $ HostName -replace @ {roomNumber =&#39; $ RoomNumber&#39;}(这是我首先使用的,但我没有正确写出来)

看起来AD中的许多字段尤其是计算机需要以这种方式完成。

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

干杯。