Problemer med kald af parameter
Hej!Jeg har et problem med et VBScript jeg skal bruge i forbindelse med backup af Pc'er via SyncToy fra Microsoft.
Jeg bruger ObjShell.SpecialFolders til at find stien til den bruger der er logget på's Dokumnent/My Documents mappe, senere skal jeg bruge parameteren fra SpecialFolders i forbindelse med at starte SyncToy programmet. Men jeg får en fejl akkurat det sted i scriptet hvor jeg forsøger at bruger SpecialFolders i kørslen af SyncToy. Det er ved den parameter der hedder Left at jeg skal bruge SpecialFolders og at det går galt.
Mvh René
Her er scriptet.
Set ObjFSO = CreateObject("Scripting.FileSystemObject")
Set ObjNet = CreateObject("WScript.Network")
Set ObjShell = CreateObject("WScript.Shell")
Dim strPCname, strUsername, specialFolders
Dim strDriveLetter, strRemotePath, strUser, strPassword, strProfile
Dim ObjShell
strDriveLetter = "U:"
strRemotePath = "\\XXXsrv25\Backup-Laptop"
strUser = "Backup"
strPassword = "2010"
strProfile = "false"
'Sætter PC navn til StrPCname og UserName til StrUsername. StrPCname og StrUsername bliver kaldt længere nede i scriptet
StrPCname = ObjNet.ComputerName
strUsername = ObjNet.UserName
'Sætter specialFolders = stien til My Documents
specialFolders = ObjShell.SpecialFolders("MyDocuments")
'I tilfælde af at drev U er tilkoblet, frakobles dette inden scriptet kører videre - er lavet i det tilfælde
'at man ønsker at bruge scriptet flere gang under samme session på PC'en
If (ObjFSO.DriveExists("U:") = True) Then
ObjNet.RemoveNetworkDrive "U:",True, True
End If
'Giver tid til at frakoble drev U
WScript.Sleep 1000
'Tilkobler drev U
ObjNet.MapNetworkDrive strDriveLetter, strRemotePath, strProfile, strUser, strPassword
'Viser PC navn og Brugernavn i 2 stk. popup vinduer
'Wscript.Echo strPCname
'Wscript.Echo strUsername
'Viser stien til My Documents
'Wscript.echo specialFolders
'Kode til at kunne starte et program længere nede i scriptet, med kommandoen ---> shell "C:\Windows\System32\notepad.exe"
sub shell(cmd)
dim objShell
Set objShell = WScript.CreateObject( "WScript.Shell" )
objShell.Run(cmd)
Set objShell = Nothing
end Sub
'If/Else og If/ElseIf statments til at checke om der er oprettet de korrekte mapper på backup serveren
If not ObjFSO.FolderExists("\\XXXsrv25\Backup-Laptop" & "\" & StrUsername) then
'Wscript.Echo "Backup-Laptop\brugernavn\PC-navn er ikke oprettet på XXXsrv25"
'Wscript.Echo "Backup-Laptop\brugernavn\PC-navn oprettes på XXXsrv25"
ObjFSO.CreateFolder "\\XXXsrv25\Backup-Laptop" & "\" & StrUsername
ObjFSO.CreateFolder "\\XXXsrv25\Backup-Laptop" & "\" & StrUsername & "\" & StrPCname
'Wscript.Echo "Backup-Laptop\brugernavn\PC-navn er oprettet på XXXsrv25"
ElseIf ObjFSO.FolderExists("\\XXXsrv25\Backup-Laptop" & "\" & StrUsername) then
'Wscript.Echo "Backup-Laptop\brugernavn er oprettet på XXXsrv25"
If Not ObjFSO.FolderExists("\\XXXsrv25\Backup-Laptop" & "\" & StrUsername & "\" & StrPCname) then
'Wscript.Echo "Backup-Laptop\brugernavn er oprettet, men PC-navn er ikke oprettet på XXXsrv25"
'Wscript.Echo "Backup-Laptop\brugernavn er oprettet, og PC-navn oprettes på XXXsrv25"
ObjFSO.CreateFolder "\\XXXsrv25\Backup-Laptop" & "\" & StrUsername & "\" & StrPCname
'Wscript.Echo "Backup-Laptop\brugernavn\PC-navn er oprettet på XXXsrv25"
ElseIf ObjFSO.FolderExists("\\XXXsrv25\Backup-Laptop" & "\" & StrUsername & "\" & StrPCname) then
'Wscript.Echo "Backup-Laptop\brugernavn\PC-navn er oprettet, start backup"
End If
End If
'Skjuler drev U for brugeren
ObjShell.RegWrite "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDrives", 1048576, "REG_DWORD"
ObjShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDrives", 1048576, "REG_DWORD"
'****Dette virker hvis jeg kalder Left ved at skrive en sti fast****
'SyncToy programet opretter "folder pair" og backuppen køres
'shell "C:\SyncToy\SyncToy.exe -d(left=C:\XXX,right=U:\" & StrUsername & "\" & StrPCname & "\,name=XXX,operation=Echo)"
'shell """C:\SyncToy\SyncToyCmd.exe"" -Rxxx"
'****Det er i dette at problemet er, jeg vil gerne****
'****kalde Left=specialFolders, men får en fejl****
shell "C:\SyncToy\SyncToy.exe -d(left= " & .specialFolders",right=U:\" & StrUsername & "\" & StrPCname & "\,name=XXX,operation=Echo)"
shell """C:\SyncToy\SyncToyCmd.exe"" -Rxxx"