VBScript in ScanGruppen

Sie haben eine Idee oder eine bessere Lösung zu bestimmten Funktionen. Lassen Sie es uns wissen!
Antworten
wja
Beiträge: 2
Registriert: Do 23. Jan 2020, 10:19

VBScript in ScanGruppen

Beitrag von wja » Do 23. Jan 2020, 10:27

Hallo,

wir wollen gerne rxinventory nutzen, um eine Möglichkeit zu haben, gewisse Software zu tracken bzw deren Nutzung. Dafür habe ich in der Scangruppe unter Scripte bereits mehrere Scripte angelegt und diese erstellen einen Eintrag bei "Gescriptete Eigenschaften". Soweit so gut. Nun aber zu meinem Anliegen.

Ich bekomme als beispiel die ProzessID von einem oder mehreren Prozessen mit bspw cmd.exe. Allerdings benötige ich noch für die ProzessID den Username. Hintergrund ist, das wir für einige Tools nur Lizenzen für die einzelne Nutzung haben, aber wir das Tool nicht auf den PC eingeschränkt haben (BricsCAD/Solidworks) etc. Heisst ist das Programm auf einem der ThinClients offen, führt das zu der entsprechenden Fehlermeldung beim Starten des Tools auf einem anderen Client (License exeeded). Hier wäre es hilfreich, wen wir wissen wo und wer das Tool offen hat. Das wollen wir gern über den rxinventory "Webserver" wrappen und darstellen ... =) das anzeigen und auslesen des Feldes im Webgui haben wir schon, aber rein die PID ist wenig hilfreich in einer Citrix Umgebung. Eventuell könnt Ihr da helfen oder habt Ideen?



Mein Script:
' get process id
function getpid(gproc)
Dim str
Dim w
For Each w In WmiQuery("select * from win32_process where name ="+"'" + gproc+"'")
If Len(str)>0 Then
str=str & ","
End If
Next
SetProperty gproc, str
end function

' get owner of process
function getowner()
end function

function beforescan()
dim gpid
getpid("Exchanger.exe")
end function

WernerB
Beiträge: 102
Registriert: Mo 20. Jul 2009, 07:41

Re: VBScript in ScanGruppen

Beitrag von WernerB » Mo 27. Jan 2020, 09:55

Hallo,

in der aktuellen Version 3.10 (Build 25) gibt es jetzt die Möglichkeit die WMI-Methode GetOwner() auf ein Win32_Process-Objekt aufzurufen. Der Code müsste dann wie folgt aussehen:

Code: Alles auswählen

Function GetPid(gproc)
  Dim str, w
  For Each w In WmiQuery("select * from win32_process where name ="+"'" + gproc+"'")
    If Len(str)>0 Then
      str=str & ","
    End If

    Dim owner
    Set owner = w.GetOwner()
    str=str & owner("Domain") & "\" & owner("User")
  Next

  SetProperty gproc, str
End Function

Function BeforeScan()
  GetPid("RMClient.exe")
End Function
Werner

wja
Beiträge: 2
Registriert: Do 23. Jan 2020, 10:19

Re: VBScript in ScanGruppen

Beitrag von wja » Fr 31. Jan 2020, 10:02

Hallo Werner B,

danke für die Antwort. Die Umsetzung haben wir genutzt und sie funktioniert super.

Liebe Grüsse

Werner J. ;)

Antworten