Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

Softwareversiecontrole via script?

Pagina: 1
Acties:

  • YellowOnline
  • Registratie: Januari 2005
  • Laatst online: 28-03-2023

YellowOnline

BEATI PAVPERES SPIRITV

Topicstarter
Ik durf bijna niet posten uit vrees niet professioneel genoeg over te komen, maar ik waag het er toch op...

We hebben hier (nou ja, werk hier nog maar 2 weken) een gezellig netwerkje van een 200tal workstations (branch van een veel groter netwerk) dat op twee verschillende manieren gemanaged wordt: ten dele vanuit de USA en ten dele lokaal. Sofware updates worden bizar genoeg - voor een van 's werelds grootste multinationals - niet centraal gemanaged, dus elke keer ik een PC onder ogen krijgen (hetzij via VNC, hetzij via echt) moet ik van verschillende softwareproducten de versienummers in het oog houden. Bepaalde bedrijfsspecifieke software word om de twee weken geupdate waardoor we veel tijd verliezen met één voor één al die computers te controleren op hun versie. Ik weet dat het onzinnig klinkt, maar zo gaat het hier blijkbaar.

Om dit werk te vereenvoudigen bedacht ik dat er een mogelijkheid zou moeten zijn om iets te scripten dat in één keer op alle PCs (een) bepaalde registry key(s) opvraagt en slechts één keer om de user/pass combo vraagt. Dit zou enorm veel tijd besparen die we nuttiger kunnen gebruiken dan op 200 PCs aanloggen, versionchecken en uitloggen.

Hier bestaat uiteraard commerciele software voor, maar de bezwaren zijn 1) not compliant with the company policy; 2) we willen geen extra clients per PC installeren; 3) ik ben niet in de positie om budgetten te vragen :-)

Kortom: ik werk voor het eerst in een echt grote netwerkomgeving en zie dat dingen beter kunnen. Het ontbreekt me helaas wat aan ervaring met specifieke oplossingen. Google is my friend, maar ik vind enkel commerciele network inventory software die alle bovenstaande bezwaren schendt. De weinige freeware alternatieven op sourceforge zijn, behalve het financiele plaatje, van hetzelfde bedje ziek. Ik vind ook één iemand die hetzelfde als wat ik zoek in C# maakt (http://bytes.com/groups/n...ad-registry-key-all-users), maar er staat niets van zijn code vermeld. Het doet me ook vrezen dat een registerkey uitlezen niet zo simpel is als het lijkt en dat ik een stukje zal moeten programmeren. In dat geval zoek ik geen kant en klare code (niet dat het niet mag), maar zou een duwtje in de goeie richting toch welkom zijn.

Alvast bedankt.

Edit.:

PS. Alle machines draaien wel SMS, maar wij hebben geen toegang tot SMS (vraag me niet waarom) en het zou sowieso de versienummers van specifieke software niet weergeven (veel buggy DB frontends, vandaar de noodzaak voor updaten... als ik nog één keer een error 429 "ActiveX component could not be created" zie sla ik tilt...).

[ Voor 6% gewijzigd door YellowOnline op 28-01-2009 16:20 ]


  • SteeringWheel
  • Registratie: Augustus 2004
  • Laatst online: 16:35
Was idd waarschijnlijk beter op z'n plaats in een anders subforum maar alla :)

Ik denk dat het lastig is zonder script/programmeerervaring.

Maar je kunt kijken in HKLM\Software\Microsoft\Windows\Currentversion\Uninstall en zien of je daar wat aan hebt. Dan met vbs wat scripten wat die info eruit haalt (shell.regread).

Zou ook kunnen met WMI (Win32_Product class). Is denk ik ook nog wat makkelijker. Download in dat geval eens de script-o-matic van de MS site.

Heb je in ieder geval wat om te googlen ;)

A forum post should be like a skirt. Long enough to cover the subject material, but short enough to keep things interesting.


  • Pimmerd
  • Registratie: Mei 2006
  • Laatst online: 14-11 21:09
Je zou hier eens naar kunnen kijken:
http://secunia.com/software_inspector/

Online scanner m.b.v. een java applet, daar moet vast wel iets leuks mee te doen zijn. :)

  • LuckY
  • Registratie: December 2007
  • Niet online
OCS inventory heb ik een tijdje getest zover ik in de korte testperiode zag was Is hij gratis .

Ik weet niet hoe goed hij de versie's kan weergeven.
Quote van de site
Operating System devicedevice Name (Linux, Windows 95/98/Me/NT Workstation/NT Server/2000 Professional/2000 Server...), Version (4.0.1381 for NT4, 4.10.2222 for 98 SE...), Comments (Operating System Release for Windows 9X, Service Packs for NT/2000/XP), Registered company, Registered owner, Registered product ID.

