Avatar billede mr_cash Nybegynder
20. april 2005 - 17:54 Der 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)

Else
'Afslutter script
WScript.Quit(0)
End if
Avatar billede killerclown Nybegynder
24. april 2005 - 22:22 #1
Hej mr. cash !
Ved du ikke hvilken nøgle du skal lede efter i regg'en eller hvad ?
SPSS, er det datamining-produktet eller hyr ?

/Killer
Avatar billede killerclown Nybegynder
24. april 2005 - 22:50 #2
Jeg fortsætter lige her :)

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
Avatar billede mr_cash Nybegynder
27. april 2005 - 09:00 #3
Hi KillerClown

Hvor får du denne værdi fra " &H80000002 " og hvordan kommer man frem til den.

Cash
Avatar billede mr_cash Nybegynder
27. april 2005 - 09:04 #4
Hey killer

Du er nok lidt Vb haj end jeg er, så jeg vil lige spørge dig om noget.
hvordan sletter man end reg mappe, eksempel.

HKLM\Software\spss11

Hvis du kan gøre det meget simpel som muligt tak. :-)
Avatar billede killerclown Nybegynder
27. april 2005 - 09:11 #5
Sure !
Denne stump sletter nøglen "hej" under HKLM\software

Const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
    strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\hej"
oReg.DeleteKey HKEY_LOCAL_MACHINE, strKeyPath

M.h.t. &H80000002 har jeg faktisk aldrig rigtig tænkt over det, men kan da lige undersøge nærmere :o)

/Killer
Avatar billede killerclown Nybegynder
27. april 2005 - 09:13 #6
Jeg tror egentlig det er noget med WMI måden, at se registry'et på
Avatar billede mr_cash Nybegynder
27. april 2005 - 11:13 #7
Hi Killer

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  ......

Const HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
    strComputer & "\root\default:StdRegProv")
strKeyPath = "Software\SPSS\SPSS for Windows\11.0"
oReg.DeleteKey HKEY_CURRENT_USER, strKeyPath
Avatar billede mr_cash Nybegynder
27. april 2005 - 11:15 #8
jeg kom nemlig til at skriver forket før, da j skrev hklm, som skulle være, hkcu
Avatar billede killerclown Nybegynder
27. april 2005 - 11:23 #9
Det er sgu' wierd
Den sletter 11.0 her, når jeg kører den.

Er du sikker på, at brugeren du kører scriptet som har rettigheder til, at slette nøglen ?

/Killer
Avatar billede mr_cash Nybegynder
27. april 2005 - 11:37 #10
hmmmmmmmm.... det forstår jeg ikke..

jo det er en xp buildin bruger, admin bruger, som jeg tester med...
det er et vbscript du kører ik ??

alternativ, kan jeg få dig til at maile mig det som virker hos dig ??
mail add er :  sheikh_kashif_sethi@hotmail.com

thnx man
Avatar billede mr_cash Nybegynder
27. april 2005 - 11:49 #11
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 :

Const HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
    strComputer & "\root\default:StdRegProv")
strKeyPath = "Software\SPSS\SPSS for Windows\11.0"
oReg.DeleteKey HKEY_CURRENT_USER, strKeyPath

cash...
Avatar billede mr_cash Nybegynder
27. april 2005 - 12:08 #12
Det jeg bare vil have er at den sletter alt hvad der ligger i mappen af undermapper/keys og mappen den selv, 11.0

ser frem til at hører fra dig :-)
Avatar billede killerclown Nybegynder
27. april 2005 - 12:19 #13
Hey cash !
Er det Windows Xp eller Win2K det drejer sig om ?

/Killer
Avatar billede mr_cash Nybegynder
27. april 2005 - 12:25 #14
Hey Killer

Det er Xp...

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?
Avatar billede killerclown Nybegynder
27. april 2005 - 12:27 #15
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

/Killer
Avatar billede mr_cash Nybegynder
27. april 2005 - 12:35 #16
U r the Man Killer.......Det virker den fjener alt.

/f",0,True  = Hvad står det for

Killer, hak lige af i svar og send ,så for du lige dine velfortjent point.

Takker mange gange og nu ved jeg hvem j skal tage fat i når jeg har VB problemer :-)
Avatar billede killerclown Nybegynder
27. april 2005 - 12:48 #17
Mange tak for ros :o)

Der er indtil flere switches for shell.run metoden.
Her er et godt link til emnet :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/wsmthrun.asp

/Killer
Avatar billede mr_cash Nybegynder
27. april 2005 - 13:22 #18
Takker det vil jeg lige læse an.

great job man..... :-)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester