Mis dos secuencias de comandos de ejecución ConfigMgr favoritas

Trabajo mucho en el espacio de informes e inventario ConfigMgr, y también ayudo a mucha gente a solucionar problemas relacionados con el inventario y los informes. En esta publicación de blog, comparto con ustedes dos de mis scripts de ejecución ConfigMgr favoritos que son muy útiles cuando se trata de solucionar este tipo de problemas. Una ayuda cuando necesita forzar un inventario de hardware completo y la otra es excelente cuando necesita forzar una nueva exploración de las actualizaciones de software.

Tal vez recuerde que a principios de este mes publiqué una publicación de blog llamada Ejecutar scripts es la mejor función en SCCM. Dentro de él, le mostré cómo utilicé la función Ejecutar scripts en ConfigMgr / SCCM para apagar un firewall de forma remota. En la publicación de hoy, les muestro, una vez más, ¡por qué creo que la función Ejecutar Scripts es la mejor!

ConfigMgr Ejecutar scripts: lo mejor

Forzar un inventario completo: secuencia de comandos de ejecución ConfigMgr

Pasa todo el tiempo. ConfigMgr muestra detalles desactualizados para el inventario de hardware. ¿Por qué? El mayor culpable es no configurar correctamente ConfigMgr para aprovechar el inventario de hardware aumentando el tamaño máximo de MIF a 50 MB. Hay una solución fácil para este problema y lo cubro en mi publicación, Cómo aumentar el tamaño máximo de archivo de los archivos de información de administración (MIF). Sin embargo, una vez que aumente el tamaño máximo de archivo, debe forzar un inventario de hardware completo en algunos (o tal vez todos) de sus clientes ConfigMgr. Desafortunadamente, este es un efecto secundario de no aumentar el tamaño del MIF cuando se construyó por primera vez ConfigMgr.

Antes de la función Ejecutar scripts, podía forzar un inventario completo creando un paquete y un programa, implementándolo en una colección y, finalmente, agregando las computadoras a esa colección. Esto funcionó, pero tomó tiempo. Cuando está solucionando un problema, no quiere esperar, lo que podría parecer una eternidad, a que sucedan las cosas.

No me gusta esperar, así que creé una solución alternativa para el paquete y la solución del programa. Hace algún tiempo, les mostré, en otra de las publicaciones de mi blog, cómo restablecer todos los elementos del inventario mediante una tarea programada, Cómo evitar recibir solicitudes de resincronización de inventario para máquinas virtuales de instantáneas. Recientemente, actualicé los comandos WMIC enumerados en esa publicación de blog a PowerShell y agregué este nuevo script a mi consola ConfigMgr. A continuación se muestra el guión.

$comp = "localhost"

$HardwareInventoryID = '{00000000-0000-0000-0000-000000000001}'

$SoftwareInventoryID = '{00000000-0000-0000-0000-000000000002}'

$HeartbeatID = '{00000000-0000-0000-0000-000000000003}'

$FileCollectionInventoryID = '{00000000-0000-0000-0000-000000000010}'

Get-WmiObject -ComputerName $comp -Namespace 'Root \ CCM \ INVAGT' -Class 'InventoryActionStatus' -Filter “InventoryActionID = '$HardwareInventoryID'” | Eliminar-WmiObject

Get-WmiObject -ComputerName $comp -Namespace 'Root \ CCM \ INVAGT' -Class 'InventoryActionStatus' -Filter “InventoryActionID = '$SoftwareInventoryID'” | Eliminar-WmiObject

Get-WmiObject -ComputerName $comp -Namespace 'Root \ CCM \ INVAGT' -Class 'InventoryActionStatus' -Filter “InventoryActionID = '$HeartbeatID'” | Eliminar-WmiObject

Get-WmiObject -ComputerName $comp -Namespace 'Root \ CCM \ INVAGT' -Class 'InventoryActionStatus' -Filter “InventoryActionID = '$FileCollectionInventoryID'” | Eliminar-WmiObject

Inicio-Sueño -s 5

