[vbs] Opvragen WMI UserName onder ander account

Pagina: 1
Acties:

  • daan3128
  • Registratie: April 2003
  • Laatst online: 17-04 15:18
Hoi,

ik heb voor een bedrijf een script gemaakt die via WMI o.a. de username, computernaam, serienummer, MAC adres etc. uitleest. Dit werkt helemaal perfect, het maakt een teksbestand aan, schrijft deze weg op het netwerk en kan vervolgens worden geimporteerd in een DB.

Het scriptje heb ik gescheduled om op de XP werkstations te worden uitgevoerd bij het inloggen en voor de mensen die hun pc 's nachts aan laten staan, om 1 uur 's nachts.

Om het geheel een beetje flexibel te houden heb ik deze 2 taken gescheduled schtasks.exe onder een algemeen useraccount om netwerktoegang te krijgen.

Het probleem is nu dat als de taak door de scheduler uitgevoerd wordt alleen de username niet te achterhalen is en de rest wel, en als ik het scriptje zelf handmatig aanroep dan, uiteraard wel :'( .

Ik heb gekeken om de username ergens anders weg te halen bijvoorbeeld uit de omgevingsvaiabelen %NWUSERNAME% uit DOS maar ook hier speelt het probleem zich :( .

Wie kent het en weet er een oplossing voor? Kan ik via het VBScript naar een ander useraccount (evt. local account bijv System) overgaan? Zo ja hoe?

Thnx

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Als je bij de Win32 API kunt (wat dacht ik het geval is) heb je de functies LogonUserEx en ImpersonateLoggedOnUser nodig.

En je kunt via de task scheduler trouwens ook een batchfile lanceren die vervolgens een runas uitvoert. Zit je wel met verneukte security ivm password publiek zichtbaar....

[ Voor 41% gewijzigd door curry684 op 29-04-2004 10:33 ]

Professionele website nodig?


  • daan3128
  • Registratie: April 2003
  • Laatst online: 17-04 15:18
curry684 schreef op 29 april 2004 @ 10:32:
Als je bij de Win32 API kunt (wat dacht ik het geval is) heb je de functies LogonUserEx en ImpersonateLoggedOnUser nodig.

En je kunt via de task scheduler trouwens ook een batchfile lanceren die vervolgens een runas uitvoert. Zit je wel met verneukte security ivm password publiek zichtbaar....
Die runas wil ik eigenlijks zoveel moglijk voorkomen ik zou naar mijn idee de scheduler beter kunnen lopen door een locale system account omdat die alle rechten lokaal heeft. Het nadeel van de system account is dat ik geen externe toegang heb. Ik wou dan eigenlijks voor de code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
'****************************************************************************
'MOVE ALL RESULTFILES INCLUDING ERRORS TO NETWORK
'Dit deel verplaatst alle bestanden in de resultmap waaronder de error files
'****************************************************************************

If objFSO.FolderExists(resultDestinationNetwork) Then
Set objFSO = CreateObject("Scripting.FileSystemObject")
    objFSO.CopyFile resultDestinationLocal & "\*.*", resultDestinationNetwork, true
    objFSO.DeleteFile resultDestinationLocal & "\*.*"
End If

'++++++++++++++++++++++++++++++++++++++++++++++++++++
'END MOVE ALL RESULTFILES INCLUDING ERRORS TO NETWORK
'++++++++++++++++++++++++++++++++++++++++++++++++++++


overschakelen naar en useraccount die externe toegang heeft tot het netwerk.
Dit zou ik dan moeten doen met: LogonUserEx en ImpersonateLoggedOnUser??? Ik kon deze functies niet vinden op de MSDN. Hoe zou dat moeten dan???

thnx

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Professionele website nodig?


  • daan3128
  • Registratie: April 2003
  • Laatst online: 17-04 15:18
Hmmm idd, sorry verkeerd gekeken 8)7 |:( , ik ga hier es mee prutsen