Social Icons

twitter facebook google plus linkedin

viernes, 19 de mayo de 2017

Consideraciones para la instalacion de Cumulative Updates en SCCM

Hola Mundo:

Los cumulative update son paquetes que incluyen actualizaciones que corrigen fallos de las

plataformas, agregan características nuevas y van quitando aquellas que no son ampliamente usadas o las que ya no se utilizan.
Estos paquetes se liberan con cierta periodicidad y es importante estar atento a la liberación de éstos.
Este artículo pretende dar algunas recomendaciones para la instalación de algún cumulative update en System Center Configuration Manager.
¿Instalarlos o no?
Es muy importante tener en consideración que el rubro de las tecnologías de la información es muy dinámico y variable, por lo tanto, siempre los productos están implementando características nuevas y siempre están saliendo nuevos sistemas operativos que requieren de funcionalidades nuevas. 
No instalarlos es patear el trabajo para más adelante y no sacarle el máximo provecho a la tecnología.

Respaldos
Siempre. Antes de hacer cualquier cambio, es necesario contar con los respaldos al día y de fácil acceso.

Ventana de mantenimiento
Un reinicio luego de la instalación del paquete nunca viene mal. Considerar la instalación y el reinicio en un horario no productivo o cuando se tenga la certeza que no impactará en las operaciones de los usuarios.

¿Dónde empezar?
Dependerá de la implementación que se quiera actualizar. Si es una estructura jerárquica, se recomienda partir desde lo más arriba hacia abajo. Si se tiene un CAS, partir desde el CAS hacia los otros sitios. Si es solo un servidor, partir por el servidor, luego la consola y al final los agentes.

¿Se debe instalar todos los CU anteriores antes de instalar el actual?
Dependerá del CU que se esté instalando. Por ejemplo, el CU4 de la versión 2012 R2 reemplaza a los anteriores. Siempre es una buena idea leer la descripción del CU antes de aplicarlo.

Descripción del CU
Como todo paquete de actualización tiene su respectiva entrada en el sitio de soporte de Microsoft. Leerlo antes de comenzar es un buen comienzo.

La pantalla de inicio de instalación del CU nos dará más información



Si queda alguna duda sobre el paquete que se quiere instalar, consultar en los foros de Technet, Server Fault  o alguno otro de su preferencia.



viernes, 5 de mayo de 2017

Cambio de hora 2017

Hola Mundo:

El día de hoy Microsoft liberó un nuevo hotfix opcional para el cambio de hora en Chile.

Lo único que cambia con respecto al anterior, es que se agrega la nueva zona horaria para la región de Magallanes.

El código del hotfix opcional es KB4015193 y pueden encontrar más referencia en:

https://support.microsoft.com/en-us/help/4015193/dst-changes-in-windows-for-magallanes-chile

Esta actualización ya está disponible para ser distribuida por WSUS o para ser descargada desde el catalogo http://www.catalog.update.microsoft.com/search.aspx?q=4015193

Es importante tener en cuenta que para distribuir este hotfix en máquinas Windows 8.1 o Windows Server 2012 R2, es necesario tener instalado el siguiente update rollup:
https://support.microsoft.com/en-us/help/2919355/windows-rt-8.1,-windows-8.1,-and-windows-server-2012-r2-update-april-2014

¡A parchar, a parchar!

sábado, 22 de abril de 2017

Obtener los contenedores donde se descubren equipos

¡Qué belleza que desde cierto año en adelante todos los productos de Microsoft se administran desde la consola de Powershell!

Esto da muchas prestaciones al momento de obtener información, realizar otro tipo de tareas administrativas no soportadas desde la administración gráfica o automatizar procesos.

Yendo al contexto, SCCM trabaja sobre Active Directory para el descubrimiento de usuarios, grupos y equipos. El descubrimiento específico para equipos se llama Active Directory System Discovery y, según la configuración aplicada, se ejecuta siguiendo una agenda y hace el descubrimiento en contenedores y unidades organizativas.

El listado de OU descubiertas se puede obtener directamente desde la consola, pero en un formato que no es exportable. Se torna complejo saber cuáles son cuando ya son un número considerable.

La solución está en hacerlo desde Powershell de SCCM. Primero que todo, hay que iniciar una sesión en el Powershell de SCCM.
Usar el siguiente script, asumiendo que el codigo de CLP y el servidor es MI-SCCM

