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

Beveiliging Serial poorten (en USB)

Pagina: 1
Acties:

Verwijderd

Topicstarter
Beste,

Ik kreeg vorige week de volgende opdracht bij mijn stage:

Ik moest er voor zorgen dat de seriele poorten(en usb later) van een computer 'gemonitort (?)' worden en er een melding komt als de verbinding verbroken wordt. Men wilt bereiken dat men een overzicht heeft of de verbindingen aangesloten zijn, en als dit niet zo is er een messagebox op het scherm komt. Dit proces moet best op de achtergrond gebeuren. Ik heb hiervoor enkele oplossingen gezocht (Batchfiles, freeware, ...) maar heb echter nog niets bruikbaars gevonden, daarom dat ik jullie hulp inroep. Alvast bedankt

Mvg,
Brecht

  • Question Mark
  • Registratie: Mei 2003
  • Nu online

Question Mark

Moderator SSC/WOS

F7 - Nee - Ja

Wat is het uiteindelijke doel? Men probeert te monitoren of usb-devices zonder toestemming meegenomen worden of iets dergelijks?

In dat geval kun je beter proberen om met Devcon te controleren of het device nog aanwezig is.

code:
1
2
Devcon /find
Find devices that match the specific hardware or instance ID.

MCSE NT4/2K/2K3, MCTS, MCITP, CCA, CCEA, CCEE, CCIA, CCNA, CCDA, CCNP, CCDP, VCP, CEH + zwemdiploma A & B


Verwijderd

Topicstarter
Omdat men vaak telefoontjes krijgt op de klantendienst dat het nietmeer werkt. Meestal is dit gewoon de verbinding die verbroken is tss het apparaat en de computer.

  • Question Mark
  • Registratie: Mei 2003
  • Nu online

Question Mark

Moderator SSC/WOS

F7 - Nee - Ja

Oké, maar dan zou je dus mijn oplossing kunnen proberen. Je kunt dan een batchfile maken die al-dan-niet handmatig gestart, of via een periodieke scheduled task controleerd of er nog verbinding is met het apparaat. :)

MCSE NT4/2K/2K3, MCTS, MCITP, CCA, CCEA, CCEE, CCIA, CCNA, CCDA, CCNP, CCDP, VCP, CEH + zwemdiploma A & B


  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Verwijderd schreef op dinsdag 11 mei 2010 @ 15:45:
Omdat men vaak telefoontjes krijgt op de klantendienst dat het nietmeer werkt. Meestal is dit gewoon de verbinding die verbroken is tss het apparaat en de computer.
Ehm simpele gedachte waarschijnlijk, maar als je nu gewoon eens betere foutmeldingen maakt?

Als "het" niet meer werkt is er blijkbaar iets wat niet meer werkt, laat dat iets dan gewoon eerst checken of alle requirements er zijn en anders een duidelijke foutmelding geven.

Continu monitoren ook al is het helemaal niet nodig genereert enkel maar foutieve meldingen / niet relevante meldingen etc.

Als ik een laptop + cd meeneem om bij een klant iets te tonen dan zal het mij echt mijn reet roesten of ik wel of niet kan printen op de kleurenprinter...

Of je hebt een serieus dramatisch netwerk / programma dat iedereen elke 5 minuten alle stekkers na moet kijken, of je volstaat gewoon met scheduled maintenance en requirements checks...

Verwijderd

