PowerShell e Agendador de Tarefas: Agendando Inventário

Em 2014, publiquei uma postagem no blog chamada, Como evitar o recebimento de solicitações de nova sincronização de inventário para VMs de instantâneo. O que eu adorei naquela postagem foi como o agendador de tarefas foi usado para agendar o inventário ConfigMgr, evitando erros de ressincronização do ConfigMgr. O que não gostei naquela postagem do blog de 2014 foi como cada tarefa do TriggerSchedule precisava ser criada manualmente. Avançando para 2020, recorri ao PowerShell para resolver esse problema e automatizar o processo. Porque? Eu estava testando o Power BI Report Server com Relatório Enhansoft e parte desse teste envolveu a criação de novos servidores Windows 10 junto com várias novas VMs. Eu não queria criar cada tarefa manualmente todas as vezes, então o PowerShell faz todo o trabalho pesado para mim e agora estou compartilhando com você como fiz isso, junto com o script, neste post.

Fundo

Em minha postagem original, criei um link para algumas postagens de blog sobre como forçar o inventário para uma coleção e computador usando o Software de gerenciamento de terminais Recast ferramenta. Isso é ótimo, mesmo hoje, MAS não ajuda com VMs onde um instantâneo é obtido.

Aqui no Enhansoft, O Hyper-V é usado para fazer instantâneos das VMs em nosso laboratório de teste. Fazemos isso no caso de precisarmos reverter rapidamente uma VM para um estado conhecido. Quando isso acontece, o inventário da VM pode ficar fora de sincronia com ConfigMgr. Em teoria, o ConfigMgr força os computadores fora de sincronia a se sincronizarem e se atualizarem, mas essa tarefa pode demorar um pouco. Esse intervalo de tempo não é útil para garantir que seu inventário esteja sempre atualizado em ConfigMgr.

Nossa solução para esse problema, cada vez que uma VM é reiniciada (reinicializada), é forçar o cliente ConfigMgr a realizar as seguintes ações nesta ordem:

  1. Execute uma descoberta de pulsação (ciclo de descoberta de dados).
  2. Exclua o último hardware completo para forçar o próximo ciclo de inventário de hardware a realizar um inventário completo.
  3. Exclua os dados de inventário de software para forçar o próximo ciclo de inventário de software a realizar um inventário completo.
  4. Faça um inventário de hardware.
  5. Faça um inventário de software.

Como não quero executar essa tarefa manualmente todas as vezes, criei um script de todos os itens de ação listados acima usando o WMIC. Em seguida, defino uma tarefa agendada para ser executada sempre que uma VM for reiniciada com um atraso de 5 minutos. O atraso de 5 minutos permite que o cliente ConfigMgr seja iniciado antes de ser forçado a executar a ação de inventário.

Na postagem original do blog, criei uma tarefa agendada para todas as ações. Quando fui automatizar esse processo com o PowerShell, fez mais sentido criar uma tarefa agendada para cada item de ação listado acima. Além dessas ações, eu também queria forçar um inventário completo às 9h todos os dias em cada VM. Para manter as coisas organizadas, coloquei todas as tarefas agendadas em uma pasta.

Cronograma de inventário ConfigMgr - Agendador de tarefas

Cronograma ConfigMgr Inventário

Não estou postando o script inteiro aqui porque você pode baixar o script completo do site da Enhansoft e depois revise-o. Em vez disso, estou mostrando as três linhas mais importantes abaixo.

$action = New-ScheduledTaskAction -Execute 'WMIC.exe' -Argument '/ namespace: \\ root \ ccm path sms_client CALL TriggerSchedule “{00000000-0000-0000-0000-000000000001}” / NOINTERACTIVE'
$trigger = New-ScheduledTaskTrigger -Daily -Às 9:01:01
Register-ScheduledTask -Ação $action -Trigger $trigger -TaskName $FolderName \ ”HW Inv” -User “Sistema”

A primeira linha cria a tarefa agendada. A segunda linha cria o gatilho da tarefa agendada; neste exemplo, ocorre às 9:01:01. A terceira linha une a primeira e a segunda linhas e executa a tarefa agendada usando a conta do sistema.

Observe a quebra de linha de cada linha. Além disso, se você cortar e colar em seu próprio script, tome cuidado com as citações estilizadas (curvas). As aspas devem ser sempre retas e únicas.

Olhando para a captura de tela acima, você pode ver que, uma vez que o script do PowerShell é executado, todas as tarefas agendadas são criadas e colocadas ordenadamente dentro da pasta.

Congelamento profundo

Usar este script do PowerShell para agendar o inventário ConfigMgr também é importante se você tiver algum computador que esteja usando Faronics Deep Freeze. No entanto, eu faria alguns ajustes no script. Primeiro, remova as tarefas agendadas de hardware e software de “exclusão” na reinicialização do sistema, mas mantenha as tarefas agendadas para acionar inventários na inicialização do sistema. Além disso, eu ajustaria o intervalo de tempo das 9h para ocorrer alguns minutos após o ciclo de degelo do Deep Freeze ocorrer.

Resumo

No final do dia, essas tarefas de inventário ConfigMgr agendadas e esse script do PowerShell economizaram muito tempo e esforço para minha equipe. Se você tiver um laboratório de teste, recomendo que você analise o uso desse processo também, pois ele garante que seu inventário seja atualizado regularmente. Se você tiver alguma dúvida sobre como programar o inventário ConfigMgr, sinta-se à vontade para entrar em contato comigo @GarthMJ.

Veja como Right Click Tools está mudando a forma como os sistemas são gerenciados.

Aumente imediatamente a produtividade com o nosso limitado e gratuito, Community Edition.

Comece com Right Click Tools hoje:

Suporte

  • Este campo é para fins de validação e não deve ser alterado.

Contato

  • Este campo é para fins de validação e não deve ser alterado.

Ao enviar este formulário, você entende que o Recast Software pode processar seus dados conforme descrito no Recast Software Política de Privacidade.

pt_BRPortuguese