Configurar IP en linea de comandos

Hola Mundo:

Feliz año nuevo a todos. Parto este año con una ayuda de memoria y escribiendo el post 500 de la
historia del blog.
El siguiente artículo trata sobre cómo configurar una interfaz de red a través de la línea de comandos. Esta modalidad es muy útil para cuando necesitemos configurar parámetros de red en entornos Windows PE, como es el caso de la distribución de sistemas operativos en ambientes que no tienen. DHCP y se tiene que ir al servidor WDS o SCCM a buscar la imagen.
Sin más preámbulo, empecemos.

Antes de partir hay que conocer cuáles son las interfaces disponibles en el equipo

El mount Netsh interface show interface nos dará la información de todas las interfaces de red que tiene el equipo. Tomar nota del elemento que está en Nombre interfaz.
El comando para configurar la red debe seguir la sintaxis: netsh interface ip set address «NOMBRE INTERFAZ» static IP MASCARA GATEWAY 
Este comando sirve para configurar una ip estática. Para DHCP, cambiar static por DHCP y borrar el resto.
Sin DNS configurado no es posible resolver el nombre del servidor. Este comando debe seguir la siguiente sintaxis:
Netsh interface ip add dns «NOMBRE INTERFAZ» DNS validate=no
Si acceden a revisar la configuración verán los parámetros configurados.
Feliz 2020.

Desinstalar update desde SCCM en equipos con Windows 10

Hola mundo.
Hace unos días me tocó resolver la interrogante de un cliente. Esta interrogante consistía en cómo desinstalar un update de Windows 10 desde la plataforma System Center Configuration Manager CB.

Les expliqué que esa operación se podría llevar a cabo distribuyendo un TS que ejecutara un comando para la desinstalación del update, indicando únicamente el número de KB de la actualización e invocando la aplicación wusa.exe, encargada de manejar paquetes de actualización independiente.

Revisando el funcionamiento de la aplicación wusa y los parámetros, porque de la forma que tenía en mente no funcionaba y arrojaba error de parámetro, no me dejaba continuar.
Lo que reveló la ayuda de wusa era que no estaba soportado la desinstalación silenciosa de una actualización utilizando el código KB de la actualización. Esto significa que para concretar la acción, se requería la intervención del usuario.

Después de mucho probar e investigar, encontré que se podía desinstalar de forma silenciosa con el paquete de instalación, ejecutando algo así
wusa.exe /uninstall PAQUETE.msu /quiet
Localmente funciona, pero al ejecutar remotamente no.

La solución es generar un paquete indicando el paquete msu e invocar a wusa de la siguiente manera:
%WINDIR%SysNativewusa.exe /uninstall PAQUETE.msu /quiet

De esta forma se copiará hacia la máquina cliente y ejecutará según la orden.

Espero que les sea de ayuda.

Chau!

Aumentar tamaño permitido de inventario

Hola Mundo:

Los que hemos trabajado con la maravillosa herramienta System Center Configuration Manager, nos ha dado por aumentar los elementos que se van a inventariar del hardware de las estaciones de trabajo administradas con la plataforma. 
El problema que al momento de hacer la recolección nos encontramos con el problema que el tamaño del inventario es superior a los 5 MB permitidos.

Para solucionar este inconveniente, se debe modificar el siguiente registro en regedit:

HKLMSoftwareMicrosoftSMSComponentsSMS_INVENTORY_DATA_LOADER

Ubicamos el elemento Max MIF Size y se le asigna el valor 320000 hex. Esto dará un tamaño máximo de 52 MB.

Esperar que los inventarios se vuelvan a recolectar y que se permita el nuevo tamaño.

Espero que les sirva.


Truncate tabla sin hacer validacion de foreign constraints

Hola Mundo:

¿Cómo les va? Hace tiempo que no pasaba por aquí, porque he estado ocupado desarrollando
productos propios.