Topicstarter
Question Mark schreef op dinsdag 11 mei 2010 @ 19:04:
Oké, maar dan zou je dus mijn oplossing kunnen proberen. Je kunt dan een batchfile maken die al-dan-niet handmatig gestart, of via een periodieke scheduled task controleerd of er nog verbinding is met het apparaat. :)
dmv devcon aan te halen en commando's voor devcon te zetten in die batchfile?
(het gaat eigenlijk om een kassasysteem(windows XP computer) met daarop randapparatuur(betaalterminal, inscan apparaat, printertje voor bonnetje). Hij zou dan eigenlijk al deze poorten moeten monitorren. Deze kassasystemen gaan naar de klant en is niet voor elke klant met dezelfde interface (dus aangeslote op dezelfde poorten) dus kan niet statische commando's gebruiken als: scan seriele poort 1 en 2 ofzo. Snap je?

Verwijderd

Topicstarter
Gomez12 schreef op dinsdag 11 mei 2010 @ 20:07:
[...]

Ehm simpele gedachte waarschijnlijk, maar als je nu gewoon eens betere foutmeldingen maakt?

Als "het" niet meer werkt is er blijkbaar iets wat niet meer werkt, laat dat iets dan gewoon eerst checken of alle requirements er zijn en anders een duidelijke foutmelding geven.

Continu monitoren ook al is het helemaal niet nodig genereert enkel maar foutieve meldingen / niet relevante meldingen etc.

Als ik een laptop + cd meeneem om bij een klant iets te tonen dan zal het mij echt mijn reet roesten of ik wel of niet kan printen op de kleurenprinter...

Of je hebt een serieus dramatisch netwerk / programma dat iedereen elke 5 minuten alle stekkers na moet kijken, of je volstaat gewoon met scheduled maintenance en requirements checks...
Het probleem dat zich ook ooit heeft voorgedaan naar het schijnt, is dat men in de winkel toen de kassierster niet keek, de betaalterminal losgekoppelt had en een eigen betaalterminal eraan gehangen die de bankkaarten logde (incl pincode) en deze later weer is komen omruilen.

  • Question Mark
  • Registratie: Mei 2003
  • Nu online

Question Mark

Moderator SSC/WOS

F7 - Nee - Ja

Verwijderd schreef op woensdag 12 mei 2010 @ 08:46:
[...]
Deze kassasystemen gaan naar de klant en is niet voor elke klant met dezelfde interface (dus aangeslote op dezelfde poorten) dus kan niet statische commando's gebruiken als: scan seriele poort 1 en 2 ofzo. Snap je?
Daarom moet je ook gaan scannen of het apparaat beschikbaar is, het maakt dan verder niet uit hoe (usb, serial, oid) dit aangesloten zit.

MCSE NT4/2K/2K3, MCTS, MCITP, CCA, CCEA, CCEE, CCIA, CCNA, CCDA, CCNP, CCDP, VCP, CEH + zwemdiploma A & B


  • Reptile209
  • Registratie: Juni 2001
  • Laatst online: 13:54

Reptile209

- gers -

Verwijderd schreef op woensdag 12 mei 2010 @ 08:48:
[...]


Het probleem dat zich ook ooit heeft voorgedaan naar het schijnt, is dat men in de winkel toen de kassierster niet keek, de betaalterminal losgekoppelt had en een eigen betaalterminal eraan gehangen die de bankkaarten logde (incl pincode) en deze later weer is komen omruilen.
Om zoiets te detecteren, moet je misschien wel elke 10 seconden gaan kijken wat er op je systeem gebeurt. Da's nogal een extra load voor een kassa (die daar niet persé voor ontworpen is). Kan je niet makkelijker naar 'hardwarematige' oplossingen kijken, zoals het vastplakken van de terminal, hangsloten, enz?
Volgens mij genereert een echte seriële poort (RS-232) geen events zoals een USB-poort dat doet bij het in- en uitpluggen van een kabel. Dat zou dus al heel lastig te detecteren zijn, tenzij je software een continue 'ping' naar de terminal doet.
Verwijderd schreef op dinsdag 11 mei 2010 @ 15:45:
Omdat men vaak telefoontjes krijgt op de klantendienst dat het nietmeer werkt. Meestal is dit gewoon de verbinding die verbroken is tss het apparaat en de computer.
Dit is dan weer een heel ander probleem/andere oorzaak: misschien is een kabeltje losgeschoten bij het schoonmaken van de toonbank. Maar ook dat zou je misschien al kunnen afvangen door kabeltjes met een druppie lijm vast te zetten, of door de terminal zo in te bouwen dat de kabels niet per ongeluk los kunnen gaan.

Zo scherp als een voetbal!


  • Frostbite
  • Registratie: Juni 2001
  • Laatst online: 16-11 12:03

Frostbite

🤦🏻‍♂️

Is dit niet wat voor je : http://usb-monitor3.software.informer.com/

Even gezocht op "Open Source usb monitor"

🎮 Steam
💻 i5 6600k | 16Gb DDR4 | 500Gb + 120Gb SSD | 2Tb HD | Zotac AMP GTX1080 | Dell S2716DG | W10Pro
📱 Samsung Galaxy S22+


  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Verwijderd schreef op woensdag 12 mei 2010 @ 08:48:
[...]


Het probleem dat zich ook ooit heeft voorgedaan naar het schijnt, is dat men in de winkel toen de kassierster niet keek, de betaalterminal losgekoppelt had en een eigen betaalterminal eraan gehangen die de bankkaarten logde (incl pincode) en deze later weer is komen omruilen.
Tja, en hoe wil je dat met polling op gaan lossen?

Pollingtijd laag genoeg zetten ( bijv 5 sec ) zodat je hoopt dat iemand niet in 5 sec een stekkertje kan omwisselen?

Het enige wat je nu afdwingt is dat iemand sneller moet gaan wisselen, je controleert nog steeds niet of het apparaat waarmee je communiceert wel het origineel is ( wat blijkbaar een requirement is )

Voor dit specifieke geval gewoon even contact opnemen met fabrikant en vragen hoe je in software zo'n pin-apparaat uniek kan identificeren... En dan daarop controleren bij aansturing pin-automaat.

Verwijderd

Topicstarter
Sc0rPi0N schreef op woensdag 12 mei 2010 @ 09:13:
Is dit niet wat voor je : http://usb-monitor3.software.informer.com/

Even gezocht op "Open Source usb monitor"
oke bedankt, had al paar free usb monitor prog's bekeken, zal deze ook weer eens even testen in een virtuele omgeving

Verwijderd

Topicstarter
Question Mark schreef op woensdag 12 mei 2010 @ 09:04:
[...]
Daarom moet je ook gaan scannen of het apparaat beschikbaar is, het maakt dan verder niet uit hoe (usb, serial, oid) dit aangesloten zit.
oke ben nu beetje info aan het opzoeken over devcon, en dan wat proberen. bedankt

Verwijderd

Topicstarter
Reptile209 schreef op woensdag 12 mei 2010 @ 09:12:
[...]

Om zoiets te detecteren, moet je misschien wel elke 10 seconden gaan kijken wat er op je systeem gebeurt. Da's nogal een extra load voor een kassa (die daar niet persé voor ontworpen is). Kan je niet makkelijker naar 'hardwarematige' oplossingen kijken, zoals het vastplakken van de terminal, hangsloten, enz?
Volgens mij genereert een echte seriële poort (RS-232) geen events zoals een USB-poort dat doet bij het in- en uitpluggen van een kabel. Dat zou dus al heel lastig te detecteren zijn, tenzij je software een continue 'ping' naar de terminal doet.


[...]

Dit is dan weer een heel ander probleem/andere oorzaak: misschien is een kabeltje losgeschoten bij het schoonmaken van de toonbank. Maar ook dat zou je misschien al kunnen afvangen door kabeltjes met een druppie lijm vast te zetten, of door de terminal zo in te bouwen dat de kabels niet per ongeluk los kunnen gaan.
Aan een hangslot had ik ook al zelf gedacht. Had ook al gezocht naar een slot voor aan een seriele poort ofzo, maar nog niets van gevonden. Om de kabeltjes met een druppie lijm vast te zetten lijkt me niet zo slim, wat dan als de betaalterminal niet werkt ofzo, dan is het moeilijk deze even te vervangen ofzo...

Verwijderd

Topicstarter
Gomez12 schreef op woensdag 12 mei 2010 @ 09:55:
[...]

Tja, en hoe wil je dat met polling op gaan lossen?

Pollingtijd laag genoeg zetten ( bijv 5 sec ) zodat je hoopt dat iemand niet in 5 sec een stekkertje kan omwisselen?

Het enige wat je nu afdwingt is dat iemand sneller moet gaan wisselen, je controleert nog steeds niet of het apparaat waarmee je communiceert wel het origineel is ( wat blijkbaar een requirement is )

Voor dit specifieke geval gewoon even contact opnemen met fabrikant en vragen hoe je in software zo'n pin-apparaat uniek kan identificeren... En dan daarop controleren bij aansturing pin-automaat.
Nuja, dat is niet het grootste probleem, maar eerder een verantwoordelijkheid van de kassierster zelf vind ik. Het gaat er eigenlijk gewoon op dat ze een melding krijgen als de kabels niet goed meer verbonden zijn zodat ze deze even zelf terug in kunnen steken ipv elke keer naar de technische dienst bellen.

  • Question Mark
  • Registratie: Mei 2003
  • Nu online

Question Mark

Moderator SSC/WOS

F7 - Nee - Ja

Gomez12 schreef op woensdag 12 mei 2010 @ 09:55:
[...]
Het enige wat je nu afdwingt is dat iemand sneller moet gaan wisselen, je controleert nog steeds niet of het apparaat waarmee je communiceert wel het origineel is ( wat blijkbaar een requirement is )
Wel als je met devcon scanned op het hardware-id van het apparaat. Dan zou het origineel al vervangen moeten worden door een device met exact hetzelfde hardware-id. Als ik even op mijn laptop test:

code:
1
2
3
4
5
6
7
8
9
10
11
D:\i386>devcon.exe hwids usb\*

USB\VID_03F0&PID_0423\070706100002
    Name: USB Mass Storage Device
    Hardware ID's:
        USB\VID_03F0&PID_0423&REV_0558
        USB\VID_03F0&PID_0423
    Compatible ID's:
        USB\Class_08&SubClass_06&Prot_50
        USB\Class_08&SubClass_06
        USB\Class_08

Ik vraag nu me devcon uit om een overzicht van alle USB devices. (ik neem even als voorbeeld mijn SD card reader). Je kunt zien dat deze herkenbaar is aan een hardware-id.

Er kan dan in een batchfile gecontroleerd worden of dit hardware-id aanwezig is:

code:
1
2
3
4
D:\i386>devcon find "USB\VID_03F0&PID_0423&REV_0558"

USB\VID_03F0&PID_0423\070706100002 : USB Mass Storage Device
1 matching device(s) found.


Wordt dit device vervangen door een ander (type), dan zal het hardware-id niet meer overeenkomen. Uiteraard zal TS wel moeten testen of elk apparaat inderdaad een uniek hardware-id heeft.

Zie verder ook dit artikel waar men op basis van hardware-id's het gebruik van bepaalde usb-devices tegengaat.

[ Voor 13% gewijzigd door Question Mark op 12-05-2010 11:09 ]

MCSE NT4/2K/2K3, MCTS, MCITP, CCA, CCEA, CCEE, CCIA, CCNA, CCDA, CCNP, CCDP, VCP, CEH + zwemdiploma A & B


Verwijderd

Topicstarter
Question Mark schreef op woensdag 12 mei 2010 @ 11:04:
[...]
Wel als je met devcon scanned op het hardware-id van het apparaat. Dan zou het origineel al vervangen moeten worden door een device met exact hetzelfde hardware-id. Als ik even op mijn laptop test:

code:
1
2
3
4
5
6
7
8
9
10
11
D:\i386>devcon.exe hwids usb\*

USB\VID_03F0&PID_0423\070706100002
    Name: USB Mass Storage Device
    Hardware ID's:
        USB\VID_03F0&PID_0423&REV_0558
        USB\VID_03F0&PID_0423
    Compatible ID's:
        USB\Class_08&SubClass_06&Prot_50
        USB\Class_08&SubClass_06
        USB\Class_08

Ik vraag nu me devcon uit om een overzicht van alle USB devices. (ik neem even als voorbeeld mijn SD card reader). Je kunt zien dat deze herkenbaar is aan een hardware-id.

Er kan dan in een batchfile gecontroleerd worden of dit hardware-id aanwezig is:

code:
1
2
3
4
D:\i386>devcon find "USB\VID_03F0&PID_0423&REV_0558"

USB\VID_03F0&PID_0423\070706100002 : USB Mass Storage Device
1 matching device(s) found.


Wordt dit device vervangen door een ander (type), dan zal het hardware-id niet meer overeenkomen. Uiteraard zal TS wel moeten testen of elk apparaat inderdaad een uniek hardware-id heeft.

Zie verder ook dit artikel waar men op basis van hardware-id's het gebruik van bepaalde usb-devices tegengaat.
wow ja is idd wel vet zo.. ga ik toch even uitproberen. bedankt

  • iisschots
  • Registratie: November 2002
  • Laatst online: 24-11 23:49
@brightback:

Ik wil je graag even wijzen op de Afbeeldingslocatie: http://tweakimg.net/g/forum/images/icons/edit.gif knop. Wanneer je binnen 24 uur een toevoeging wil doen, gebruik dan aub de edit knop en maak niet een nieuwe post. :)

[ Voor 3% gewijzigd door iisschots op 12-05-2010 14:20 ]

Hackerspace in Friesland | www.frack.nl | Bezig met opzetten, help mee!


Verwijderd

Topicstarter
iisschots schreef op woensdag 12 mei 2010 @ 11:55:
@brightback:

Ik wil je graag even wijzen op de http://tweakimg.net/g/forum/images/icons/edit.gif knop. Wanneer je binnen 24 uur een toevoeging wil doen, gebruik dan aub de edit knop en maak niet een nieuwe post. :)
wat bedoel je juist?

  • Baserk
  • Registratie: Februari 2007
  • Laatst online: 29-11 17:42
Waarschijnlijk dat het gewenst is, om als je een post hebt gemaakt en weer wat nieuws wil melden, je je vorige post aanpast en dus niet zelf 4 posts onder elkaar aanmaakt maar je laatste dus 3 maal 'edit'.

Romanes eunt domus | AITMOAFU


  • iisschots
  • Registratie: November 2002
  • Laatst online: 24-11 23:49
Baserk schreef op woensdag 12 mei 2010 @ 14:00:
Waarschijnlijk dat het gewenst is, om als je een post hebt gemaakt en weer wat nieuws wil melden, je je vorige post aanpast en dus niet zelf 4 posts onder elkaar aanmaakt maar je laatste dus 3 maal 'edit'.
Yup :)

