If I set the iTest variable to 1, my script renames a file called
"c:\temp\myDatabase.mdb" to "c:\temp\myDatabase.bak". However, if I set my
iTest variable to 2 and try to rename
"\\myComputer\c\backup\databases\myDatabase.mdb" to
"\\myComputer\c\backup\databases\myDatabase.bak", nothing happens. No errors
come up, but the .bak file doesn't get created.
Does WMI have a limitation of not being able to rename networked or UNC path
files? Is there a workaround? I can't use the FSO method because of
virus-warnings, so I'm trying to find a WMI Script to rename a network file.
CODE ******************
Dim sFile, sFileBackup, sFolderTarget, sDriveTarget
Dim objShell, objFile, sFileTarget
Set objShell = CreateObject("Shell.Application")
dim iTest
iTest=2
sFileBackup="myDatabase.bak"
sFile="myDatabase.mdb"
If iTest=1 Then
sDriveTarget="c:\"
sFolderTarget = "temp"
ElseIf iTest=2 Then
sDriveTarget="\\myComputer\c\backup\"
sFolderTarget = "databases"
End If
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}\\" & strComputer &
"\root\cimv2")
sFileTarget = sDriveTarget & sFolderTarget & "\" & sFile
sFileTarget = Replace(sFileTarget , "\", "\\")
Set colFiles = objWMIService.ExecQuery _
("Select * from Cim_Datafile where Name = " _
& "'" & sFileTarget & "'")
For Each objFile in colFiles
errResult = objFile.Rename(sDriveTarget & sFolderTarget & "\" &
sFileBackup)
Next