作者 主題: 請問如何遠端修改網域中電腦的電腦名稱?  (閱讀 9643 次)

0 會員 與 1 訪客 正在閱讀本文。

fireflybug

  • 憂鬱的高中生
  • ***
  • 文章數: 145
    • 檢視個人資料
小弟最近想對電腦名稱做個規範,規範完後,就是要修改電腦名稱這件麻煩事,想說網域的環境下,是否有遠端修改電腦名稱的方式?而且是在使用者不知不覺下即可修改完成?想連同 "電腦描述" 一起修改。

小弟覺得應該有辦法辦到,只是關鍵字搜尋了半天,都沒有相關的訊息。>_<

scomomo

  • 憂鬱的高中生
  • ***
  • 文章數: 139
    • 檢視個人資料
如果只有幾台的話就自己動手弄一弄,

如果有上千台,那就麻煩了,看看有沒有相關的Tool可以達成這目的。

以前要改名稱都會要  先退出網域->改完名稱->重開機->再加入網域,

AD上偶爾還是殘留著舊的名稱,久了就很麻煩。

hankyang

  • 憂鬱的高中生
  • ***
  • 文章數: 175
  • 性別: 男
    • 檢視個人資料
小弟最近想對電腦名稱做個規範,規範完後,就是要修改電腦名稱這件麻煩事,想說網域的環境下,是否有遠端修改電腦名稱的方式?而且是在使用者不知不覺下即可修改完成?想連同 "電腦描述" 一起修改。

小弟覺得應該有辦法辦到,只是關鍵字搜尋了半天,都沒有相關的訊息。>_<

同一網域底下嗎?? 那不就用遠端連線 連過去後再更改電腦名稱就好了 不知不覺就有點難了 因為加入後必須重開對應AD後網域才會有效
至於有說到AD殘留名稱  嗯~這情形是會有的 但我的做法 都是上AD把computer裡 找出要重複登入的User刪除掉後重新加  要不就是不用同名稱加入(這樣會有點亂)
甲:我不管啦!!為什麼他可以當版主...(泣)

乙:因為他命好.....感動了天!!所以可以當版主

fireflybug

  • 憂鬱的高中生
  • ***
  • 文章數: 145
    • 檢視個人資料
公司電腦名稱命名規則,也是一們管理的學問,我幾經思考,還是決定將電腦名稱命名為唯一性的財產編號,永遠不需變動。

電腦名稱頁面還有個電腦描述的資訊可輸入,而電腦描述的特性是,可使用AD遠端修改,且不需要重新開機,即可套用,XP電腦,使用電腦搜尋,是連電腦描述都可使用部份關鍵字搜尋到的,所以電腦描述的部份適合常變動的資訊,我是紀錄分機與使用者名稱,這樣需要遠端連線,只要搜尋分機或是使用者名稱,就可以找到對應的電腦名稱,再作遠端連線即可。

不知大大門有更好的方式嗎?

洋蔥叔叔

  • 榮譽博士
  • 鑽研的研究生
  • *****
  • 文章數: 830
    • 檢視個人資料
    • 洋蔥叔叔的隨意漫談電腦、網路、.NET、軟體本地化、雜七雜八
這裡有個 VBScript 可以試試看, 修改前面電腦名稱, 新名稱及描述三個變數再執行就可以了
不過有一個需求是 client 端的防火牆不可以檔 DCOM

代碼: [選擇]
' 作業系統支援
' Windows Server 2003 : Yes
' Windows XP : Yes
' Windows 2000 : No
' Windows NT 4.0 : No
' Windows 98 : No
Const HKEY_LOCAL_MACHINE = &H80000002


' 目標電腦名稱
strComputer = "oldname"

' 新電腦名稱
strNewName = "newname"

' 電腦描述
strDescription = "某某某的電腦"



Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colComputers = objWMIService.ExecQuery _
    ("Select * from Win32_ComputerSystem")

For Each objComputer in colComputers
    err = objComputer.Rename(strNewName)
If Err <> 0 Then
Wscript.Echo "無法修改電腦名稱, 錯誤碼: " & Err

End If
Next

Set objRegistry = GetObject _
    ("winmgmts:\\" & strComputer & "\root\default:StdRegProv")

strKeyPath = "System\CurrentControlSet\Services\lanmanserver\parameters"
strValueName = "srvcomment"

objRegistry.SetStringValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, strDescription

Set objWMIService2 = GetObject _
    ("winmgmts:\\" & strComputer & "\root\cimv2:Win32_Process")
Error = objWMIService2.Create("C:\windows\system32\shutdown.exe -t 30 -r -c ""電腦名稱已更新為 '" & strnewname & "', 30 秒鍾後將自動重新開機"" ", null , null, intProcessID)

If Error <> 0 Then
    Wscript.Echo "無法執行 shutdown.exe, 錯誤碼: " & _
        Error & "."

End If

fireflybug

  • 憂鬱的高中生
  • ***
  • 文章數: 145
    • 檢視個人資料
感謝您提供的程式碼^^

不過公司還是有98與2000系統,弟決定用最古老的方式,有服務到該機器時,在順便改電腦名稱,慢慢改著來^^"