Dim wshShell, fileSys, objEnv Dim homeShare Dim workstationNamePath, workstationNameFile, workstationName Dim rdpPath, rdpFile, rdp Dim lnkPath, lnkFile, lnkApp, lnkAppFolder, lnkAppFolderItem Wscript.Timeout = 120 ' Declare 0 length string for later comparison workstationName = "" Set wshShell = WScript.CreateObject("WScript.Shell") Set fileSys = CreateObject("Scripting.FileSystemObject") Set lnkApp = CreateObject("Shell.Application") Set objEnv = WshShell.Environment("PROCESS") homeShare = objEnv("HOMESHARE") 'If homeshare is invalid leave the program If Not fileSys.FolderExists(homeShare) Then Wscript.Quit End If workstationNamePath = homeShare + "\workstationName.txt" ' Read or Write the workstation Name file and set workstationName to cached result If not fileSys.FileExists(workstationNamePath) Then ' Create the file set workstationNameFile = fileSys.CreateTextFile(workstationNamePath) workstationNameFile.WriteLine(objEnv("COMPUTERNAME")) workstationNameFile.Close() workstationName = objEnv("COMPUTERNAME") ' Hide the file set workstationNameFile = fileSys.GetFile(workstationNamePath) workstationNameFile.Attributes = workstationNameFile.Attributes + 2 Else ' Read the file set workstationNameFile = fileSys.OpenTextFile(workstationNamePath, 1, false) workstationName = workstationNameFile.ReadLine End If ' If could not read/write or invalid workstation name script then quit if workstationName = "" Then Wscript.Echo "Could not create or read workstation name file " + workstationNamePath Wscript.Quit end if rdpPath = homeShare + "\workstationConnection.rdp" lnkPath = objEnv("USERPROFILE") + "\Start Menu\Programs\Connect To Personal Workstation.lnk" ' Delete RDP file if exists If fileSys.FileExists(rdpPath) Then set rdpFile = fileSys.GetFile(rdpPath) rdpFile.Delete() End If ' Delete LNK if exists If fileSys.FileExists(lnkPath) Then set lnkAppFolder = lnkApp.Namespace(objEnv("USERPROFILE") + "\Start Menu\Programs") set lnkAppFolderItem = lnkAppFolder.ParseName("Connect To Personal Workstation.lnk") lnkAppFolderItem.InvokeVerb("Unp&in from Start menu") set lnkFile = fileSys.GetFile(lnkPath) lnkFile.Delete() End If if not Trim(workstationName) = Trim(objEnv("COMPUTERNAME")) Then ' Write RDP file structure to new file set rdpFile = fileSys.CreateTextFile(rdpPath) rdpFile.WriteLine("screen mode id:i:2") rdpFile.WriteLine("session bpp:i:16") rdpFile.WriteLine("full address:s:" + workstationName) rdpFile.WriteLine("connect to console:i:1") rdpFile.WriteLine("compression:i:1") rdpFile.WriteLine("keyboardhook:i:2") rdpFile.WriteLine("audiomode:i:0") rdpFile.WriteLine("redirectdrives:i:1") rdpFile.WriteLine("redirectprinters:i:1") rdpFile.WriteLine("redirectcomports:i:0") rdpFile.WriteLine("redirectsmartcards:i:0") rdpFile.WriteLine("displayconnectionbar:i:1") rdpFile.WriteLine("autoreconnection enabled:i:1") rdpFile.WriteLine("username:s:" + objEnv("USERNAME")) rdpFile.WriteLine("domain:s:" + objEnv("USERDOMAIN")) rdpFile.WriteLine("disable wallpaper:i:1") rdpFile.WriteLine("disable full window drag:i:1") rdpFile.WriteLine("disable menu anims:i:1") rdpFile.WriteLine("disable themes:i:0") rdpFile.WriteLine("disable cursor setting:i:1") rdpFile.WriteLine("bitmapcachepersistenable:i:1") rdpFile.Close() ' Hide the file set rdpFile = fileSys.GetFile(rdpPath) rdpFile.Attributes = rdpFile.Attributes + 2 set lnkFile = wshShell.CreateShortcut(lnkPath) lnkFile.TargetPath = "%SystemRoot%\system32\mstsc.exe" lnkFile.WindowStyle = "1" lnkFile.Description = "Connect to Personal Workstation" lnkFile.WorkingDirectory = homeShare lnkFile.IconLocation = "%SystemRoot%\system32\mstsc.exe, 0" lnkFile.Arguments = """" + rdpPath + """" lnkFile.Save set lnkAppFolder = lnkApp.Namespace(objEnv("USERPROFILE") + "\Start Menu\Programs") set lnkAppFolderItem = lnkAppFolder.ParseName("Connect To Personal Workstation.lnk") lnkAppFolderItem.InvokeVerb("P&in to Start menu") End if