Sabe quando uma coisa não funciona e assim que você começa a fuçar, começa a puxar outra, e outra, e outra…?

Pois é. Tudo começou com um VHD maior do que devia. E chegou no serviço do Log de Eventos do Windows que não funcionava.

Mas pelo menos agora tudo está funcionando normalmente. Smile

Por conta da nova série de posts sobre controle de legados no TFS, precisei subir uma máquina virtual com Windows 7 x86. Depois de instalar o que precisava e de rodar o Windows Update (quase trezentas atualizações!), me deparei com um problema: Apesar de o guest estar usando apenas 18 GB de espaço em disco, o VHD tinha sido totalmente expandido (consumindo seu máximo de 127 GB).

image

"Guest" gastando apenas 18 GB do VHD
Guest gastando apenas 18 GB do VHD mas 127 GB no host

Tentei usar a função de Compact do Hyper-V (que remove o espaço livre do disco para reduzir seu consumo no host) mas ele não conseguiu reduzir nada, o que tipicamente indica um disco virtual fragmentado. Para conseguir compactá-lo precisaria, primeiramente, desfragmentar o guest. E é aí que a estória começa a ficar divertida.

O problema

Quando tentei rodar o Desfragmentador de Discos no Windows 7 da VM, obtive o seguinte erro:

Disk Defragmenter cannot start because the task scheduler service is not running. Start the task scheduler service and try again.

Esquisito, né? Bom, fui conferir e o serviço do Task Scheduler realmente estava parado. Quando eu tento iniciá-lo manualmente, outro erro:

Windows could not start the Task Scheduler service on Local Computer.

Error 1068: The dependency service or group failed to start.

Hum, então tem algum serviço de que o Task Scheduler depende e que não está funcionando. Quais são os serviços de que ele depende?

Lista de serviços de que o Task Scheduler depende
Lista de serviços de que o Task Scheduler depende

Agora que sei que o Task Scheduler depende de dois serviços (Remote Procedure Call, Windows Event Log), preciso ver se algum deles está parado e não está conseguindo subir. O serviço de RPC estava normal; já o serviço de Log de Eventos do Windows estava com problemas:

Windows could not start the Windows Event Log service on Local Computer.

Error 1079: The account specified for this service is different from the account specified for other services running in the same process.

Eita! O Log de Eventos não está funcionando!

A mensagem de erros, por incrível que pareça, é bem clara: o Log de Eventos está configurado para usar uma conta diferente de outros serviços que estão rodando dentro do mesmo Host de Serviços. Sabe aquele processo svchost.exe que você vê no Task Manager e não faz ideia de para quê serve? Então, ele é um Host de Serviços, “hospedando” serviços como o Task Scheduler.

Procurando na internet pela mensagem de erro 1079, achei um artigo da Base de Conhecimentos da Microsoft (“KB article”) falando sobre o problema, indicando que é um erro conhecido. A solução é trocar a conta de logon do serviço Task Scheduler, mudando de System para LocalService.

A solução

Num prompt elevado, execute a seguinte linha de comando:

sc.exe config "eventlog" obj= "NT AUTHORITY\LocalService"

Reinicie o computador e voilà! – tudo de volta ao lugar Smile

Um abraço,
Igor

(Cross-post de http://www.tshooter.com.br/2016/08/24/resolvido-erro-1079-the-account-specified-for-this-service-is-different/)

Igor Abade

Igor Abade V. Leite ([email protected]) é Microsoft MVP (Most Valuable Professional) de Visual Studio ALM desde 2006. Palestrante em diversos eventos da comunidade de desenvolvimento de software (TechEd Brasil, The Developers’ Conference, DevOps Summit Brasil, Agile Brazil, Visual Studio Summit, QCON e outros), é também autor de artigos em revistas e sites como o MSDN Brasil. Desde março de 2011 é um dos sócios da Lambda3, uma consultoria especializada em ALM, desenvolvimento de software e treinamentos. Siga-o no Twitter @igorabade.