原文: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
vbs中关于计算机名的相关讨论
2020-07-05 11:09VBS教程网 VBS
本文主要讲解vbs中关于计算机名的相关讨论,有需要的可以了解下
延伸 · 阅读
- 2021-12-09禁用VBS提高Windows 11性能,这个技巧必须要掌握
- 2021-11-13使用VBS创建快捷方式的代码
- 2021-11-13如何使用vbs 监控电脑活动记录
- 2021-11-13如何用VBS脚本收集远程计算机或本地计算机安装
- 2021-10-08Windows 11 VBS 安全功能导致性能下降,教你如何检
- 2021-10-08怎样在Windows 11中禁用VBS以提高性能?
精彩推荐
- VBS
VBS教程:对象-Folders 集合
VBS教程:对象-Folders 集合...
- VBS
提供个可以显示农历的VBS代码
本文主要分享一段可以显示农历的VBS代码,具有一定的参考价值,有需要的朋友可以了解一下...
- VBS
可以定时自动关机的vbs脚本
这篇文章主要分享一段可以定时自动关机的vbs脚本代码,有需要的童鞋可以学习下...
- VBS
VBS教程:属性-AvailableSpace 属性
VBS教程:属性-AvailableSpace 属性 ...
- VBS
VBS教程:属性-VolumeName 属性
VBS教程:属性-VolumeName 属性...
- VBS
vbs base64 解密脚本代码
解密base64的vbs小函数,支持英文与数字不支持中文。...
- VBS
VBS教程:正则表达式简介 -建立正则表达式
建立正则表达式 构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与操作符将小的表达式结合在一起来创建更大的表达式。 可以...
- VBS
脚本 MsAgent组件 微软精灵 揪出系统自带的宠物
你知道系统里有一个隐藏的宠物吗? 将以下代码保存为后缀为.vbs的文件,再双击运行,看看出来什么?一个可爱的魔法老人!还会说话、移动、吹喇叭…...