Ermitteln Sie, welche Benutzer Office tatsächlich verwenden

Ermitteln Sie, welche Benutzer Office tatsächlich verwenden

Wir haben Office auf den Computern unseres Unternehmens installiert, die sich natürlich in einer Domäne befinden.

Wir müssen unsere Lizenz erneuern und möchten wissen, welche Benutzer Office wirklich verwenden. Daher sparen wir Geld, indem wir nur Lizenzen für die Personen kaufen, die es tatsächlich verwenden.

Wir verfügen nicht über System Center, das, wie mir gesagt wurde, über eine Art Prüftool dafür verfügt. Deshalb möchte ich wissen, ob es eine Möglichkeit gibt, diese Informationen auf allen Domänencomputern abzurufen, entweder mit Windows/Active Directory, integrierten Tools oder mit einem kostenlosen Tool.

Konkret erwarte ich, dass das Tool ungefähr Folgendes tut:

Machine #1:
  winword.exe: 5 times last month
  excel.exe:   not run last month
  powerpoint.exe: 20 times last month
Machine #2:
  ...
  ...
  ...

Antwort1

Normalerweise würden wir keine Empfehlungen dieser Art geben, aber mir fallen da 2 Möglichkeiten für dich ein:

1) System Center – ich weiß, dass Sie es nicht haben, aber Sie können es testen, die Daten abrufen und es dann deinstallieren.

2) GPO für geplante Aufgaben. Ich wurde einmal gebeten, die Softwarenutzung mit einem begrenzten Budget zu überwachen. Dazu habe ich eine SQL-Datenbank erstellt (obwohl Textdateien oder ein anderes Datenbankformat auch funktionieren würden). Dann habe ich ein VBS erstellt, das die Existenz einer Anwendung überprüft (winword.exe ist Word, excel.exe ist Excel usw.). Wenn es diesen Windows-Prozess erkennt, stellt es eine Verbindung zur SQL-Datenbank her und protokolliert Zeit/Datum, Computer, Benutzer und Anwendung. Ich habe dieses Skript als geplante Aufgabe über GPO bereitgestellt, um es alle 15 Minuten auf einer bestimmten Anzahl von Computern auszuführen, und ein paar Tage und einige SQL-Auswahlen später hatte ich eine ungefähre Vorstellung von der Softwarenutzung.

Option 2 ist zwar nicht hundertprozentig sicher und setzt voraus, dass der Benutzer die Apps geöffnet hat, wenn das Skript ausgeführt wird. Die meisten Benutzer, die in Outlook-E-Mails oder an einem Word-Dokument/einer Tabellenkalkulation arbeiten, werden diese jedoch 15 Minuten lang geöffnet haben, insbesondere, wenn dies Teil ihrer Arbeit ist.

Etwas in dieser Art sollte Ihnen für den Anfang genügen: „Bei einem Fehler wird „Resume Next“ den Benutzern keine Nachrichten mehr anzeigen. Entfernen Sie es während der Entwicklung

On Error Resume Next

'Get Computer Name
Set wshNetwork = WScript.CreateObject( "WScript.Network" )
strComputerName = wshNetwork.ComputerName
WScript.Echo strComputerName

'Get User Name
strUserName =  wshNetwork.UserName
WScript.Echo strUserName

sComputerName = "."
'Connect to local machine and get all process names
Set objWMIService = GetObject("winmgmts:\\" & sComputerName & "\root\cimv2")
sQuery = "SELECT * FROM Win32_Process"
Set objItems = objWMIService.ExecQuery(sQuery)
'For Each Process Name
For Each objItem In objItems
    'If name is winword or excel.exe (upper case to avoid possible case issues)
    if UCase(objItem.Name) = "WINWORD.EXE" or UCase(objItem.Name) = "EXCEL.EXE" Then
        'connect to SQL
        set con = createobject("ADODB.Connection")
        con.open "Provider=sqloledb;Server=SERVERNAME;Database=DBNAME;User Id=sa;Password=PASSWORDHERE;"
        'Construct insert statement
        sSQL = "INSERT INTO tblSoftwareAudit VALUES ('" & strComputerName & "', '" & strUserName & "', '" & objItem.Name & "', '" & FormatDateTime(Now) & "')"
        'insert SQL statement
        set rst = con.execute(sSQL)
    End If
Next

verwandte Informationen