Hackerspace in Friesland | www.frack.nl | Bezig met opzetten, help mee!


Verwijderd

Topicstarter
ohw oke sorry:d

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Question Mark schreef op woensdag 12 mei 2010 @ 11:04:
[...]
Wel als je met devcon scanned op het hardware-id van het apparaat. Dan zou het origineel al vervangen moeten worden door een device met exact hetzelfde hardware-id. Als ik even op mijn laptop test:
...
Er kan dan in een batchfile gecontroleerd worden of dit hardware-id aanwezig is:
Dit is idd de manier om te checken of het juiste apparaat er nog is, nu alleen nog het moment...

Wat heeft het voor zin om (bijv) om de 10 sec te gaan checken of nog wel het juiste apparaat aangesloten is. Dat leidt tot meldingen als het apparaat legitiem vervangen wordt, of tijdelijk de stekker eruit gehaald of iets anders...

Wmb zijn overbodige meldingen ( aan de gebruiker ) bijna erger dan geen meldingen. Elke overbodige melding zal je zo ongeveer een extra telefoontje opleveren.

Gewoon enkel bij het opzetten van een pin-opdracht checken of het hardware id nog wel goed is, zoniet dan een duidelijke foutmelding geven. Enkel bij de pin-actie zelf is het relevant of het apparaat nog wel werkt, de rest van de tijd is het gewoon irrelevant...

  • Question Mark
  • Registratie: Mei 2003
  • Nu online

