20. april 2005 - 17:54Der er
17 kommentarer og 1 løsning
Via Vbscript Læse en mappe i regedit på maskinen
Hej Alle sammen
Jeg vil hører om i kloge mennesker kan hjælpe mig.
Jeg skal lave et VBscript, hvor den skal spørge om en mappe eksisterer i regedit/registrerings databasen på en maskine ? Og hvis mappen findes så skal den af installere xxx programmer.
Jeg har lavet lidt af vbscriptet, men den del med spørge via vbscript om en mappen findes eller ej , kan jeg ikke lige finde ud af.
Jeg tilføjer det script jeg har lavet:
Dim MyShell, SPSS11
Set MyShell = wscript.CreateObject("WScript.Shell") Set SPSS11 = CreateObject("Scripting.FileSystemObject")
On Error Resume Next 'Tester om SPSS 11 er installeret- JEG VED IKKE HVORDAN JEG SKAL FÅ DEN AT LÆSE EN REG MAPPE OG HVIS DEN FINDES SKAL DEN AFINSTALLERE DE NEDSTÅENDE PAKKER. 'if SPSS11.FileExists( ) Then
'Afinstallere SPSS11 ved brug af msiexec commadoen og venter til den er færdig før den fortsætter. Return = MyShell.Run ("C:\WINDOWS\system32\Msiexec /qb- /x \\server1\APP\SPSS-XII\SPSS_Danish.msi",1,true) ' WScript.Echo("Afinstalleret SPSS11") WScript.Sleep(3000)
'Afinstallere Spss12 ved brug af msiexec commadoen og venter til den er færdig før den fortsætter. Return = MyShell.Run ("C:\WINDOWS\system32\Msiexec /qb- /x \\server1\APP\SPSS-XII\SPSS12_Danish.msi",1,true) ' WScript.Echo("Afinstalleret SPSS12") WScript.Sleep(3000)
Hvis du f.eks. ved, at der skal være en nøgle, der hedder SPSS i HKLM\Software, kan du gøre følgende :
Set MyShell = wscript.CreateObject("WScript.Shell") Set SPSS11 = CreateObject("Scripting.FileSystemObject") Const HKEY_LOCAL_MACHINE = &H80000002 strComputer = "." Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _ strComputer & "\root\default:StdRegProv") strKeyPath = "Software" oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys For Each subkey In arrSubKeys If UCase(subkey) = "SPSS" Then
Return = MyShell.Run ("C:\WINDOWS\system32\Msiexec /qb- /x \\server1\APP\SPSS-XII\SPSS_Danish.msi",1,true) WScript.Sleep(3000) Return = MyShell.Run ("C:\WINDOWS\system32\Msiexec /qb- /x \\server1\APP\SPSS-XII\SPSS12_Danish.msi",1,true) WScript.Sleep(3000) End If Next
jeg har prøvet at med et vbscript og fyrer denne kode af, men den til stadig ikke slette den mappe i reg´en. Det var current user ,og ikke hklm.... men når jeg fyrer det af i VB script, sker der ik noget.... any help ......
Jeg har lige fundet ud af hvorfor det ikke virkede... Det var fordi at under mappen 11.0 hvad jeg under mapper, som den åbenbart ikke sletter. Jeg prøvede så at slette alle undermapperne manulet, og så kørte vbscriptet så slettede den så mappen 11.0, altså HKEY_CURRENT_USER\Software\SPSS\SPSS for Windows\11.0
Hvis jeg så skal have slettet sub mapper og keys som ligger under mappen 11.0, hvordan gør man det så :
hvordan vil man tilføje det i det nuværende script som du lavede :
Dit script virker, den sletter mappen 11.0, hvis der ik er noget i mappen. Men hvis der er undermapper/keys, kan den ikke slette det. Det er en xp buildin bruger, admin bruger jeg tester med, så det er ikke rettigheder i den forstand.
Er der ikke en kommando som kan slette hele mappen og under mapper ? og hvis ik, hvordan kan man så tilføje i det script som du lavede at den også skal slette submapper/keys?
Jo, det er der faktisk :) Det var derfor jeg spurgte til Win versionen. Der er en kommando, der hedder REG i Xp, der er specielt mindet på opgaver som dette. Prøv følgende :
Set shell = WScript.CreateObject("WScript.Shell") shell.run "REG DELETE ""HKCU\Software\SPSS\SPSS for Windows\11.0"" /f",0,True
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.