El tema de hoy hace referencia a un problema típico de bases de datos, específicamente cuando se quiere hacer un truncate a una tabla que es referenciada desde otras. Al existir restricciones no se puede hacer ni un truncate, ni drop ni delete, aun así cuando la tabla que la referencia está vacía.

Para este caso hay dos opciones:
1) Eliminar los constraint, hacer la operación y luego volver a crear los constraint
2) Desactivar la operación de comprobación de constraint, hacer la operación y volver activarlo.

La opción 2 es una buena medida, que debe ser usada solo en ambiente de laboratorio. El código es el  siguiente

SET FOREIGN_KEY_CHECKS = 0; 
TRUNCATE table1; 
TRUNCATE table2; 
SET FOREIGN_KEY_CHECKS = 1; 

Y eso es todo

Android x86 colgado en la linea de comandos

Hola Mundo:

Este post es sobre un laboratorio que estoy haciendo. El desarrollo de éste requiere de trabajar con Android en una máquina virtual. En este caso, estoy usando Oracle Virtualbox.

Al momento de instalar Android, que lo puedes conseguir desde aqui: https://www.android-x86.org, en una máquina virtual, el proceso es bien simple. Lo importante es que en el proceso de particionado de disco, marques la partición como Boot.

El problema se presenta al arrancar. Al parecer el proceso parte bien, pero se queda pegado en la línea de comandos:

El motivo de este problema, es que no cuenta la máquina virtual con la configuración de la controladora gráfica. Tiene que quedar con el adaptador VBoxVGA y con la aceleración 3D activada.
Con esto el sistema iniciará de forma normal.
Espero que les sirva.

Error cannot create references to/from string offsets en WordPress

Hola Gente:

Este post es re pequeño y tiene que ver con un trabajo que estaba haciendo para un cliente. 
El trabajo consistía en migrar la instalación de WordPress de un hosting compartido a otro. 
Para esto respaldé la DB y los archivos de WordPress (incluyendo wp-content) y posteriormente los subí a la nueva cuenta de hosting.
Hubo cambios de DNS y esperé la correcta propagación.

El problema se encontraba en que al querer iniciar sesión daba error 500. El error era el siguiente:
PHP Fatal error:  Uncaught Error: Cannot create references to/from string offsets in wp-includes/user.php:54
Stack trace:
#0 wp-login.php(775): wp_signon(», »)
#1 {main}
  thrown in wp-includes/user.php on line 54

Después de revisar la base de datos, archivos. Borrarlos y volverlos a subir. Nada funcionaba.
Se me ocurrió mirar la versión de PHP del servidor y era la 7.1. Decidí bajarla a la 5.6 y funcionó de maravillas.


ERROR: DownloadContentFiles() failed with hr=0x80072efd

Hola a todos:

Una de las funcionalidades que mas se habilitan en System Center Configuration Manager es la distribución de actualizaciones. Esto es a través del rol de WSUS de Windows Server y SUP de SCCM.
Es un escenario común que en las empresas tengan bloqueado el acceso a los sitios de Microsoft Updates para no saturar el ancho de banda y de pasada tener a los equipos sin actualizaciones, salvo que tengan un WSUS dentro de la red y que eso administre las actualizaciones.
En este caso, en el log PatchDownloader.log, ubicado en C:Users<usuario>AppDataLocalTemp2, nos dará una luces de lo que está pasando.
Si al momento de descargar aparece un error como este:


ERROR: DownloadContentFiles() failed with hr=0x80072efd

Es porque se deben revisar las políticas que bloquean el acceso al servicio de Microsoft Update.
Teniendo resuelto la corrección de las políticas, se puede hacer de nuevo la descarga de actualizaciones.

Saludos!

Cargar drivers a Boot Image de SCCM

