This script will read the computers name and domain settings and rename the icon in the form computername.domain.local
This makes it much easier to be certain which desktop you are working on when using multiple remote RDP , mstsc connections.
I cant remember now where I found the “special” CLSID code for the registry entry, without that this wouldn’t be easy to do. It may have been on some of the technet discussions about this.
The registry functions were “borrowed” from http://ss64.com/vb/regwrite.html ,
It works on windows 7 and server 2008, server 2012 r2, windows 8.1
Windows 7 default name is “Computer”
Server 2008 default name is “Computer”
Windows 8.1 default name is “This PC”
Server 2012 default name is “This PC”
I found it annoying that a brand new server install was calling itself a PC đ
I havent rolled it out in a domain anywhere (yet) but I like the idea of some standardised “useful” text there rather than the generic “computer” or “This PC”
'---------------------------------------------------------------------- ' script to replace "Computer" name in windows explorer with the actual computer name. '---------------------------------------------------------------------- 'dont use the computername from the environment as we want to query domain membership anyway. strOldName= readreg("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\") ' get network name if one is available " Dim WshNetwork Set WshNetwork = CreateObject("WScript.Network") dim sysinfo Set sysInfo = CreateObject("ADSystemInfo") strNewName = lcase( WshNetwork.ComputerName ) ' on some computers get an error if the domain is not defined. just use the computername then. On error resume next strNewName = strNewName + "." + sysInfo.DomainDNSName on error goto 0 strMyName = Wscript.ScriptFullName result = writereg("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\",strNewName,"REG_SZ") ' should do something with the result - ignore it for now. " strOldName= "This PC/My Computer label was """ + strOldName + """" strNewName = "Label now changed to """ + strNewName + """" nl=vbCRLF & vbCRLF call wscript.echo(now & nl & strOldName & nl & strNewName & nl & strMyName ) wscript.quit ' functions from http://ss64.com http://ss64.com/vb/regwrite.html Function WriteReg(RegPath, Value, RegType) 'Regtype should be âREG_SZâ for string, âREG_DWORDâ for a integer,⌠'âREG_BINARYâ for a binary or boolean, and âREG_EXPAND_SZâ for an expandable string Dim objRegistry, Key Set objRegistry = CreateObject("Wscript.shell") Key = objRegistry.RegWrite(RegPath, Value, RegType) WriteReg = Key end function Function ReadReg(RegPath) Dim objRegistry, Key Set objRegistry = CreateObject("Wscript.shell") Key = objRegistry.RegRead(RegPath) ReadReg = Key End Function