Er der nogen der kan hjælpe mig her? Jeg vil gerne have flyttet en brugers Foretrukne ud på hans homeshare i en mappe der måske ikke er oprettet..
Her er hvad jeg har.. Men den fejler. Jeg har på fornemmelsen at der er fordi den ikke kan finde brugerens H-drev, men hvad siger i? I stedet for H-drev.. kan man så skrive %homeshare% eller noget i den stil?
Det skal lige siges at jeg
Option Explicit ' On Error Resume Next
Const HKEY_CURRENT_USER = &H80000001
Dim strComputer Dim objRegistry Dim strKeyPath Dim strValueName Dim strValue Dim wsh Dim Profile Dim filesys Dim fs Dim StrFolder Dim objFSO
strFolder = "H:\Bruger Data\"
set objFSO = createobject("Scripting.FileSystemObject")
if objFSO.FolderExists(strFolder) = False then objFSO.CreateFolder strFolder
end if
strComputer = "."
Set objRegistry = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
set wsh = createobject("WScript.Shell") Set fs = CreateObject("Scripting.FileSystemObject") profile = wsh.ExpandEnvironmentStrings("%UserProfile%")
set wsh = createobject("WScript.Shell") profile = wsh.ExpandEnvironmentStrings("%UserProfile%")
set filesys = CreateObject("Scripting.FileSystemObject") If filesys.FolderExists("H:\Foretrukne\") Then filesys.CopyFolder profile & "\Foretrukne", "H:\Bruger Data\Foretrukne" else filesys.createfolder("H:\Foretrukne") filesys.CopyFolder profile & "\Foretrukne", "H:\Bruger Data\Foretrukne" end if
'Hvis du bruger den 'SpecialFolders property' kan du spring alle de trin over der har at gøre med at 'fastsætte stien til brugerens profil og hans/hendes Foretrukne mappe. Du behøver faktisk ikke 'flere linjer kode end dem her i en vbs fil. Jeg har ikke et hjemmenetværk så jeg har kunne teste om 'den også ville kunne finde et H: drev som ligger på et netværk ( har jeg forstået det rigtigt at det er det det er?) 'Jeg kan dog ikke forestille mig at det ikke skulle virke.
Set oShell = CreateObject("WScript.Shell") Set Fso = CreateObject("Scripting.FileSystemObject")
FPath = oShell.SpecialFolders("Favorites")
If(fso.FolderExists("H:\Bruger Data\Foretrukne")) Then Else Fso.CreateFolder("H:\Bruger Data\Foretrukne") end if
Årrgh! Undskyld. Der er en lille fejl her, jeg har overset. Kommandoen 'CreateFolder' kan kun oprette en led ad gangen i stien. Så hvis mappen 'H:\Bruger Data' ikke eksisterer så får man en fejlmelding hvis man forsøger med 'Fso.CreateFolder("H:\Bruger Data\Foretrukne\")' Først skal man oprette 'H:\Bruger Data' så dernæst 'H:\Bruger Data\Foretrukne'
således:
Set oShell = CreateObject("WScript.Shell") Set Fso = CreateObject("Scripting.FileSystemObject")
FPath = oShell.SpecialFolders("Favorites")
If(fso.FolderExists("H:\Bruger Data")) Then Else Fso.CreateFolder("H:\Bruger Data") end if
If(fso.FolderExists("H:\Bruge Data\Foretrukne\")) Then Else Fso.CreateFolder("H:\Bruger Data\Foretrukne\") end if
%EtEllerAndet% er en windows miljøvariabel og kan sættes individuelt for maskine til maskine og måske for brugerprofiler. Hvis miljøvariable ud over dem der er som standard skal bruges, skal du nok enten oprette den i dit script før alt det andet, eller undgå at bruge alternative miljøvariable som du ikke er sikker på eksisterer på en standard-installation af windows xp/Vista.
Jeg har siddet og fiflet med et lille script, der udfører det du spørger om. Jeg ved ikke præcis hvilken mappe på serveren hver bruger får mappet som sit h-drev, så jeg er gået ud fra at det er brugerens hjemmemappe - altså noget i stil med en mappe der hedder det samme som brugerens brugernavn.
Der laves tjek på om h-drevet er mappet fra start og det mappes hvis det ikke er der. Der tjekkes på om de forskellige mapper eksisterer og de oprettes hvis de ikke eksisterer. Min foretrukne hedder favorites da jeg bruger en engelsk XP, men dette kan jo rettes.
Set wshShell = CreateObject("WScript.Shell") strLokalFolderPath = wshShell.ExpandEnvironmentStrings("%USERPROFILE%") & "\Favorites" Set wshShell = Nothing
Set objFSO = CreateObject("Scripting.FileSystemObject")
' Tjek om H-drevet er mappet bolDrivePresent = False Set colDrives = objFSO.Drives For Each objDiskDrive In colDrives If objDiskDrive.DriveLetter = Left(strDriveLetter, 1) Then bolDrivePresent = True Exit For End If Next Set colDrives = Nothing
' Map drevet hvis det ikke blev fundet If Not bolDrivePresent Then Set objNetwork = WScript.CreateObject("WSCript.Network") strUsername = objNetwork.UserName On Error Resume Next objNetwork.MapNetworkDrive strDriveLetter, strServer & strUsername On Error GoTo 0 Set objNetwork = Nothing End If
' Tjek om de respektive mapper eksisterer - Opret dem hvis de ikke gør If objFSO.FolderExists(strLokalFolderPath) Then If Not objFSO.FolderExists(strDriveLetter & strRemoteFolderPath) Then On Error Resume Next objFSO.CreateFolder strDriveLetter & strRemoteFolderPath If Not objFSO.FolderExists(strDriveLetter & strRemoteFolderPath & strTargetFolder) Then objFSO.CreateFolder strDriveLetter & strRemoteFolderPath & strTargetFolder End If On Error GoTo 0 End If
' Kopier foretrukne til netværkshare On Error Resume Next objFSO.CopyFolder strLokalFolderPath, strDriveLetter & strRemoteFolderPath & strTargetFolder, True On Error GoTo 0 End If
Håber det stadig kan bruges...
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.