Invoke-WmiMethod -computername $comp -Namespace root \ CCM -Class SMS_Client -Name TriggerSchedule -ArgumentList $HeartbeatID

Invoke-WmiMethod -computername $comp -Namespace root \ CCM -Class SMS_Client -Name TriggerSchedule -ArgumentList $HardwareInventoryID

Invoke-WmiMethod -computername $comp -Namespace root \ CCM -Class SMS_Client -Name TriggerSchedule -ArgumentList $SoftwareInventoryID

Invoke-WmiMethod -computername $comp -Namespace root \ CCM -Class SMS_Client -Name TriggerSchedule -ArgumentList $FileCollectionInventoryID

Por cierto, más adelante en esta publicación, le digo dónde puede obtener rápidamente este script y el script de reescaneo de la actualización de software. También le muestro dónde puede encontrar los pasos sobre cómo agregarlos a su consola ConfigMgr a través de la función Ejecutar scripts.

¿Qué hace este script de ejecución ConfigMgr?

Primero, limpia todo el inventario anterior, por lo que obliga al cliente ConfigMgr a realizar un inventario completo. A continuación, activa cada uno de los elementos del inventario del más rápido al más lento. Esto significa que Heartbeat Discovery (también conocido como el ciclo de recopilación de datos de Discovery en la computadora cliente ConfigMgr) y el inventario de hardware se devuelven en unos minutos, y los restantes del inventario de software, tardan horas, si no días, en regresar.

Forzar actualizaciones de software para volver a escanear ConfigMgr Ejecutar script

Los resultados del análisis de Actualización de software (SU) son mensajes basados en estados y, a veces, esos mensajes basados en estados se pierden. Si el mensaje se pierde, cuando el cliente ConfigMgr busca SU en la próxima hora programada, el cliente NO devuelve el estado actual, ¡nunca! La única excepción es si el estado cambia (lo que casi nunca sucede), de lo contrario, no se vuelve a enviar nada.

Es posible que nunca necesite forzar una nueva exploración de las actualizaciones de software a menos que necesite profundizar al determinar por qué el estado de SU que se muestra en ConfigMgr no coincide con lo que se muestra en la propia computadora. La buena noticia es que la mayoría de los pasos de solución de problemas (a veces sin que usted lo sepa) resuelven este problema. Si no es así, ¡este script es para ti!

Aquí está mi solución a este problema:

$SCCMUpdatesStore = Nuevo-objeto -ComObject Microsoft.CCM.UpdatesStore

$SCCMUpdatesStore.RefreshServerComplianceState ()

¿Qué hace este script de ejecución ConfigMgr?

Este breve script de PowerShell actualiza los mensajes basados en el estado de todas las actualizaciones de software y devuelve los resultados a ConfigMgr.

¿Cómo se agregan estos dos scripts a la consola ConfigMgr?

Primero, aquí hay un archivo Zip con los dos scripts a continuación.

ConfigMgr Ejecutar secuencias de comandos

En segundo lugar, las instrucciones paso a paso sobre cómo utilizar la función Ejecutar scripts están cubiertas en mi publicación, Ejecutar scripts es la mejor función en SCCM.

ConfigMgr Ejecutar scripts - Ejecutar script

En mi opinión, estos dos scripts son dos de los más importantes que necesita tener dentro de su biblioteca de scripts ConfigMgr. ¡Créame cuando digo que ayudan mucho con la resolución de problemas! Si tiene alguna pregunta sobre estos scripts de PowerShell, configúrelos como scripts de ejecución ConfigMgr, no dude en ponerse en contacto conmigo @GarthMJ.

Vea cómo Right Click Tools está cambiando la forma en que se administran los sistemas.

Aumente la productividad de inmediato con nuestra versión limitada y gratuita de la edición Community.

Comience con Right Click Tools hoy:

Compartir este:

Ayuda

  • Este campo es para fines de validación y no debe modificarse.

Contacto

  • Este campo es para fines de validación y no debe modificarse.
es_MXSpanish