Hola mundo.
Los que trabajamos con SCCM, especialmente en la distribución de sistemas operativos, mas de alguna vez hemos tenido que lidiar con controladores de red.
Pongamos en contexto. Una boot image es un entorno de Windows PE que tiene cargado scripts encargados de la distribución y captura de sistemas operativos. Para ambos propósitos este entorno requiere de conexión con la instalación de SCCM.
Cuando la conexión no se realiza, es necesario agregar el controlador de red necesario.

Esto se realiza yendo al apartado de Drivers dentro del apartado de Operating Systems.
Dentro del elemento, ir a Import Driver

En el asistente, indicar la opción de Import all drivers in the following network path (UNC). Esta opción agregará todos los controladores encontrados en esta ruta en red.

El asistente recorrerá de forma recursiva el directorio y detectará los controladores. Esta operación puede durar algunos minutos, dependiendo de la cantidad de controladores.
En esta pantalla, se seleccionan los controladores que se van a importar. Por ejemplo, si vamos a trabajar con imágenes de 64 bits, quitar las de 32 bits. 
Está la opción de agregarlos a un paquete de controladores. Esta opción es útil si estamos distribuyendo sistemas operativos y la instalación de Windows requiere de controladres. En este caso vamos a crear un paquete.
Para la creación del paquete hay que indicar el nombre, comentarios y la ruta UNC donde se almacenará el paquete de controladores.
Una vez creado, podemos avanzar. 
Este paso el más importante. Consiste en agregar los controladores importados en un boot image. En este caso trabajaremos solamente con la imagen de 64 bits. Se selecciona la primera opción.
SCCM nos alerta la necesidad de reconstruir el boot image para poder utilizarlo. Dejaremos que SCCM se ocupe de ellos. Para eso, seleccionamos Yes.
Lo más habitual es agregar controladores de red o de almacenamiento. SCCM nos alerta que hay controladores que no forman parte de esa categoría. Seleccionamos Yes.

Resumen de los controladores que se van a agregar.
Ejecución del proceso. Toma su tiempo.

Finalización del proceso.

Si revisamos los controladores en las propiedades del boot image, encontraremos todos los controladores que fueron agregados. 

Espero que se de utilidad.
Hasta la próxima

Notas sobre el uso de templates en Azure

Hola Mundo:

Usar templates para la creación de recursos en Azure es una característica que existe desde hace algunos añ os en Azure. Esto fue traído por la tecnología implementada Azure Resource Manager, que cambia la forma en la cual se crean y de administran recursos.
Éstas son algunas notas para tener en consideración




Herramientas adecuadas

En mi caso, trabajo con un MacBook Pro y afortunadamente está Visual Studio Code , que es un IDE gratuito y multi plataforma, orientado a desarrollos en la nube y también funciona como editor de texto para otros lenguajes. 
Este IDE trae la posibiliad de trabajar con extensiones que potenciarán el desarrollo. Hay uno para Azure Resource Manager llamado Azure Resource Manager Tools.

Variables, parámetros y funciones definidas

Es importante conocer la diferencia entre parámetros y variables. Básicamente, los parámetros son los que se reciben desde un formulario generado de forma automática y deben ir encasillados desde el espacio de parameters. Las variables son justamente eso, variables. Sirven para la utilización de complejas estructuras de forma simple. Las variables pueden tomar como valor el valor de un parámetro.  
Las funciones definidas apoyarán en tareas como concatenación o trabajar con las propiedades de un resource group, por ejemplo.
Mas información sobre estas funciones se pueden encontrar en: https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-template-functions
Ejemplos
Si no sabes donde empezar a trabajar con templates, es recomendado basarte en ejemplos.  Existe un completo repositorio de templates que pueden servir para armar templates para la mayoría de los escenarios. La documentación sobre como usarlos se puede encontrar en https://azure.microsoft.com/en-us/resources/templates/ y el repositorio en Github se puede acceder desde https://github.com/Azure/azure-quickstart-templates
Espero que estas notas guíen el inicio  de trabajo con Azure ARM Templates.
Chau!