Gestionar tareas desde Powershell

Durante la pandemia decidí utilizar el tiempo muerto para aprender más Powershell, uno de los proyectos que usé para motivarme fue un script para hacer un deploy de Windows 10 desde limpio a usable. 
Nada que configuradores como Ansible no hagan ya mejor, pero necesitaba engrasar mis habilidades haciendo algo.

Una de las tareas es actualizar el software instalado previamente usando chocolatey a través de una tarea programada. El workflow viene a ser este:

  1. Actualiza todo
  2. Borra todos los iconos que se creen en el escritorio público
  3. Lanza la tarea todos los días a las 0AM o, cuando el equipo esté disponible tras esa hora. 
$taskAction = New-ScheduledTaskAction -Execute 'powershell.exe' -Argument 'chocolatey upgrade --yes all; Get-ChildItem C:\Users\Public\Desktop -filter '*lnk' | foreach-object { Remove-item -Path $_.Fullname  -Force -ErrorAction SilentlyContinue }'       
$taskTrigger = New-ScheduledTaskTrigger -Daily -At 0AM
$taskPrincipal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType ServiceAccount
$taskSettings=New-ScheduledTaskSettingsSet -StartWhenAvailable
Register-ScheduledTask -TaskName "ChocolateyUpdate" -Action $taskAction -Trigger $taskTrigger -Description "Update chocolatey packages" -Principal $taskPrincipal -Settings $taskSettings  

Los logs asociados a la actualización son los de chocolatey, en una instalación por defecto, a fecha de escritura, están en C:\ProgramData\chocolatey\logs

 

·n·

Powershell – Using defined variables in a scriptblock

If you try use an already defined variable inside a scripblock, using the default call without any scope definition, the variable will not be expanded and it probably will not produce the expected outcome. 

From Powershell v3 onwards, the scopes include an «using», that allows to access defined variables in other scopes, in this way the variable will be expanded as expected inside the scriptblock.

$foo = 'Get-Childitem .'
Invoke-Command -Computername server -scriptblock { $using:foo }

 

·n·

Windows 10, change network configurations

Sometimes, after changing configurations in your internal network like the router or the DHCP subnet, Windows detects the network as a new one instead the same with minor tweaks.

This leads to a change in the network name (from Network to Network 2 and so on) and, in some cases, it changes from Private to Public, and all the shares do not work as expected.

How can this be fixed?

Sigue leyendo Windows 10, change network configurations

Using a mobile as a webcam in Windows

The times, they are a-changin… 

With Covid-19 around and most of us at home, the usage of video-conferencing software has raised from a work utility to a mainstream solution for keeping up with family and friends in a daily basis.

As a demand of video products arose and stocks disappeared, the prices increased for the pending units in amazon and ebay, anyhow, and since weeks ago, the amount of high res webcams (1080p, 30 fps) at my location is nearly to none for the usual culprits: Logitech C920, Brio, even cheap DSLR cameras and GoPros.

Some of us, that did not care about having a decent webcam around, are at a point in which the options are: using the phone directly or any laptop you have around.

What can you do if you want to use your own computer instead that awful integrated webcam or keep carrying around the phone and having to pay attention to that small screen?

Sigue leyendo Using a mobile as a webcam in Windows

The case of the unexplained

Como cada año, Mark Russinovich da su charla habitual sobre cómo hacer throubleshooting sobre el Windows de tu (su) madre, usando las aplicaciones disponibles en SysInternals.

Esta presentación coincide con la edición del nuevo libro sobre el mismo tema ya disponible en Amazon.

1h18′ de charla técnica muy entretenida para problemas habituales en Windows.

·n·

Jupiter

Y el día llegó, después de meses de divagación y comparativas, ahorro y lectura de especificaciones, finalmente, decidí clicar en ese «Pagar ya» de precio ridículo.

Y casi un mes más tarde, cambio de caja y devolución de dos discos después de un chasco -por otro lado, anunciado-, pude ponerme a ello, en ese momento sin miedo -pero con la cinta electro-estática, por si acaso- en el que disfruto deshaciendo el mejor packaging que me he encontrado, de ese delicioso aroma a fábrica y rompiendo todo ese plástico inútil que acompaña a todo lo nuevo.

Y luego está el software, el hypervisor con el que no tengo una tarjeta de red, para el que he tenido que comprar una gráfica y que me está haciendo pasar ratos divertidos, como poco…

Sigue leyendo Jupiter

Sincronizando el día a día

Trabajar en varios ordenadores cada día y no tener que depender de la nube para tener todo sincronizado, es posible.

Es una afirmación aparentemente ridícula en 2015, pero tener copias triplicadas de cosas que comparar es un horror por el que cualquiera con un ordenador, y un par de usb’s, ha sufrido alguna vez.

Para solventar este problema, uso una combinación de software peculiar, pero funcional, que me permite moverme sin miedo a saber cual es la última versión.

Sigue leyendo Sincronizando el día a día

Recuperación tras desastre con backuppc e Hyper-V

backuppcTras la actualización de gitlab-ce en la máquina virtual que mantiene mis core-services* y un reinicio para actualizar el kernel, la máquina ha decidido no volver a la vida y quedarse bloqueada en la carga inicial de servicios.

¿Qué hacer para recuperar los servicios y los últimos estados de partes relevantes de mi infraestructura si el servidor de backups es parte de lo que ha muerto?

Sigue leyendo Recuperación tras desastre con backuppc e Hyper-V