Question Mark

Moderator SSC/WOS

F7 - Nee - Ja

Gomez12 schreef op woensdag 12 mei 2010 @ 20:38:
[...]
Wmb zijn overbodige meldingen ( aan de gebruiker ) bijna erger dan geen meldingen. Elke overbodige melding zal je zo ongeveer een extra telefoontje opleveren.
Dan laat je toch alleen meldingen generen als geconstateerd is dat het device verwijderd is?

Verder wel eens met je post. Een controle voordat het device aangesproken gaat worden is netter dan periodiek gaan pollen. Het is alleen even de vraag of de leverancier van de kassasoftware dit kan en wil implementeren in de software.

MCSE NT4/2K/2K3, MCTS, MCITP, CCA, CCEA, CCEE, CCIA, CCNA, CCDA, CCNP, CCDP, VCP, CEH + zwemdiploma A & B


  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Question Mark schreef op donderdag 13 mei 2010 @ 08:58:
[...]
Het is alleen even de vraag of de leverancier van de kassasoftware dit kan en wil implementeren in de software.
Tja, dat is meestal een beleidskeuze van de klant. Ben je bereid om x euro uit te geven aan maatwerk dat het goed werkt, of wil je x tijd investeren aan het verzinnen van een net-niet oplossing.

Jammer genoeg denken de meeste bedrijven dat tijd geen geld kost...

