Mostrando entradas con la etiqueta Ventanas de mantenimiento. Mostrar todas las entradas
Mostrando entradas con la etiqueta Ventanas de mantenimiento. Mostrar todas las entradas

viernes, 20 de enero de 2012

Como poner en mantenimiento de SCOM los equipos de una colección de SCCM?

Hola a todos!

Ayer mismo y como suele ocurrir muchas veces me han solicitado resolver una idea genial de un administrador en el mismo día...

Este administrador de SCOM deseaba poner en mantenimiento a las máquinas que aparecian en una colección de SCCM por medio de un script en powershell...

¿Como poner en mantenimiento en SCOM las máquinas que se encuentran en una colección de SCCM?

Primero genero una consulta de SQL para obtener los datos de la colección y lo guardamos en C:\coleccion.sql

use sms_SITE
Set nocount on
select distinct System_Resource_N_ARR.Resource_Names0
from v_FullCollectionMembership inner join v_GS_COMPUTER_SYSTEM on v_FullCollectionMembership.ResourceID = v_GS_COMPUTER_SYSTEM.ResourceID join v_Collection on v_Collection.CollectionID = v_FullCollectionMembership.CollectionID
join System_Resource_N_ARR on v_GS_COMPUTER_SYSTEM.ResourceID = System_Resource_N_ARR.ItemKey
where v_Collection.Name like 'NOMBRE DE LA COLECCION DE SCCM'


Reemplazar sms_SITE y 'NOMBRE DE LA COLECCION DE SCCM' por el su base de datos de SCCM y el nombre de la colección que desean obtener las máquinas.

Luego creamos el siguiente scritp de powershell:

osql -E -n -S ServidorSQL\Instancia -iC:\Coleccion.sql -h-1 -s "," -w 380 -oC:\Coleccion.txt
(gc C:\Coleccion.txt) -replace ' ' | sc C:\Coleccion.txt
$maquinas =  (get-content -path C:\Coleccion.txt)
foreach ($maquinas in $maquinas)
{
$rootMS = 'ServidorRMS'
$computerPrincipalName = $maquinas
$minutes = '20'
$comment = 'Reiniciando-desde-SCCM TRUE'
$reason =  'PlannedOther'


Add-PSSnapin "Microsoft.EnterpriseManagement.OperationsManager.Client" -ErrorVariable errSnapin;
Set-Location "OperationsManagerMonitoring::" -ErrorVariable errSnapin;
new-managementGroupConnection -ConnectionString:$rootMS -ErrorVariable errSnapin;
set-location $rootMS -ErrorVariable errSnapin;

$computerClass = get-monitoringclass -name:Microsoft.Windows.Computer
$computerCriteria = "PrincipalName='" + $computerPrincipalName + "'"
$computer = get-monitoringobject -monitoringclass:$computerClass -criteria:$computerCriteria
$startTime = [System.DateTime]::Now
$endTime = $startTime.AddMinutes($minutes)
if($computer.InMaintenanceMode -eq $false)
{
    "Putting " + $computerPrincipalName + " into maintenance mode"
   New-MaintenanceWindow -startTime:$startTime -endTime:$endTime -comment:$comment -Reason:$reason -monitoringObject:$computer
}

}

Reemplazar los siguientes campos:
$rootMS = 'ServidorRMS' Con el servidor RMS de SCOM
$minutes = '20' Con los minutos que van a estar en mantenimiento

$comment = 'Reiniciando-desde-SCCM TRUE' Descripción del reinicio
$reason = 'PlannedOther'

NOTA IMPORTANTE: En el equipo que ejecutemos este powershell deberemos tener instalada la consola de SCOM y el usuario deberá ser administrador de SCOM y de SCCM.

Esta claro que el script se puede mejorar y bastante pero dado que me lo solicitaron "para ayer" creo que ya estoy contento con que funcione.

Saludos!

Gastón

jueves, 19 de enero de 2012

Ventanas de mantenimiento en SCCM

Hola a todos

Últimamente me han realizado varias consultas de como funcionan exactamente las ventanas de mantenimiento dado que a varios conocidos les ha traído dolores de cabeza.

Lo que debemos saber de las ventanas de mantenimiento:

1.       Las ventanas no vienen configuradas por defecto en SCCM. Eso significa que por defecto se va a ejecutar advertisements, actualizaciones y task sequences sin restricciones de tiempo.

2.       Las ventanas de mantenimiento se configuran a nivel de colección por lo que afecta a todos los equipos dentro de ella.

3.       Comúnmente un equipo se encuentra dentro de varias colecciones por lo que puede tener varias ventanas de mantenimiento. En ese caso el equipo sumará todas las ventanas, ya estén separadas o se solapen en tiempo.

4.       Si en algún momento un equipo deja de pertenecer a la colecciones con ventana de mantenimiento, este comenzará a trabajar como si nunca haya tenido ventana, instalando y reinciando cuando este configurado en el advertisement, actualizació o task sequence.

Seguramente el punto 4 es el que trae más dolores de cabeza a los administradores de SCCM y es el que voy a tratar.

Como por defecto no hay ventanas de mantenimiento tendremos disponibilidad de ejecutar tareas las 24 horas.

Cuando configuramos 1 ventana de mantenimiento pasamos a crear una restricción en la ejecución de tareas.

En este ejemplo configuramos una ventana de mantenimiento de 3 horas, de 13:00 a 16:00.


  • De 00:00 a 14:59 no se ejecutará nada ni se reiniciará el equipo.*
  • De 13:00 a 16:00. Se ejecutarán tareas y se reiniciará el equipo.
  • De 16:01 a 23:59 no se ejecutará nada ni se reiniciará el equipo.*
*Se pueden llegar a configurar tareas que ignoren la configuración de la ventana de mantenimiento permitiendo instalar y/o reiniciar el equipo.

Ahora pregunto, ¿Qué sucede si le quitamos a este equipo la ventana de mantenimiento?

Ejecutará todo nuevamente y reiniciará el servidor si lo requiriera, volverá al comportamiento por defecto.


Recomendación:

Si tenemos equipos que siempre tienen una ventana de mantenimiento y las vamos configurando nosotros es mejor siempre dejar una ventana de mantenimiento “antigua” que tenga una ventana con una fecha que ya pasó para evitar que el equipo cambie al estado por defecto.

Espero que les sea de utilidad y responda a sus preguntas.

Por favor, comentar si desean algun teman específico.

Saludos

Gastón Gardonio