-1

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

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

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

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

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

1 ответ1

0

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

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

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

Хотя вариант 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .