Solved

Kix script to Change unc paths in other Kix scripts

Posted on 2008-06-13
2
600 Views
Last Modified: 2008-07-11
I'm the new Windows 2003 Active Directory admin at my company. Right now we have about 300+ Windows XP workstations. They are stil using Kix scripts to map users to different network shares. Anyway, right now everyone's network account is setup with one of 15 different batch files that point to a specific kix script depending on their department or location / remote site. Anyway I'm going to be replace our file server at one of our remote sites and need to update users login scrript to use the new server name instead of the old one. How can I do this? Can a kix script be smart enough to use logic like if \\older-server exist change to \\New-Server??? Please help. Also how would I address users had have hard coded drive mapping to my older file server?
0
Comment
Question by:compdigit44
  • 2
2 Comments
 
LVL 65

Accepted Solution

by:
RobSampson earned 500 total points
ID: 21788340
Hi, I don't know much about Kix, but I see this problem being in two parts.

One is that you need to update your 15 or so Kix scripts to have their references to the old server point to the new file server.

Two is that you need to address any manual / custom mappings that a user might have.

For part one, I can provide a VBScript file that will change the references in your Kix scripts.  It will copy the files to a KIX_Backups folder in the source folder before changing them, but back them up yourself as well, just to be safe.

For part two, I will also provide a VBScript that can be used as a login script to remap a drive that might be mapped to the old server.

Regards,

Rob.
strScriptFolder = "\\server\netlogon"

strOldServer = "\\oldserver\share"

strNewServer = "\\newserver\share"

If Right(strScriptFolder, 1) = "\" Then strScriptFolder = Left(strScriptFolder, Len(strScriptFolder) - 1)

strBackupFolder = strScriptFolder & "\KIX_Backups"

Set objFSO = CreateObject("Scripting.FileSystemObject")

Const intForReading = 1

If objFSO.FolderExists(strBackupFolder) = False Then objFSO.CreateFolder(strBackupFolder)

For Each objFile In objFSO.GetFolder(strScriptFolder).Files

	If Right(LCase(objFile.Name), 4) = LCase(".kix") Then

		strFilePath = objFile.Path

		objFSO.CopyFile strFilePath, strBackupFolder

		Set objKIXFile = objFSO.OpenTextFile(strFilePath, intForReading, False)

		strContents = objKIXFile.ReadAll

		objKIXFile.Close

		Set objKIXFile = Nothing

		strContents = Replace(LCase(strContents), LCase(strOldServer), LCase(strNewServer))

		Set objKIXFile = objFSO.CreateTextFile(strFilePath, True)

		objKIXFile.Write strContents

		objKIXFile.Close

		Set objKIXFile = Nothing		

	End If

Next

MsgBox "Done"

Open in new window

0
 
LVL 65

Assisted Solution

by:RobSampson
RobSampson earned 500 total points
ID: 21788341
And here's part two.

Rob.
Set objNetwork = CreateObject("Wscript.Network")

strOldServer = "\\oldserver\share"

strNewServer = "\\newserver\share"

Set colDrives = objNetwork.EnumNetworkDrives

For i = 0 to colDrives.Count - 1 Step 2

	If Left(colDrives.Item(i + 1), Len(strOldServer)) = strOldServer Then

		strDriveLetter = colDrives.Item(i)

		objNetwork.RemoveNetworkDrive strDriveLetter, True, True

		If Len(colDrives.Item(i + 1)) > Len(strOldServer) Then

			objNetwork.MapNetworkDrive strDriveLetter, strNewServer & Mid(colDrives.Item(i + 1), Len(strOldServer) + 1), True

		Else

			objNetwork.MapNetworkDrive strDriveLetter, strNewServer, True

		End If

    End If

Next

Open in new window

0

Featured Post

Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

Join & Write a Comment

Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
Since upgrading to Office 2013 or higher installing the Smart Indenter addin will fail. This article will explain how to install it so it will work regardless of the Office version installed.
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…

707 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now