PS CLP:\> $ADDiscovery = Get-CimInstance -ComputerName "MI-SCCM" -Namespace "root\SMS\site_CLP" -ClassName SMS_SCI_Component -Filter 'ComponentName="SMS_AD_SYSTEM_DISCOVERY_AGENT"'

PS CLP:\> $ADContainerProp = $ADDiscovery.PropLists | Where-Object {$_.PropertyListName -eq 'AD Containers'}

PS CLP:\> $ADContainerProp.Values

De esta forma, se obtendrá un listado en texto plano en Powershell para usarlo como se estime conveniente.

Espero que sea de utilidad.

Hasta la proxima entrega.

viernes, 24 de marzo de 2017

Obtener la ciudad del cliente en PHP

Hola Mundo:

Ya saben, estoy metiéndome poco a poco en desarrollo y les quiero compartir un trocito de código que utilicé en un proyecto.
El objetivo de este código  es obtener la ciudad del visitante a partir de la dirección IP.


 $ip = $_SERVER['REMOTE_ADDR'];
 $url = "http://freegeoip.net/json/".$ip;
 $data = file_get_contents($url);
 $obj = json_decode($data);
 $ciudad = $obj->city;

El codigo es sencillo. Obtiene un archivo JSON desde el servicio de Free Geo IP, lo procesa y almacena la ciudad en una variable.

Sencillo, ¿no?

jueves, 2 de marzo de 2017

Inventarios muy grandes en SCCM

Hola Mundo!
¿Qué tal la vida? ¿Las vacaciones? ¿El tiempo de verano? Se apareció marzo, pues. Nada que hacer.

El día de hoy, les compartiré un error habitual en SCCM a la hora de recolectar inventarios.
Una de las principales funciones de SCCM es mantener inventarios actualizados de las estaciones de trabajo que administra. Es bien completo y se puede manejar, con precisión, qué es lo que se va a inventariar. 

El problema se presenta cuando el inventario es muy grande y el archivo que llega al servidor excede los 5 MB. Ese es el tamaño máximo permitido por la plataforma.

El error que nos podemos encontrar es el siguiente:


Inventory Data Loader failed to process the file C:\Program Files\Microsoft Configuration Manager\inboxes\auth\dataldr.box\Process\XXXXXX.MIF because it is larger than the defined maximum allowable size of 5000000.

Solution: Increase the maximum allowable size, which is defined in the registry key HKLM\Software\Microsoft\SMS\Components\SMS_INVENTORY_DATA_LOADER\Max MIF Size (the default is 5 MB), and wait for Inventory Data Loader to retry the operation.


 El mismo mensaje de error nos sugiere qué hacer. Modificar el Registro de Windows. Navegar hacia la clave HKLM\Software\Microsoft\SMS\Components\SMS_INVENTORY_DATA_LOADER\Max  MIF Size y aumentar el valor.

Eso es todo.

Simple, ¿no?


miércoles, 18 de enero de 2017

Enviar datos a Azure Mobile Apps usando jQuery

Hola Mundo:

Este artículo es un tanto distinto a los que siempre se publican. Esta vez es sobre desarrollo, pero
consumiendo servicios publicados en Microsoft Azure.

Azure Mobile Apps es un servicio de Microsoft Azure que permite levantar, sin mayor esfuerzo, un backend para aplicaciones móviles. Este backend puede estar construido con ASP.NET o Node.js.
De cualquier manera, provee las herramientas para generar una REST API lista para ser consumida desde las aplicaciones cliente.

Me refiero a aplicaciones cliente y no móviles, porque estos servicios pueden ser consumidos desde cualquier lugar. Incluso desde un sistema web usando Javascript.

En este caso puntual, compartiré una ayuda de memoria para enviar datos usando jQuery usando el método AJAX:
$.ajax({
 type: "POST",
 contentType: "application/json; charset=UTF-8",
 url: "https://xxxxxxx.azurewebsites.net/tables/xxxxxx",
 headers: {'ZUMO-API-VERSION': '2.0.0', 'Content-Type': 'application/json'},
 data: JSON.stringify({
  "Campo1": "Valor1",
    "Campo2": "Valor2"
 }),
 dataType: "json",
 accept:  "json",
 success: function(datos){
   console.log(datos)
   alert('Datos reportados correctamente')
 },
 error: function(jqXHR, estado, error){
   console.log(estado)
   console.log(error)
 },
 complete: function(jqXHR, estado){
   console.log(estado)
 },
 timeout: 1000000000
});