Verwijderd

Topicstarter
Gomez12 schreef op donderdag 13 mei 2010 @ 10:58:
[...]

Tja, dat is meestal een beleidskeuze van de klant. Ben je bereid om x euro uit te geven aan maatwerk dat het goed werkt, of wil je x tijd investeren aan het verzinnen van een net-niet oplossing.

Jammer genoeg denken de meeste bedrijven dat tijd geen geld kost...
of laten ze dit over aan stagairs;)
[...]

Er kan dan in een batchfile gecontroleerd worden of dit hardware-id aanwezig is:
code:
1
2
3
4
D:\i386>devcon find "USB\VID_03F0&PID_0423&REV_0558"

USB\VID_03F0&PID_0423\070706100002 : USB Mass Storage Device
1 matching device(s) found.

Wordt dit device vervangen door een ander (type), dan zal het hardware-id niet meer overeenkomen. Uiteraard zal TS wel moeten testen of elk apparaat inderdaad een uniek hardware-id heeft.
weet u mss dat als ik bvb het commando doe:
devcon find USB/blabla*
en er komt 1 matching device found als output of als die niet aanwezig is 0 matching devices found.
hoe kan ik deze output gebruike in een batfile?
ik had dit al voorlopig om te proberen(het is zwaar trail & error voor mij)