Software device extracted from the registry as shown in the "Add/Remove software" control panel applet: Name, Publisher, Version.

Registry values device if you want to query for some key under one of Windows registry hives.
Link van een screenshot
Pimmerd schreef op woensdag 28 januari 2009 @ 20:38:
Je zou hier eens naar kunnen kijken:
http://secunia.com/software_inspector/

Online scanner m.b.v. een java applet, daar moet vast wel iets leuks mee te doen zijn. :)
En dan elke user een scherm laten krijgen wat er out of date is :+

[ Voor 91% gewijzigd door LuckY op 28-01-2009 20:46 ]


  • YellowOnline
  • Registratie: Januari 2005
  • Laatst online: 28-03-2023

YellowOnline

BEATI PAVPERES SPIRITV

Topicstarter
Bedankt voor jullie reacties.

Pimmerds suggestie doet niet helemaal wat ik wil en is bovendien niet gratis.

Het programma dat LuckyY aanreikt doet wél wat ik wil, is gratis maar... is zoals de meeste oplossingen gebaseerd op clients die de info lokaal verzamelen en doorsturen. Dat is helaas een 'no can do'.

Ik ga denk ik aan de slag met SteeringWheels suggestie - ik ga alleen een snelcursus VBS moeten volgen (ingewikkelde Access controls lukten uiteindelijk ook zonder voorkennis). Die Script-O-Matic ziet er trouwens voor andere doeleinden ook interessant uit. Ik zal het morgen eens uitproberen wanneer ik op een Windows PC werk.

  • Thijs B
  • Registratie: Augustus 1999
  • Niet online
Eerst leren scripten in vbs, kix, powershell of mijn favoriet voor dit soort klusjes autoitscript

eerst per pakket uitvinden via welke reg key, file, ini, cfg of zelfs via file eigenschappen je de versie kan bepalen.

Vervolgens gegevens uitlezen, normaal gesproken kan je remote registry en files uitlezen.

met een: IF versie <> gewenste versie then
pc's met onjuiste versie weg schrijven naar een log file of mailtje genereren en deze verzamelen in een mailbox.

Als je pc naamgeving goed gestandaardiseerd is kan je het geheel vrij eenvoudig in een loopje gooien en in een enkele run pc1 tm pc200 scannen.

En als je tijd teveel hebt :), kan je alle data zo verzamelen en in mysql db dumpen en dan weer mooi php page erbij om het op te vragen..

Uiteraard zou het uitrollen van software via AD/Login script je een berg tijd besparen..

  • YellowOnline
  • Registratie: Januari 2005
  • Laatst online: 28-03-2023

YellowOnline

BEATI PAVPERES SPIRITV

Topicstarter
Thijs B schreef op woensdag 28 januari 2009 @ 21:37:
Eerst leren scripten in vbs, kix, powershell of mijn favoriet voor dit soort klusjes autoitscript

eerst per pakket uitvinden via welke reg key, file, ini, cfg of zelfs via file eigenschappen je de versie kan bepalen.

Vervolgens gegevens uitlezen, normaal gesproken kan je remote registry en files uitlezen.

met een: IF versie <> gewenste versie then
pc's met onjuiste versie weg schrijven naar een log file of mailtje genereren en deze verzamelen in een mailbox.

Als je pc naamgeving goed gestandaardiseerd is kan je het geheel vrij eenvoudig in een loopje gooien en in een enkele run pc1 tm pc200 scannen.

En als je tijd teveel hebt :), kan je alle data zo verzamelen en in mysql db dumpen en dan weer mooi php page erbij om het op te vragen..

Uiteraard zou het uitrollen van software via AD/Login script je een berg tijd besparen..
Dat is samengevat het vage idee dat ik inderdaad had om dit aan te pakken. De PC naamgeving is uiteraard volgens een vaste syntax (bv. LAXTEC00001 voor een PC van de technische dienst in Los Angeles; fictief voorbeeld). Zo'n script maken dat die info lokaal opvraagt lijkt redelijk eenvoudig - met wat googlen vind ik voldoende snippets om zonder al te veel programmeerkennis iets in elkaar te flansen. De moeilijkheid leek me vooral om dit via het netwerk te doen zonder op elke PC apart te moeten inloggen.

  • Kalush
  • Registratie: Januari 2007
  • Laatst online: 26-11 22:23
Probeer eens met psinfo van pstools. Met -s kan je geinstalleerde software achterhalen.
Enige nadeel is dat de pc/server wel aan moet staan en je moet localadmin rechten hebben.