Lo relevante:

  • El type es POST. No olvidar que estamos enviando datos al servidor. Si tienes duda sobre esto, revisa este link: http://www.restapitutorial.com/lessons/httpmethods.html
  • contentType debe ser "application/json; charset=UTF-8". El servidor recibe datos en formato JSON. De otra forma, arrojará error 500.
  • La url es la dirección web del servicio. Esta es la forma más estándar si es que no han creado una personalizada.
  • La cabecera de la petición se indica en headers. Siempre debe estar incluido 'ZUMO-API-VERSION': '2.0.0' y  'Content-Type': 'application/json'. En el caso que alguno falte, la consola indicará que hace falta una de las dos y arrojará un error 500 o 400.
  • En data se indican los datos que se enviarán. El método stringify del objeto JSON es el encargado de hacer que los datos que estamos enviando sigan el formato de JSON.  Recuerden que en contentType y en la cabecera se indica que estamos enviando datos en formato JSON. Si esto no está, recibirán un error 400.
  • El atributo accept le indica al servidor el formato en el que se requiere la respuesta.
  • El atributo dataType es usado por jQuery para "formatear" la respuesta antes de dejarla disponible para el trabajo con ella.
  • Success indica la función que se ejecutará cuando los datos se reporten correctamente.
  • Error indica la función que se ejecutará cuando se produzca un error en el reporte de datos.
  • Complete indica la función que se ejecutará luego de la ejecución de lo indicado en Success o Error.
  • Timeout indica el tiempo total de espera, en milisegundos, antes de cancelar la operación. Previene una ejecución casi infinita de la solicitud.
Nada más quería estar a la moda y jugar un rato con Javascript y Azure.

Espero que les sea de su total utilidad.

miércoles, 4 de enero de 2017

WSUS no sincroniza con SCCM. Error 503

Primer artículo del año. 

Este año se abre con una problemática muy habitual de WSUS y SCCM y guarda relación cuando el
rol de Software Update Point de SCCM no logra conectarse con el servicio de WSUS para gatillar la la actualización del catálogo de actualizaciones para los productos Microsoft seleccionados.

El servicio de WSUS provee una capa de servicios web que otros componentes, como SCCM, consumen para la interoperación.

El signo observado es el error de SCCM al sincronizar con el servicio. Al revisar el log SMS_WSUS_SYNC_MANAGER vamos a encontrar el siguiente mensaje:

Message ID: 6703 WSUS Synchronization failed. Message: The request failed with HTTP status 503: Service Unavailable. Source: Microsoft.UpdateServices.Administration.AdminProxy.CreateUpdateServer.

Básicamente, lo que se indica es que al intentar acceder al servicio web, éste le responde con un error 503. 
Si hacen el ejercicio de entrar por el navegador a la URL del servicio, el resultado será el mismo.

Al abrir la consola de IIS y revisar los App Pool encontrarán que WsusPool se encontrará detenido:
fuente: Blogs Technet

Ahí está el problema. El App Pool se encuentra detenido. Tienes dos opciones: Inciarlo de forma manual y esperar a que nuevamente se caiga, o bien, solucionar el problema.

Me inclino por la segunda opción. El problema está en que el App Pool cuenta con memoria asignada insuficiente para atender las peticiones de los clientes. Cuando hay muchos clientes haciendo uso del servicio, se va a utilizar toda la memoria y el servicio se detendrá.

Para corregir el problema entrar a las opciones avanzadas y buscar el elemento Private Memory Limit (KB) y asignarle un valor mayor. Quizá unos 4 ó 5 GB estará bien.
Fuente: Blogs Technet

Advertencia: Al aumentar la memoria asignada, el uso de recursos del servidor aumentará y provocará una carga mayor sobre el mismo. Al acceder muchos clientes al mismo servidor para la descarga de actualizaciones, es altamente probable que la red sufra un alto impacto. Si esto ocurre, sugiero revisar la arquitectura de distribución de paquetes.

Una vez realizado el cambio, iniciar el App Pool y el servicio funcionará normalmente.

Saludos!