devcon find USB\VID_1307*
if not %RESULT% == No matching devices found. (
@start error.vbs )

maar weet niet wat de parameter voor de result is...?
mvg,
Brecht

[ Voor 52% gewijzigd door Verwijderd op 20-05-2010 13:47 ]


Verwijderd

Topicstarter
anyone?

  • Question Mark
  • Registratie: Mei 2003
  • Nu online

Question Mark

Moderator SSC/WOS

F7 - Nee - Ja

Quick and dirty:

code:
1
For /f %%A in ('devcon find "USB\VID_03F0&PID_0423&REV_0558"') do if %%A==No echo device niet aanwezig!

Er wordt nu naar de eerste string gekeken van de output van het commando, deze output kan zijn:

1 matching device found
No matching device found

Is de output No, dan is het device niet aanwezig en er wordt dan een echo uitgevoerd.

let even op dat als je dit rechtstreeks vanaf command prompt draait, je genoeg hebt aan één % teken voor de A. In een batch-file moet je verplicht twee gebruiken.

MCSE NT4/2K/2K3, MCTS, MCITP, CCA, CCEA, CCEE, CCIA, CCNA, CCDA, CCNP, CCDP, VCP, CEH + zwemdiploma A & B


  • Reptile209
  • Registratie: Juni 2001
  • Laatst online: 13:54

Reptile209

- gers -

Wees overigens voorzichtig met het verwerken van dit soort tekst-uitvoer van programma's. Het zou maar zo kunnen zijn dat een Nederlandse, Zweedse of Turkse versie van Devcon een andere tekst als output geeft (die dan niet met No begint bijvoorbeeld, of niet met 1).

Zo scherp als een voetbal!


  • Question Mark
  • Registratie: Mei 2003
  • Nu online

Question Mark

Moderator SSC/WOS

F7 - Nee - Ja

^^True, het zou netter zijn als je iets van een errorlevel of iets dergelijks zou kunnen afvangen.

MCSE NT4/2K/2K3, MCTS, MCITP, CCA, CCEA, CCEE, CCIA, CCNA, CCDA, CCNP, CCDP, VCP, CEH + zwemdiploma A & B


  • Reptile209
  • Registratie: Juni 2001
  • Laatst online: 13:54

Reptile209

- gers -

Question Mark: devcon geeft wel errorlevels terug, maar alleen om aan te geven dat de bewerking wel of niet gelukt is. In combinatie met 'find' lukt de bewerking altijd, maar je kijgt errorlevel 0 (success) ongeacht het aantal resultaten. Waardeloos dus :).

Zo scherp als een voetbal!


  • Question Mark
  • Registratie: Mei 2003
  • Nu online

Question Mark

Moderator SSC/WOS

F7 - Nee - Ja

