vbs中關於電腦名稱的相關討論

來源:互聯網
上載者:User

原文:http://www.opencjk.org/~scz/

關於電腦名稱的相關討論

http://www.opencjk.org/~scz/windows/200603151441.txt

Q: 我的電腦->屬性->電腦名稱->電腦描述,我想改動這裡,但它是灰色不可寫的。

A: 如果lanmanserver service未啟用,就會這樣。執行"net start srv"即可。

Q: 我想修改所屬工作群組,但那裡是灰色不可寫的。

A: 如果lanmanworkstation service未啟用,就會這樣。執行"net start rdr"即可。

Q: 如何在命令列上修改電腦名稱

A: backend@nsfocus

--------------------------------------------------------------------------
set obj = getobject( "winmgmts:\\.\root\cimv2" )
set list = obj.execquery( "select * from win32_computersystem" )
for each x in list
x.rename( wscript.arguments.item( 0 ) )
next
--------------------------------------------------------------------------

> cscript.exe //nologo computerrename.vbs xxx

D: scz@nsfocus

平常自然語言所說的電腦名稱非常不精確,下面精確地介紹一下與之相關的登錄機碼:

--------------------------------------------------------------------------
windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName]
"ComputerName"="CLOUDSKY"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName]
"ComputerName"="CLOUDSKY"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"Domain"=""
"Hostname"="CLOUDSKY"
"NV Domain"=""
"NV Hostname"="CLOUDSKY"
--------------------------------------------------------------------------

ActiveComputerName處的ComputerName對應當前NetBIOS名。另一處ComputerName將
在下一次重啟時被複製到ActiveComputerName處。

"<Hostname>.<Domain>"對應當前FQDN(全稱網域名稱),"<NV Hostname>.<NV Domain>"將
在下一台重啟時被複製到"<Hostname>.<Domain>"處。

顯然,我們有兩種名字,一種是NetBIOS名,一種是FQDN,它們之間沒有必然聯絡,
儘管大多數時候它們是一致的。NetBIOS名可用在很多地方,適用於TCP/IP、IPX/SPX、
NetBEUI等實現了NetBIOS介面的通訊協定。FQDN卻只用於TCP/IP協議。微軟在名字解
析問題上經曆了多次變化,名字解析順序各不相同,終端使用者很難區分NetBIOS名與
FQDN。比如"ping <name>"究竟使用哪類名字,會有多個變種,依賴作業系統、網路
拓撲,這裡不詳細討論了。總之要記住,說起電腦名稱時,有兩種名字。

在GUI上修改電腦名稱時,實際操作的是:

--------------------------------------------------------------------------
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName]
"ComputerName"="CLOUDSKY"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"NV Domain"=""
"NV Hostname"="CLOUDSKY"
--------------------------------------------------------------------------

現在應該明白為什麼在GUI上修改電腦名稱後需要要重啟才會生效了吧。

一般不建議直接操作註冊表修改這些值,可以考慮Win32 API。SetComputerName()只
能設定NetBIOS名。SetComputerNameEx()可用於設定NetBIOS名或FQDN。

還可以用WMI,就像backend所示範的那樣。這種辦法與GUI修改法完全等價,同時修
改了NetBIOS名與FQDN,重啟後生效。注意,這兩種辦法修改NetBIOS名時自動將之轉
換成大寫,而FQDN保持大小寫敏感。

用註冊表監視器觀察hostname.exe,就會發現該命令只取了FQDN中的Hostname,並不
取NetBIOS名。"nbtstat -A <target>"所涉及的則是NetBIOS名。devmgmt.msc取的是
ActiveComputerName處的NetBIOS名。

如果破壞了HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName,
在我的電腦裡查看NetBIOS名,可能是空白。此時訪問"\\<ip>\ipc$",會出錯,微軟
給出的錯誤資訊基本無用。抓包發現沒有任何IP報文出現,出錯層次很高,還沒到達
IP層。訪問"\\<name>\ipc$"倒是能成功。flier就碰上了這種事,應該是安裝某軟體
時直接操作註冊表修改電腦名稱出岔子了。

Q: 在XP中開啟磁碟管理,報"RPC服務不可用"。

A:

這是"Logical Disk Manager/dmserver"服務所用電腦名稱與ActiveComputerName處
的NetBIOS名不匹配所致,一般都是因為後者被破壞。重啟OS後如果還不能恢複,請
在GUI上重新設定電腦名稱,應該就可以了。參看:

http://support.microsoft.com/kb/884564

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.