vbs中關(guān)于計(jì)算機(jī)名的相關(guān)討論
更新時(shí)間:2007年03月05日 00:00:00 作者:
原文:http://www.opencjk.org/~scz/
關(guān)于計(jì)算機(jī)名的相關(guān)討論
http://www.opencjk.org/~scz/windows/200603151441.txt
Q: 我的電腦->屬性->計(jì)算機(jī)名->計(jì)算機(jī)描述,我想改動(dòng)這里,但它是灰色不可寫(xiě)的。
A: 如果lanmanserver service未啟用,就會(huì)這樣。執(zhí)行"net start srv"即可。
Q: 我想修改所屬工作組,但那里是灰色不可寫(xiě)的。
A: 如果lanmanworkstation service未啟用,就會(huì)這樣。執(zhí)行"net start rdr"即可。
Q: 如何在命令行上修改計(jì)算機(jī)名
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
平常自然語(yǔ)言所說(shuō)的計(jì)算機(jī)名非常不精確,下面精確地介紹一下與之相關(guān)的注冊(cè)表項(xiàng):
--------------------------------------------------------------------------
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對(duì)應(yīng)當(dāng)前NetBIOS名。另一處ComputerName將
在下一次重啟時(shí)被復(fù)制到ActiveComputerName處。
"<Hostname>.<Domain>"對(duì)應(yīng)當(dāng)前FQDN(全稱(chēng)域名),"<NV Hostname>.<NV Domain>"將
在下一臺(tái)重啟時(shí)被復(fù)制到"<Hostname>.<Domain>"處。
顯然,我們有兩種名字,一種是NetBIOS名,一種是FQDN,它們之間沒(méi)有必然聯(lián)系,
盡管大多數(shù)時(shí)候它們是一致的。NetBIOS名可用在很多地方,適用于TCP/IP、IPX/SPX、
NetBEUI等實(shí)現(xiàn)了NetBIOS接口的通信協(xié)議。FQDN卻只用于TCP/IP協(xié)議。微軟在名字解
析問(wèn)題上經(jīng)歷了多次變化,名字解析順序各不相同,最終用戶很難區(qū)分NetBIOS名與
FQDN。比如"ping <name>"究竟使用哪類(lèi)名字,會(huì)有多個(gè)變種,依賴操作系統(tǒng)、網(wǎng)絡(luò)
拓?fù)?,這里不詳細(xì)討論了??傊涀。f(shuō)起計(jì)算機(jī)名時(shí),有兩種名字。
在GUI上修改計(jì)算機(jī)名時(shí),實(shí)際操作的是:
--------------------------------------------------------------------------
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName]
"ComputerName"="CLOUDSKY"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"NV Domain"=""
"NV Hostname"="CLOUDSKY"
--------------------------------------------------------------------------
現(xiàn)在應(yīng)該明白為什么在GUI上修改計(jì)算機(jī)名后需要要重啟才能生效了吧。
一般不建議直接操作注冊(cè)表修改這些值,可以考慮Win32 API。SetComputerName()只
能設(shè)置NetBIOS名。SetComputerNameEx()可用于設(shè)置NetBIOS名或FQDN。
還可以用WMI,就像backend所演示的那樣。這種辦法與GUI修改法完全等價(jià),同時(shí)修
改了NetBIOS名與FQDN,重啟后生效。注意,這兩種辦法修改NetBIOS名時(shí)自動(dòng)將之轉(zhuǎn)
換成大寫(xiě),而FQDN保持大小寫(xiě)敏感。
用注冊(cè)表監(jiān)視器觀察hostname.exe,就會(huì)發(fā)現(xiàn)該命令只取了FQDN中的Hostname,并不
取NetBIOS名。"nbtstat -A <target>"所涉及的則是NetBIOS名。devmgmt.msc取的是
ActiveComputerName處的NetBIOS名。
如果破壞了HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName,
在我的電腦里查看NetBIOS名,可能是空白。此時(shí)訪問(wèn)"\\<ip>\ipc$",會(huì)出錯(cuò),微軟
給出的錯(cuò)誤信息基本無(wú)用。抓包發(fā)現(xiàn)沒(méi)有任何IP報(bào)文出現(xiàn),出錯(cuò)層次很高,還沒(méi)到達(dá)
IP層。訪問(wèn)"\\<name>\ipc$"倒是能成功。flier就碰上了這種事,應(yīng)該是安裝某軟件
時(shí)直接操作注冊(cè)表修改計(jì)算機(jī)名出岔子了。
Q: 在XP中打開(kāi)磁盤(pán)管理,報(bào)"RPC服務(wù)不可用"。
A:
這是"Logical Disk Manager/dmserver"服務(wù)所用計(jì)算機(jī)名與ActiveComputerName處
的NetBIOS名不匹配所致,一般都是因?yàn)楹笳弑黄茐?。重啟OS后如果還不能恢復(fù),請(qǐng)
在GUI上重新設(shè)置計(jì)算機(jī)名,應(yīng)該就可以了。參看:
http://support.microsoft.com/kb/884564
關(guān)于計(jì)算機(jī)名的相關(guān)討論
http://www.opencjk.org/~scz/windows/200603151441.txt
Q: 我的電腦->屬性->計(jì)算機(jī)名->計(jì)算機(jī)描述,我想改動(dòng)這里,但它是灰色不可寫(xiě)的。
A: 如果lanmanserver service未啟用,就會(huì)這樣。執(zhí)行"net start srv"即可。
Q: 我想修改所屬工作組,但那里是灰色不可寫(xiě)的。
A: 如果lanmanworkstation service未啟用,就會(huì)這樣。執(zhí)行"net start rdr"即可。
Q: 如何在命令行上修改計(jì)算機(jī)名
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
平常自然語(yǔ)言所說(shuō)的計(jì)算機(jī)名非常不精確,下面精確地介紹一下與之相關(guān)的注冊(cè)表項(xiàng):
--------------------------------------------------------------------------
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對(duì)應(yīng)當(dāng)前NetBIOS名。另一處ComputerName將
在下一次重啟時(shí)被復(fù)制到ActiveComputerName處。
"<Hostname>.<Domain>"對(duì)應(yīng)當(dāng)前FQDN(全稱(chēng)域名),"<NV Hostname>.<NV Domain>"將
在下一臺(tái)重啟時(shí)被復(fù)制到"<Hostname>.<Domain>"處。
顯然,我們有兩種名字,一種是NetBIOS名,一種是FQDN,它們之間沒(méi)有必然聯(lián)系,
盡管大多數(shù)時(shí)候它們是一致的。NetBIOS名可用在很多地方,適用于TCP/IP、IPX/SPX、
NetBEUI等實(shí)現(xiàn)了NetBIOS接口的通信協(xié)議。FQDN卻只用于TCP/IP協(xié)議。微軟在名字解
析問(wèn)題上經(jīng)歷了多次變化,名字解析順序各不相同,最終用戶很難區(qū)分NetBIOS名與
FQDN。比如"ping <name>"究竟使用哪類(lèi)名字,會(huì)有多個(gè)變種,依賴操作系統(tǒng)、網(wǎng)絡(luò)
拓?fù)?,這里不詳細(xì)討論了??傊涀。f(shuō)起計(jì)算機(jī)名時(shí),有兩種名字。
在GUI上修改計(jì)算機(jī)名時(shí),實(shí)際操作的是:
--------------------------------------------------------------------------
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName]
"ComputerName"="CLOUDSKY"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"NV Domain"=""
"NV Hostname"="CLOUDSKY"
--------------------------------------------------------------------------
現(xiàn)在應(yīng)該明白為什么在GUI上修改計(jì)算機(jī)名后需要要重啟才能生效了吧。
一般不建議直接操作注冊(cè)表修改這些值,可以考慮Win32 API。SetComputerName()只
能設(shè)置NetBIOS名。SetComputerNameEx()可用于設(shè)置NetBIOS名或FQDN。
還可以用WMI,就像backend所演示的那樣。這種辦法與GUI修改法完全等價(jià),同時(shí)修
改了NetBIOS名與FQDN,重啟后生效。注意,這兩種辦法修改NetBIOS名時(shí)自動(dòng)將之轉(zhuǎn)
換成大寫(xiě),而FQDN保持大小寫(xiě)敏感。
用注冊(cè)表監(jiān)視器觀察hostname.exe,就會(huì)發(fā)現(xiàn)該命令只取了FQDN中的Hostname,并不
取NetBIOS名。"nbtstat -A <target>"所涉及的則是NetBIOS名。devmgmt.msc取的是
ActiveComputerName處的NetBIOS名。
如果破壞了HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName,
在我的電腦里查看NetBIOS名,可能是空白。此時(shí)訪問(wèn)"\\<ip>\ipc$",會(huì)出錯(cuò),微軟
給出的錯(cuò)誤信息基本無(wú)用。抓包發(fā)現(xiàn)沒(méi)有任何IP報(bào)文出現(xiàn),出錯(cuò)層次很高,還沒(méi)到達(dá)
IP層。訪問(wèn)"\\<name>\ipc$"倒是能成功。flier就碰上了這種事,應(yīng)該是安裝某軟件
時(shí)直接操作注冊(cè)表修改計(jì)算機(jī)名出岔子了。
Q: 在XP中打開(kāi)磁盤(pán)管理,報(bào)"RPC服務(wù)不可用"。
A:
這是"Logical Disk Manager/dmserver"服務(wù)所用計(jì)算機(jī)名與ActiveComputerName處
的NetBIOS名不匹配所致,一般都是因?yàn)楹笳弑黄茐?。重啟OS后如果還不能恢復(fù),請(qǐng)
在GUI上重新設(shè)置計(jì)算機(jī)名,應(yīng)該就可以了。參看:
http://support.microsoft.com/kb/884564
相關(guān)文章
vbScript on error resume next容錯(cuò)使用心得
在vbscript中,使用on error resume next處理錯(cuò)誤,當(dāng)使用這段代碼時(shí),程序?qū)⒑雎援a(chǎn)生的錯(cuò)誤繼續(xù)運(yùn)行后面的代碼。本文就使用心得作個(gè)小結(jié),供有需要的朋友參考2009-02-02VBS 硬盤(pán)讀寫(xiě)統(tǒng)計(jì)(分區(qū)讀寫(xiě)統(tǒng)計(jì))
用vbs實(shí)現(xiàn)的硬盤(pán)讀寫(xiě)統(tǒng)計(jì)(分區(qū)讀寫(xiě)統(tǒng)計(jì))的實(shí)現(xiàn)代碼,想學(xué)習(xí)vbs的朋友可以參考下2013-01-01