Reptile209 schreef op vrijdag 21 mei 2010 @ 12:27:
Question Mark: devcon geeft wel errorlevels terug, maar alleen om aan te geven dat de bewerking wel of niet gelukt is. In combinatie met 'find' lukt de bewerking altijd, maar je kijgt errorlevel 0 (success) ongeacht het aantal resultaten. Waardeloos dus :).
Kwam er al achter, ik had al even getest voordat ik mijn oplossing poste. Ik kreeg inderdaad altijd errorlevel 0 terug, maar wist niet zeker of ik een fout maakte of dat dit het standaard gedrag van Devcon is.

Vandaar dus maar even een "quick and dirty" workaround. :)

MCSE NT4/2K/2K3, MCTS, MCITP, CCA, CCEA, CCEE, CCIA, CCNA, CCDA, CCNP, CCDP, VCP, CEH + zwemdiploma A & B


Verwijderd

Topicstarter
Question Mark schreef op vrijdag 21 mei 2010 @ 12:44:
[...]

Kwam er al achter, ik had al even getest voordat ik mijn oplossing poste. Ik kreeg inderdaad altijd errorlevel 0 terug, maar wist niet zeker of ik een fout maakte of dat dit het standaard gedrag van Devcon is.

Vandaar dus maar even een "quick and dirty" workaround. :)
heel fel bedankt, voor het scannen vn een bepaalde usb device werkt het nu. ik heb dit nu in mijn script staan:

@ECHO off
cd ..
cd ..
cd ..
cd i386
For /f %%A in ('devcon find "USB\VID_1307*"') do if %%A==No @start error.vbs
echo %date% %time% >> log.txt
devcon find USB\VID_1307* >> log.txt

die cd.. doe ik omdat hij anders devcon.exe niet vind(staat in C:\i386)
de error.vbs opent een msgbox met error melding in.
en verder log ik de resultaten ook nog in log.txt
maar gaat hij nu controlleren of er 1 of 0 devices zijn? want in de toekomst moet hij misschien gaan controlleren of er bvb 4 zijn? wat doet die %%A?
het enige nadeel nu vind ik nog dat je zelf nog de hwid's vn de usb devices in de file moet zetten, dat dit niet automatisch kan.

bedankt en mvg,
Brecht

Verwijderd

Topicstarter
niets?

  • Reptile209
  • Registratie: Juni 2001
  • Laatst online: 13:54

Reptile209

- gers -

Vervang het eerste deel (regel 2-5) eens door cd\i386 (dus met backslash), dan kom je in één keer waar je wezen moet.
Voor de werking van een FOR-loop kan je bijvoorbeeld hier eens kijken, zeker in combinatie met de werking van IF. En probeer dan eens wat de output van 'devcon find "USB\VID_1307*"' geeft voor verschillende situaties. Dan vogel je dat zo uit.

En hoe zou je willen voorkomen dat je zelf moet invullen waar je script naar zoekt? Dat kan 'ie toch niet raden? je kan hooguit zorgen dat je de goede device-code als commandline parameter kan meegeven in plaats van 'hardcoded' in je batchfile. Leuke oefening voor thuis zal ik maar zeggen ;).

Zo scherp als een voetbal!


Verwijderd

Topicstarter
Reptile209 schreef op donderdag 03 juni 2010 @ 16:11:
Vervang het eerste deel (regel 2-5) eens door cd\i386 (dus met backslash), dan kom je in één keer waar je wezen moet.
Voor de werking van een FOR-loop kan je bijvoorbeeld hier eens kijken, zeker in combinatie met de werking van IF. En probeer dan eens wat de output van 'devcon find "USB\VID_1307*"' geeft voor verschillende situaties. Dan vogel je dat zo uit.

En hoe zou je willen voorkomen dat je zelf moet invullen waar je script naar zoekt? Dat kan 'ie toch niet raden? je kan hooguit zorgen dat je de goede device-code als commandline parameter kan meegeven in plaats van 'hardcoded' in je batchfile. Leuke oefening voor thuis zal ik maar zeggen ;).
oke bedankt, zal ik eens bekijken.

Verwijderd

Topicstarter
Ik heb voorlopig dit bat bestandje:

@ECHO off
setLocal EnableDelayedExpansion
cd\i386

