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·

Hyper-V VS Proxmox VS VirtualBox para laboratorio casero

La batalla de los virtualizadores
La batalla de los virtualizadores

He vuelto a empezar un curso, esta vez de Técnico de sistemas, donde nos dan un remix básico de terminología y uso de GNU/Linux y Windows Server 2012, como el temario ya lo tengo dominado, me estoy centrado en repasar contenidos de cara al LFCS y el 70-417.

En la academia disponemos de i7s con 8GB de RAM que soportan SLAT y por ende Windows 8.1 e Hyper-V o Proxmox y KVM, el caso es que el profesor parece no saberlo y estamos usando Windows 7 y VirtualBox.

En casa tengo ámbos montados pero llevo unos meses centrado en Hyper-V, ahora que he comparado ámbos en diferentes entornos quiero contaros las diferencias y posibilidades para un laboratorio casero (#homelab).

Sigue leyendo Hyper-V VS Proxmox VS VirtualBox para laboratorio casero