16. november 2007 - 13:37Der er
9 kommentarer og 1 løsning
Vbscript ved installation og afinstallation af applikation
Hej Alle
I forbindelse med installation af msi pakke, skal scriptet lave :
Det scriptet skal lave er , læse hostname ( workstation name ) også lave et tekst dokument og gemme det som syntakts hostnavn.add ( workstation navn ) og inde i det dokument , skal den skrive hvilke OS det er : Feks ( Win2000 eller WinXP ) Udover det skal dokumentet gemmes på en server : eksempel på stien \\produktion\lan\add\
Scriptet skal også håndtere ved af installation af msi pakke, skal den gemme et tekst dokument, under \\produktion\lan\remove\ med syntakst hostnavn.rem og i dette tekst dokument, skal der også stå hvilket OS det er.
Den med OS er ikke så nem for systemet rapporter Windows_NT for en Windows XP, hvad den siger for 2000 ved jeg ikke, men kig på dette eksempel som gemmer i c:\variabel.txt:
Dim objWSH Dim objUserVariables Dim objSystemVariables Set objWSH = CreateObject("WScript.Shell")
On Error Resume Next Set WshShell=WScript.CreateObject("WScript.Shell") pcnavn= WshShell.RegRead( "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\ComputerName\ActiveComputerName\ComputerName")
Set objSystemVariables = objWSH.Environment("SYSTEM") styresystem = (objSystemVariables("OS"))
Problemet med OS navnet er at både 2000 og xp begge bare er overbygninger på Windows NT, så systemvariablen ser den som værende samme styresystem. Kunsten må derfor være at finde noget der adskiller de to systemer, f.eks i registreringsdatabassen. Jeg har kun XP herhjemme så jeg kan ikke finde noget unikt for 2000 før tidligst på mandag.
Med hensyn til filnavnet skal du blot ændre i fjerdesidste linje: Set objTextFile = objFSO.OpenTextFile ("c:\" & pcnavn & ".txt", ForAppending, True) eller Set objTextFile = objFSO.OpenTextFile ("\\server\sti\" & pcnavn & ".txt", ForAppending, True) hvis filen skal gemmes på en unc-sti.
Det blev alligevel ikke nødvendig at vente til mandag, jeg fandt løsningen på anden vis. Den sidste linje er bare med for at man kan se at der sker noget, den kan sagtens undværes.
Dim strComputer strComputer="." Set WshShell=WScript.CreateObject("WScript.Shell") Dim objWMIService, colItems Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem",,48) For Each objItem in colItems styresystem = objItem.Caption pcnavn = objItem.CSName Next txt = "Pc = " & pcnavn txt = txt & vbcrlf & "OS =" & styresystem Const ForAppending = 2 Set objFSO = CreateObject("Scripting.FileSystemObject") Set objTextFile = objFSO.OpenTextFile ("c:\" & pcnavn & ".txt", ForAppending, True) objTextFile.WriteLine(txt) objTextFile.Close WshShell.Popup strMessage,1,"Indstillingerne gemmes"
Hvis du ikke har fået de point, så opretter jeg et fiktiv spørgsmål, også kan du få de point som du har fortjent....forstå ikke hvorfor der står mit navn...!! ??? men sig lige til... thnx ..
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.