for /f "tokens=* delims= " %%a in (count.txt) do (
set /a N+=1
set v!N!=%%a
)
set counter=!v1!
echo %counter%
@pause

For /f %%A in ('devcon find "USB\VID_0781*"') do (if %%A==No (
set /a counter+=1
echo !counter! > count.txt
echo !counter!
@pause
) else (set /a counter==0))

echo %date% %time% >> log.txt
devcon find hwids USB\VID_0781* >> log.txt

if !counter!==2 (start error.vbs)

@pause


De bedoeling is dat men gaat kijken of de usb VID_0781* aanwezig is. Als dit niet het geval is wordt er een messagebox getoont. Het resultaat wordt weggeschreven in een log.txt bestandje. Omdat ik een scheduled task doe om de 30sec, wil ik vermijden dat er na enkele minuten meerdere messageboxen getoont worden. Daarom hou ik een teller(counter) bij in count.txt. Als de teller 2 is (dus 2x negatief antwoordt), dan komt er een messagebox. Als men in de messagebox(deze komt tevoorschijn dmv error.vbs) op 'OK' klikt, wordt er nog eens extra gescant. Gedurende de msgbox op het scherm staat wordt het resultaat nog wel gewoon weggeschreven in de log. Nadien bij een positieve respons wordt de counter terug op 0 gezet. Er zitten nog enkele foutjes in de batfile waar ik niet overheen kom. Ik ben er al enkele dagen op aan het kijken en proberen maar kan er niet echt uitkomen. In count.txt staat standaard de waarde 0, die toegekend wordt aan de counter. Het probleem is dat in de ELSE statement de counter niet wordt gereset naar 0 als de usb wel aanwezig is.... Kan iemand mij aub even helpen?

mvg,
Brecht

[ Voor 24% gewijzigd door Verwijderd op 09-06-2010 11:17 ]


  • Question Mark
  • Registratie: Mei 2003
  • Nu online

Question Mark

Moderator SSC/WOS

F7 - Nee - Ja

Verwijderd schreef op woensdag 09 juni 2010 @ 09:28:
Daarom hou ik een teller(counter) bij in count.txt.
Waarom gebruik je niet een variable als counter? Is toch veel eenvoudiger als steeds een txt-file lezen en bewerken?

"Set /A counter=0"

in het begin en vervolgens ophogen met

"Set /A counter=%counter%+1"

Post anders eens een flowchart van je batch-file, dan wordt het wat inzichtelijker wat je nu precies wilt bereiken.

[ Voor 13% gewijzigd door Question Mark op 09-06-2010 15:14 ]

MCSE NT4/2K/2K3, MCTS, MCITP, CCA, CCEA, CCEE, CCIA, CCNA, CCDA, CCNP, CCDP, VCP, CEH + zwemdiploma A & B


Verwijderd

Topicstarter
Question Mark schreef op woensdag 09 juni 2010 @ 15:13:
[...]
Waarom gebruik je niet een variable als counter? Is toch veel eenvoudiger als steeds een txt-file lezen en bewerken?

"Set /A counter=0"

in het begin en vervolgens ophogen met

"Set /A counter=%counter%+1"

Post anders eens een flowchart van je batch-file, dan wordt het wat inzichtelijker wat je nu precies wilt bereiken.
Hey bedankt maar ik heb het ondertussen anders opgelost. Ik gebruik nu enkele bat files en vbs scriptjes. Het werkt vlekkenloos. Er is enkel nog 1 probleem. In devcon kan ik scannen naar hwid's (natuurlijk...) en zo mijn usb stick vinden. Deze heeft een unieke hw id: USB\VID_0781&PID_5567\432281...enz
ik heb deze usb stick dubbel en heb eens gekeken naar de andere, deze zijn unieke hw id is: USB\VID_0781&PID_5567\17371..

Het probleem echter is dat ik maar kan scannen TOT PID_5567.. alles wat erna komt, als ik dit in de code bijdoe zegt hij: no matching devices found...

dus als ik doe : devcon find hwid USB\VID_0781&PID_5567* dan vind hij beide usb sticks.. maar ik wil enkel de ene vinden... want als ik dan doe devcon find hwid USB\VID_0781&PID_5567\4* dan vind hij hem al nietmeer..
Pagina: 1