domingo, 22 de junio de 2014

Error con contadores en Sharepoint 2013–Troubleshooting

En el Event Viewer aparecerían los siguientes errores relacionados a contadores:

The Open Procedure for service "BITS" in DLL "C:\Windows\System32\bitsperf.dll" failed. Performance data for this service will not be available. The first four bytes (DWORD) of the Data section contains the error code.

Windows cannot load the extensible counter DLL CcmFramework. The first four bytes (DWORD) of the Data section contains the Windows error code.

The Open Procedure for service "WmiApRpl" in DLL "C:\Windows\system32\wbem\wmiaprpl.dll" failed. Performance data for this service will not be available. The first four bytes (DWORD) of the Data section contains the error code.

The Open Procedure for service "FIMSynchronizationService" in DLL "D:\Appls\Microsoft\Sharepoint\15.0\Synchronization Service\Bin\mmsperf.dll" failed. Performance data for this service will not be available. The first four bytes (DWORD) of the Data section contains the error code.

Para solucionarlo puedes revisar lo siguiente:

  • Revisar servicios de Windows, revisar si están iniciados

WMI Performance Adapter

Windows Management Instrumentation

Remote Registry

  • Verificar permisos sobre las siguientes claves de registro. Revisar si tiene permisos los grupos WSS_WPG/Performance Log Users y Local Services

KEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BITS\Performance

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WmiApRpl\Performance

Puedes usar el siguiente script para dar permisos:

$regKeys = @("HKLM:\SYSTEM\CurrentControlSet\Services\BITS\Performance","HKLM:\SYSTEM\CurrentControlSet\Services\WmiApRpl\Performance")
$regAccount = "$env:COMPUTERNAME\WSS_WPG"
$regPermission = "FullControl"
$regPermToggle = "Allow"
foreach ($regKey in $regKeys){
    $acl = Get-Acl $regKey
    $rule = New-Object System.Security.AccessControl.RegistryAccessRule ($regAccount,$regPermission,"ContainerInherit","None",$regPermToggle)
    $acl.SetAccessRule($rule)
    $acl | Set-Acl -Path $regKey
    }

También puedes usar Process Monitor para evaluar access denied

Revisar si los grupos también tenien permisos sobre los folders donde están las definiciones de los contadores.

  • Si sigues teniendo problemas puedes habilitar de nuevo la dll o contador requerida.

Abre una línea de comando con permisos de administrador, ve (CD path) hasta el path donde está la dll que lanza el error, ej: C:\Windows\System32\ y ejecuta lo siguiente:

lodctr.exe /q:BITS

lodctr.exe /q:FIMSynchronizationService

lodctr.exe /q:WmiApRpl

image

image

image

Si alguno de los contadores está deshabilado ejecutar lo siguiente:

lodctr.exe /e:BITS

lodctr.exe /e:FIMSynchronizationService

lodctr.exe /e:WmiApRpl

También puedes usar el nombre de la DLL para habilitar los contadores

lodctr /e:<DLL name> donde DLL name puede ser por ejemplo bitsperf.dll

  • Si sigues teniendo problemas puedes reinstalar de nuevo el contador.
  • En una línea de comandos (run as a administrator),ejecutar lo siguiente:
    lodctr.exe "D:\Appls\Microsoft\Sharepoint\15.0\Synchronization Service\Bin\mmsperf.ini"
    Verificar el path donde está la librería de contadores (.ini)
    • Para finalizar reinstalamos todos los contadores (cuidado con esto)

    En una línea de comandos (run as a administrator),ejecutar lo siguiente:

    Lodctr /R

    No hay comentarios:

    Publicar un comentario