http://technet.microsoft....ysinternals/bb897550.aspx

Is wel een quick-and-dirty methode natuurlijk.

Verwijderd

Al eens naar lansweeper gekeken?
Is helemaal gratis, makkelijk in een loginscript te zetten of, mocht dit niet kunnen, via een soort van "scan" script je ip range aflopen en m.b.v. psexec lansweeper client draaien op de remote pc's.

  • YellowOnline
  • Registratie: Januari 2005
  • Laatst online: 28-03-2023

YellowOnline

BEATI PAVPERES SPIRITV

Topicstarter
MrMenor
Ja, ik had die al gezien, maar die werkt met clients.
Kalush schreef op woensdag 28 januari 2009 @ 23:31:
Probeer eens met psinfo van pstools. Met -s kan je geinstalleerde software achterhalen.
Enige nadeel is dat de pc/server wel aan moet staan en je moet localadmin rechten hebben.

http://technet.microsoft....ysinternals/bb897550.aspx

Is wel een quick-and-dirty methode natuurlijk.
Ideaal \o/ Ik ga aan het scripten met deze tool! Dankuwel!

  • SteeringWheel
  • Registratie: Augustus 2004
  • Laatst online: 16:35
Die lansweeper ziet er anders ook veelbelovend uit en heeft volgens de website geen clients nodig. Alleen maar voordelen:
- kost veel minder tijd (je hoeft niet zelf te scripten, al is het wel handig om te kunnen maar begin dan met iets simpelers)
- gratis
- meer mogelijkheden/info
- opslag in sql db
- makkelijke interface

A forum post should be like a skirt. Long enough to cover the subject material, but short enough to keep things interesting.


  • YellowOnline
  • Registratie: Januari 2005
  • Laatst online: 28-03-2023

YellowOnline

BEATI PAVPERES SPIRITV

Topicstarter
Hmz, ik dacht nochtans echt dat lansweeper clients nodig had maar nu zie ik dat ook staan ("no clients"). Ik ga het eens proberen en dan zie ik het wel.

De code was anders wel aan het vorderen, kan misschien nog leuk zijn voor iemand anders:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
@ECHO OFF
GOTO Menu

:Menu
CLS
ECHO. CHOOSE
ECHO. 1. Search in existing version database (fast)
ECHO. 2. Search in new version database (slow)
ECHO. 3. Edit search strings
ECHO. 4. Edit network
ECHO.
ECHO. q. Quit
GOTO GetChoice

:GetChoice 
SET /p _choice=
IF "%_choice%"=="1" goto GetOutput
IF "%_choice%"=="2" goto GetResults
IF "%_choice%"=="3" goto GetStrings
IF "%_choice%"=="4" goto GetNetwork
IF "%_choice%"=="q" EXIT
ECHO Invalid choice, please try again or press q to quit.
GOTO GetChoice

:GetStrings
NOTEPAD.EXE STRINGS.TXT
GOTO Menu

:GetNetwork
NOTEPAD.EXE NETWORK.TXT
GOTO Menu

:GetResults
REM Network.txt version
psinfo.exe @NETWORK.TXT -s -u <admin-accountnaam> -p <wachtwoord of leeg voor prompt> >RESULTS
REM Direct version
REM psinfo.exe \\<PC-naam> -s -u <admin-accountnaam> -p <wachtwoord of leeg voor prompt> >RESULTS
GOTO GetOutput

:GetOutput
findstr /S /I /G:STRINGS.TXT RESULTS >OUTPUT.TXT
SET _choice=
NOTEPAD.EXE OUTPUT.TXT
CLS
GOTO Menu
EXIT

REM In NETWORK.TXT gewoon een PC-Naam lijn per lijn.
REM In STRINGS.TXT gewoon een zoekopdracht lijn per lijn. Die opdracht mag uit meerdere woorden bestaan.
REM In RESULTS  staat eigenlijk de hele meuk - is gewoon tekstbestandje zonder extensie omdat...euh...het niet de bedoeling is dat je daar in kijkt



Zo, dit is de quick and dirty oplossing voor mijn probleem \o/

[ Voor 44% gewijzigd door YellowOnline op 29-01-2009 16:16 ]


  • axis
  • Registratie: Juni 2000
  • Laatst online: 26-01-2023
Als ik op mijn vista pc uitvoer:

reg query \\remotepc\HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall /S

Krijg ik de alle info die je volgens mij nodig hebt, alleen dan wordt het nog een kwestie van dat alles goed parsen :)

Two advices for network troubleshooting.. learn to draw diagrams in Visio, and THINK IN LAYERS!

Pagina: 1