Como conceder acesso de gravação ao log de eventos de aplicativos do Windows Server 2012 R2

2

Estou executando o Windows Server 2012 R2 e abaixo disso, estou executando o VMWare Workstation Pro. Quando a estação de trabalho é instalada, o grupo de usuários __vmware__ é criado para usuários da estação de trabalho VMWare. Eu adicionei minha conta de usuário da máquina host (ou seja, Windows Server 2012 R2) (um membro de Usuários, não um membro de Administradores) ao grupo __vmware__ .

No host, gostaria de criar entradas de log de eventos no log de eventos do aplicativo enquanto estiver executando como minha conta de usuário relacionada ao estado das máquinas virtuais executadas no VMWare.

De uma janela de comando no host, eu digito whoami \all e obtenho o seguinte:

USER INFORMATION
----------------

User Name SID
========= ==============================================
mte\mike  S-1-5-21-1052476717-3500785571-2838594007-1118


GROUP INFORMATION
-----------------

Group Name                                 Type             SID
                           Attributes

========================================== ================ ====================
========================== =====================================================
==========
Everyone                                   Well-known group S-1-1-0
                           Mandatory group, Enabled by default, Enabled group

BUILTIN\Users                              Alias            S-1-5-32-545
                           Mandatory group, Enabled by default, Enabled group

BUILTIN\Certificate Service DCOM Access    Alias            S-1-5-32-574
                           Mandatory group, Enabled by default, Enabled group

BUILTIN\Pre-Windows 2000 Compatible Access Alias            S-1-5-32-554
                           Group used for deny only

NT AUTHORITY\INTERACTIVE                   Well-known group S-1-5-4
                           Mandatory group, Enabled by default, Enabled group

CONSOLE LOGON                              Well-known group S-1-2-1
                           Mandatory group, Enabled by default, Enabled group

NT AUTHORITY\Authenticated Users           Well-known group S-1-5-11
                           Mandatory group, Enabled by default, Enabled group

NT AUTHORITY\This Organization             Well-known group S-1-5-15
                           Mandatory group, Enabled by default, Enabled group

LOCAL                                      Well-known group S-1-2-0
                           Mandatory group, Enabled by default, Enabled group

Authentication authority asserted identity Well-known group S-1-18-1
                           Mandatory group, Enabled by default, Enabled group

MTE\__vmware__                             Alias            S-1-5-21-1052476717-
3500785571-2838594007-1131 Mandatory group, Enabled by default, Enabled group, L
ocal Group
Mandatory Label\Medium Mandatory Level     Label            S-1-16-8192




PRIVILEGES INFORMATION
----------------------

Privilege Name                Description                    State
============================= ============================== ========
SeChangeNotifyPrivilege       Bypass traverse checking       Enabled
SeIncreaseWorkingSetPrivilege Increase a process working set Disabled


USER CLAIMS INFORMATION
-----------------------

User claims unknown.

Kerberos support for Dynamic Access Control on this device has been disabled.

Observe que minha conta de usuário é um membro de __vmware__ e o SID é S-1-5-21-1052476717-3500785571-2838594007-1131 .

De uma conta de administrador, edito a seguinte chave de registro:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application

E modifique a entrada CustomSD da seguinte forma:

O:BAG:SYD:(A;;0x3;;;S-1-5-21-1052476717-3500785571-2838594007-1131)(A;;0x2;;;S-1-15-2-1)(A;;0xf0007;;;SY)(A;;0x7;;;BA)(A;;0x7;;;SO)(A;;0x3;;;IU)(A;;0x3;;;SU)(A;;0x3;;;S-1-5-3)(A;;0x3;;;S-1-5-33)(A;;0x1;;;S-1-5-32-573)

Aqui você pode ver que o __vmware__ Group recebeu acesso de leitura e gravação ao log de eventos do aplicativo.

Ainda assim, quando tento criar uma entrada de registro:

eventcreate /SO TestEventMsg /Id 1 /D "This is a test message" /T INFORMATION /L Application

Eu recebo um erro de acesso negado.

O que não estou fazendo corretamente?

ATUALIZAÇÃO 2016-12-03

Eu tentei a sugestão do user2304170 e foi isso que consegui:

PS C:\Users\Netadmin\Documents> ./GrantEventLogAccess.ps1 -Account '__vmware__' -LogName Application
Failed to save configuration or activate log Application. Access is denied.
name: Application
enabled: true
type: Admin
owningPublisher:
isolation: Application
channelAccess: O:BAG:SYD:(A;;0x3;;;S-1-5-21-1052476717-3500785571-2838594007-1131)(A;;0x2;;;S-1-15-2-1)(A;;0xf0007;;;SY)
(A;;0x7;;;BA)(A;;0x7;;;SO)(A;;0x3;;;IU)(A;;0x3;;;SU)(A;;0x3;;;S-1-5-3)(A;;0x3;;;S-1-5-33)(A;;0x1;;;S-1-5-32-573)
logging:
  logFileName: %SystemRoot%\System32\Winevt\Logs\Application.evtx
  retention: false
  autoBackup: false
  maxSize: 20971520
publishing:
  fileMax: 1
PS C:\Users\Netadmin\Documents>
    
por mbmast 14.03.2016 / 20:44

2 respostas

0

Diversão intrigante na internet Criei este pequeno roteiro:

<# 
    .SYNOPSIS   
        Add write permissions to the Windows Event Log for a specific AD object.

    .DESCRIPTION
        Add write permissions to the Windows Event Log for a specific AD object.

    .PARAMETER Account 
        Active directory object that needs write permissions.

    .PARAMETER LogName 
        Name of the log where we grant permissions

    .EXAMPLE
        ./script.ps! -Account 'Domain users' -LogName Application

    .NOTES
        CHANGELOG
        2016/09/12 Script born #>

Param (
    [String]$Account = 'Bob',
    [String]$LogName = 'Application'
)

Write-Verbose "Retrieving SID for account '$Account'"

$AdObj = New-Object System.Security.Principal.NTAccount($Account)
$SID = $AdObj.Translate([System.Security.Principal.SecurityIdentifier])
Write-Verbose "Found SID for account $($SID.Value)" 

$w = wevtutil gl $LogName
$channelAccess = $w[5]

if ($channelAccess.Contains('channelAccess:')) {

    $str = $channelAccess.Replace('channelAccess: ','')

    if ($str.Contains($SID.Value) -eq $false) {
        $newstr = $str +"(A;;0x3;;;"+$SID.Value+")"
        Write-Verbose "Adding '$newstr'" 
        wevtutil sl $LogName /ca:$newstr
        Write-Verbose "Update complete new value is"
        wevtutil gl $LogName
    }
    else {
        Write-Verbose "Update not needed"
    }
}
    
por 12.09.2016 / 14:42
0

Eu não testei isso na íntegra, mas se você for para essa chave do Registro:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Eventlog

Você pode clicar com o botão direito do mouse na pasta Eventlog e conceder permissões ao usuário que deseja permitir ou pode escolher o log de eventos.

    
por 17.11.2016 / 01:38