vbs中关于计算机名的相关讨论
作者 佚名
来源 ASP编程
浏览
发布时间 2013-07-09
原文:http://www.opencjk.org/~scz/ 关于计算机名的相关讨论 http://www.opencjk.org/~scz/windows/200603151441.txt Q:我的电脑->属性->计算机名->计算机描述,我想改动这里,但它是灰色不可写的。 A:如果lanmanserverservice未启用,就会这样。执行"netstartsrv"即可。 Q:我想修改所属工作组,但那里是灰色不可写的。 A:如果lanmanworkstationservice未启用,就会这样。执行"netstartrdr"即可。 Q:如何在命令行上修改计算机名 A:backend@nsfocus -------------------------------------------------------------------------- setobj=getobject("winmgmts:\\.\root\cimv2") setlist=obj.execquery("select*fromwin32_computersystem") foreachxinlist x.rename(wscript.arguments.item(0)) next -------------------------------------------------------------------------- >cscript.exe//nologocomputerrename.vbsxxx D:scz@nsfocus 平常自然语言所说的计算机名非常不精确,下面精确地介绍一下与之相关的注册表项: -------------------------------------------------------------------------- windowsRegistryEditorVersion5.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" "NVDomain"="" "NVHostname"="CLOUDSKY" -------------------------------------------------------------------------- ActiveComputerName处的ComputerName对应当前NetBIOS名。另一处ComputerName将 在下一次重启时被复制到ActiveComputerName处。 "<Hostname>.<Domain>"对应当前FQDN(全称域名),"<NVHostname>.<NVDomain>"将 在下一台重启时被复制到"<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] "NVDomain"="" "NVHostname"="CLOUDSKY" -------------------------------------------------------------------------- 现在应该明白为什么在GUI上修改计算机名后需要要重启才能生效了吧。 一般不建议直接操作注册表修改这些值,可以考虑Win32API。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: 这是"LogicalDiskManager/dmserver"服务所用计算机名与ActiveComputerName处 的NetBIOS名不匹配所致,一般都是因为后者被破坏。重启OS后如果还不能恢复,请 在GUI上重新设置计算机名,应该就可以了。参看: http://support.microsoft.com/kb/884564 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于vbs中关于计算机名的相关讨论的所有评论