Determine quais usuários realmente usam o Office

Determine quais usuários realmente usam o Office

Temos o Office instalado nos computadores da nossa empresa, que obviamente estão num domínio.

Estamos dispostos a renovar licenças e queremos saber quais usuários realmente usam o Office, por isso economizamos algum dinheiro comprando licenças apenas para pessoas que realmente o usam.

Não temos o System Center, que me disseram que tem algum tipo de ferramenta de auditoria para fazer isso, então quero saber se existe uma maneira de obter essas informações em todas as máquinas do domínio, seja com windows/active directory, integrado- em ferramentas ou com uma ferramenta gratuita.

Especificamente, o que espero que a ferramenta faça é algo assim:

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

Responder1

Normalmente, não faríamos recomendações desse tipo, mas posso pensar em duas possibilidades para você:

1)System Center - eu sei que você não o possui - mas você pode testá-lo, obter os dados e desinstalá-lo.

2) Agendar tarefa GPO. Certa vez, fui solicitado a monitorar o uso de software com um orçamento limitado. Fiz isso construindo um banco de dados SQL (embora arquivos de texto ou outro formato de banco de dados funcionassem. Em seguida, construí um VBS que verificava a existência de um aplicativo (winword.exe é word, excel.exe é excel etc.). Se detectou nesse processo do Windows, ele se conectaria ao banco de dados SQL e registraria hora/data, máquina, usuário, aplicativo. Implantei esse script como uma tarefa agendada via GPO para executar a cada 15 minutos em um determinado conjunto de máquinas e alguns dias e alguns. SQL seleciona mais tarde, tive uma estimativa de uso de SW.

Embora a opção 2 não seja à prova de balas e dependa de o usuário ter os aplicativos abertos quando o script for executado, a maioria dos usuários que estão trabalhando no e-mail do Outlook ou em um documento/planilha do Word o manterão aberto por 15 minutos. trabalho deles.

Algo nesse sentido deve servir para você: 'Em caso de erro, a próxima retomada impedirá que os usuários vejam as mensagens. Remover durante o desenvolvimento

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

informação relacionada