Avatar billede tdamgaard Nybegynder
23. april 2003 - 10:42 Der er 2 kommentarer og
1 løsning

Logon script med versionscheck?

Jeg skal have lavet et logon script, som kopier 1 skabelon (fra en server) ud til alle mine klienter (Windows 2000 maskiner).
Og efterfølgende (ved logon) skal scriptet sørge for at skabelon på klienterne er samme version som den på serveren (skabelonen er et excel ark).

Hvordan skrives sådan et script/versionscheck lettest?
Må gerne være en .bat fil, da jeg ikke er noget haj til .vbs  :-)
Avatar billede jesper.sommer Nybegynder
23. april 2003 - 12:58 #1
Det kan ikke rigtigt lade sig gøre i en klassisk Batch fil, så du kommer nok ikke uden om at bruge VBS. Men det er nu heller ikke sååååå svært igen :-)

Et sted i din eksisterende LogOn.BAT fil, skal du indsætte fælgende kommando:

CSCRIPT \\minServer\netlogon\LogOn.vbs

Herefter skal du lave "LogOn.VBS" filen. Jeg bruger selv Visual InterDev fordi jeg er doven, men NOTEPAD.EXE kan også sagtens bruges.

Hvis du er ny med VBS så tillæg dig en god vane: Skriv "Option Explicit" i toppen af alle dine VBS filer. Det tvinger fortolkeren til at forvente, at alle variable er forud-definerede i scriptet. Det gøres med kaldet "DIM", og fordelen ved at definere alle variable først er, at du bedre bevarer overblikket over HVAD der er variabler, og HVAD der er funktionskald eller eksisterende objekter. Hvis man ikke er vant til at læse VBS kode er det en god hjælp at kunne genkende variable-navne midt i koden !

Jeg vil anbefale, at du skriver en slags versionsnummer ned i hver enkelt maskines registreringsdatabase. Du kan selv oprette en nøgle til formålet, og derefter kan du både læse og opdatere den - i fred for farlige brugere eller pilfingre der sletter TXT filer på harddisken... Brug et sted som f.eks. "HKLM\SOFTWARE\My_Stuff_Version_Thingy\" og opret værdier dér.

I det følgende kodeeksempel læses der værdier fra en RegistreringsDB nøgle:

Function ReadRegValue(sRegKey)     
  ReadRegValue=""
  On Error Resume Next
  ReadRegValue= WshShell.RegRead(CONSTsRegPath&sRegKey)
End Function

Men inden da, skulle du måske kaste dig i krig med introduktionen til VBS, samt kigge på dokumentationen :-) Du finder begge dele på:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/vtoriVBScript.asp

Du behøver ikke læse så meget af det, men du skal nok lige bruge en lille time på at forstå Microsofts terminologier, samt lave et par simple kode-eksempler. Introduktionen er faktisk "ok" at gå igennem.

Når du føler du har forstået de mest simple ting i VBS, og måske har lavet en lille simpel fil du kan køre i en kommandoprompt, kan du begynde med de spændende ting ! Det er f.eks. at tilgå alle mulige dele af operativsystemet (gennem VBS) så du netop kan tilgå Registreringsdatabasen, filsystemet, installere printerdrivere automatisk, osv. osv. Du finder oplysninger om de fleste af disse ting gennem følgende link:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/wsoriWindowsScriptHost.asp

Når du har kigget på begge links, kan du garanteret få lidt mere hjælp her på Eksperten, til nogle mere konkrete opgaver og kode eksempler.

God fornøjelse...
Avatar billede dinkie Nybegynder
23. april 2003 - 15:08 #2
Jeg kan ikke forestille mig at filen er så pokkers stor.. Så kan det ikke bedre betale sig at bare kopiere den hver gang?

Ellers kan du jo hvis du har skrevet versions nummeret inde i selv file bruge:

Find "Ver#" c:\filer\skableon.xlt

Og så lave en IF statement ud fra errorlevel der enten springer over eller xcopy'er filen til disken..
Avatar billede jesper.sommer Nybegynder
23. april 2003 - 16:06 #3
Tjah, det er da rigtigt at man også bare kan kopiere filen hver gang... men hvis man absolut ikke VIL bruge VBS ;-) og lave en hurtig løsning, så er følgende måske nemmere:

1.) Lav en ny batchfil der kun udfører kopieringsrutinen, med navnet "MinKopiering.BAT" eller lign. Her kan man kopiere flere filer, samt evt. slette gamle versions-filer.

2.) Indsæt følgende i LogOn scriptet:
IF NOT EXIST c:\MinTeknikMappe\minVersion1.ver CALL MinKopiering.BAT

3.) Lad den sidste linie i "MinKopiering.BAT" være følgende:
ECHO VERSIONFILE > c:\MinTeknikMappe\minVersion1.ver

4.) Når der skal rulles nye filer ud, skal man blot rette selve filnavnet (der anvendes som versionsnummer) i LogOn script og MinKopiering.BAT.

Det er færdig på 5 min...

Skal man blære sig for chefen kan man evt. også lave en log-funktion på et fælles-drev, som man sætter ind i "MinKopiering.BAT" filen med følgende kommando:

ECHO *** Ny registering *** >> G:\MinKopieringsLog.TXT
DATE /T >> G:\MinKopieringsLog.TXT
TIME /T >> G:\MinKopieringsLog.TXT
ECHO Bruger %USERNAME% fik en ny fil til computer %COMPUTERNAME% >> G:\MinKopieringsLog.TXT
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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