2015-09-04 55 views
-1

謝謝大家的回覆。我已經糾正了我的代碼中的錯誤,儘管它們只是剪切和粘貼錯誤。這是我得到的錯誤的一個例子。如果我的例子做:使用PowerShell腳本設置計算機機房號碼

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

+0

需要修正'Write-Host'房間號設置爲...'行的雙引號情況。看起來第一個引號不是正確的字符,只是刪除它並重新鍵入它,你也不想在你的問題行中增加一個「o」Rooom' – ssaviers

+0

你的代碼_appears_ right,但是我在這裏看到一個錯字:'@ {RooomNumber =「$ RoomNumber」}'應該是'@ {RooomNumber =「$ RoomNumber」}'。我會一直在尋找,你還會得到錯誤嗎?你需要詳細描述發生了什麼,你將會得到更快的解決方案。 – Matt

回答

0

這裏肯定有幾個問題。您錯誤地將AD屬性roomNumber輸入爲rooomNumber。你也有一個空間,你的散列表被聲明。

很像ssaviers,我也看到一些精明的引號。這些通常來自複製和粘貼,但如果這些代碼在您的代碼中,則需要小心。

「 - smartquote 
" - regular double quote 

話雖這麼說,問題的部分可能只需要更新:

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

找到了答案:

設置-ADComputer沒有-roomnumber參數。但可以使用添加,替換,清除或刪除參數進行修改。 'ROOMNUMBER'字段是LDAP,因此它有不同的語法:

Set-ADComputer $ HostName -replace @ {roomNumber ='$ RoomNumber'}(這就是我第一次使用但我沒有寫它正確)

看起來像AD中的很多領域,特別是對於計算機需要這樣做。

無論如何謝謝大家的意見和支持。

乾杯。

相關問題