Определите, какие пользователи фактически используют Office

Определите, какие пользователи фактически используют Office

На компьютерах нашей компании, которые, конечно же, находятся в домене, установлен Office.

Мы планируем продлить лицензию и хотим знать, какие пользователи действительно используют Office, поэтому мы экономим деньги, покупая лицензии только для тех людей, которые действительно его используют.

У нас нет System Center, в котором, как мне сказали, есть какой-то инструмент аудита для этого, поэтому я хочу узнать, есть ли способ получить эту информацию на всех машинах домена, либо с помощью Windows / Active Directory, либо встроенных инструментов, либо с помощью бесплатного инструмента.

В частности, я ожидаю, что инструмент будет делать что-то вроде этого:

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

решение1

Обычно мы не даем рекомендаций такого рода, но я могу предложить вам два варианта:

1) System Center — я знаю, что у вас его нет, но вы можете попробовать его, получить данные, а затем удалить.

2) Планирование задач GPO. Однажды меня попросили отслеживать использование программного обеспечения с ограниченным бюджетом. Я сделал это, создав базу данных SQL (хотя текстовые файлы или другой формат базы данных тоже подойдут). Затем я создал VBS, который проверял наличие приложения (winword.exe — это Word, excel.exe — это Excel и т. д.). Если он обнаруживал этот процесс Windows, он подключался к базе данных SQL и регистрировал время/дату, машину, пользователя, приложение. Я развернул этот скрипт как запланированную задачу через GPO для выполнения каждые 15 минут на заданном наборе машин, и через несколько дней и несколько выборок SQL у меня была приблизительная оценка использования SW.

Хотя вариант 2 не является абсолютно надежным и требует, чтобы у пользователя были открыты приложения во время выполнения скрипта, большинство пользователей, работающих с электронной почтой Outlook или документом/электронной таблицей Word, будут держать его открытым в течение 15 минут, особенно если это часть их работы.

Что-то вроде этого должно подойти вам для начала: «При ошибке возобновления следующего сообщения пользователи не будут видеть. Удалите во время разработки

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

Связанный контент