Jump to content
Sign in to follow this  
charlieone

wmi, vbs, script win32_directory funktioniert nicht wie erwartet

Recommended Posts

Hallo Freunde der Nacht,

 

ich habe ein Scriptchen geschrieben in Anlehnung an:

 

Copy a Folder Using WMI

 

Bevor ich mein Script poste, das interessante und der Grund des Beitrags:

 

Als ich das Script schrieb und testete funktionierte es wunderbar auf Win2k Prof und Server. Aber nicht auf Win2k3.

 

Dort werden nämlich nur die Dateien unterhalb des Ordners kopiert und nicht wie bei Win2k, Dateien und Unterverzeichnisse.

 

Hat jemand von euch eine Idee? Was besseres als an den \ bei den Pfadangaben rumzuspielen fiel mir nicht ein und ich habe schon alle möglichen und unmöglichen Kombinationen durch.

 

' Init
'Option Explicit
' Konst.
ForAppending = 8
' Vars
dim objFolder
strComputer = "."
QuellPfad = "c:\\Scripts"
BackupPfad =  "D:\Archive\"   
neuVerz = aktDat()

' ErrorLogfile erstellen
errFName  = "err" & aktDat() & ".log"
Set objFSO = CreateObject("Scripting.FileSystemObject")	  'tschuess Remote-Funkt.
Set objErrFile = objFSO.CreateTextFile(BackupPfad & errFName)
objErrFile.WriteLine("Erstellt: " & now() )
objErrFile.WriteLine("Mögliche Stati:")
objErrFile.WriteLine("0 - alles i. O.; 2 - Access was denied.")
objErrFile.WriteLine("8 - An unspecified failure occurred.; 9 - The name specified was invalid.")
objErrFile.WriteLine("10 - The object specified already exists.; 11 - The file system is not NTFS.")
objErrFile.WriteLine("12 - The platform is not Windows*NT or Windows*2000.; 13 - The drive is not the same.")
objErrFile.WriteLine("14 - The directory is not empty.; 15 - There has been a sharing violation.")
objErrFile.WriteLine("16 - The start file specified was invalid.; 17 - A privilege required for the operation is not held.")
objErrFile.WriteLine("21 - A parameter specified is invalid.")
objErrFile.WriteLine("----------------------------------------------------------------------------------------------------")
objErrFile.Close


' Connecten
'WMI connecten
Set objWMIService = GetObject _
   ("winmgmts:\\" & strComputer & "\root\cimv2")
'Quelle nach Verz. kopieren
Set colFolders = objWMIService.ExecQuery _
  ("SELECT * FROM Win32_Directory WHERE Name = '" & QuellPfad & "'")
  'Wscript.Echo colFolders.Name
For Each objFolder in colFolders
errRes = objFolder.Copy(BackupPfad & neuVerz )
'Wscript.Echo errResults
wriLog("autoBackup :: " & objFolder.Name & " kopiert. Status: " & errRes)
Next

'Garbage
' connections closen
Set colFolders = nothing
Set objWMIService = nothing

wriLog("Beendet: " & now())

'''''''''''''''''''
'' Hilfs-Funktionen
'''''''''''''''''''

'Funktion: aktuelles Datum in Format ttmmjj generieren
function aktDat()
monat = DatePart("m", Date)
tag = DatePart("d", Date)
'wscript.echo len(monat)
if Len(monat) = 1 then 
		monat = 0 & monat '(Datepart("m", Date))
	'else
	'	monat = (DatePart("m", Date))
end if

if Len(tag) = 1 then
	tag = 0 & tag
end if		
datum = tag & monat & DatePart("yyyy", Date) 'Value
aktDat = datum
end function

'Funktion: String in Logfile anhaengen
function wriLog(str) ' AS String)
Set objErrFile = objFSO.OpenTextFile(BackupPfad & errFName, 8)
objErrFile.WriteLine(str) '& "Erstellt: " & Date & " " & now()'" String?: " & IsNumeric(datum)
objErrFile.Close
end function

 

Vielen Dank im voraus für Eure Mithilfe und wachsamen Augen

 

charlieone

Share this post


Link to post
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...