miércoles, 14 de julio de 2021

Proxmox vm backup status

For comment: Zabbix Share - Proxmox VMs Backup Status Template


The comment is still in  pending status, I paste it here:

Hi,
I have modified the status script to process several backup storages for different jobs. If you have only a job backup the script works as original.

I have added an 8th status: 8 => At least a VM backup OK, but not all. Thus, we know that at least a backup is ok, but not all our jobs were successfully executed.

[....]

The definition of the 8th state trigger prototype:
Name: At least a VM backup for VM {#VM_NUMBER} OK, but not all
Expression: {Template App Proxmox VMs Backup Status:proxmox-vms-backup-status[{#VM_NUMBER},{$BACKUP_PERIOD}].last()}=8
Add value mapping description 8 mapped to "At least a VM backup is OK, but not all"


Modified script:

#!/bin/bash

# Script for checking ProxMox virtual machines backup. For use in Zabbix. Skygge@2016
# Modified: MR_Andrew, 2018. Fran Couñago, 2021
# Special thanks: Max Dark, Marinero from cyberforum.ru

#Variables

backupconfig='/etc/pve/vzdump.cron'
storageconfig='/etc/pve/storage.cfg'
configdir='/etc/pve/local/qemu-server'

# Check every VM for existing backup files and check if they're newer than 7 days

mapfile -t bckstorarray < <( awk  -v vm=$1 '$0 ~ vm {for(i=1;i<NF;i++) {if( $i ~ /--storage/) print $(i+1)}}'  $backupconfig|sort|uniq)
# read physical backup path from storage configuration file for VM $1
if [ ${#bckstorarray[@]} = 0 ]; then
	#echo "Invalid VM number, or backup for VM $1 is not configured."
	echo 0
else
	#Array with multiple errors
	ONEBAD=0
	ONEGOOD=0
	for backupstorage in "${bckstorarray[@]}"
	do		
		backupdirectory=`cat $storageconfig|grep -w -A 1 $backupstorage|grep path|rev|cut -d " " -f 1|rev`		
		#echo BCKDIR=$backupdirectory
		if [ -d $backupdirectory/dump ]; then
				# check if backup file(s) exists on backup path for VM $1
				backup=`ls $backupdirectory/dump/|grep "$1" |grep -v -E "log|tmp|dat"|wc -l`
				if [ "$backup" = "0" ]; then
					#echo "VM $1 has no backup file."
					ONEBAD=2					
				else
					# check if backup file is newer than $2 day(s) for VM $1
					newbackup=`find $backupdirectory/dump/ -type f -name "*$1*" -not -name "*.log" -not -name "*.tmp" -not -name "*.dat" -mtime -$2 | sort -nr | head -1|wc -l`
						if [ "$newbackup" = "0" ]; then
							#echo "VM $1 backup is older than $2 day(s)."
							ONEBAD=3
						else
								#check last log file for errors
								backuplastlog=`ls $backupdirectory/dump/ | grep "$1" | grep log | tail -1`
								backupresult=`cat $backupdirectory/dump/$backuplastlog | grep -i -E "ERROR|FAILED"`
										if [ "$backupresult" = "" ];then
												#echo "VM $1 backup is OK, no errors found."
												ONEGOOD=1												
										else
												#echo "VM $1 backup finished with errors. Please, check logs."
												ONEBAD=0
										fi
						fi
				fi			
		else
			#echo "Backup directory for VM $1 does not exists."
			ONEBAD=1
		fi		
	done
	if [ $ONEGOOD = 1 ]; then
		if [ $ONEBAD != 0 ] ; then
			echo 8
		else
			echo 7
		fi
	else
		echo $ONEBAD
	fi
fi

Add Trigger Prototype:


Add Value Mapping



martes, 22 de junio de 2021

lunes, 31 de mayo de 2021

Seleccionar monitores en cliente de escritorio remoto (Remote Desktop Connection)

El fichero de configuración de RDP (una vez salvado) se puede editar con un fichero de texto, en este fichero si hemos puesto la opción de usar todos los monitores para la sesión remota nos aparecerá una línea que pone:

use multimon:i:1

para seleccionar los monitores en concreto que queremos utilizar debemos añadir la línea:

selectedmonitors:s:1,2

donde 1 y 2 son los identificadores de los monitores, estos identificadores pueden obtenerse ejecutando

mstsc /l


 


Fuentes:

Supported Remote Desktop RDP file settings | Microsoft Docs

How to remote desktop fullscreen RDP with just SOME of your multiple monitors - Scott Hanselman's Blog

miércoles, 27 de enero de 2021

Instalar aplicaciones de la MS Store vía powershell (.appx)

Usar Add-ApxPackage

Para todos los usuarios usar Add-ProvisionedAppPackage 

Por ejemplo para añadir un paquete en la imagen de sistema operativo que estamos usando (ene este casno no requiere fichero de licnecia) se usa:

Add-ProvisionedAppPackage  -Online -Skiplicense -PackagePath paquete.Appx

Para ver los links de descarga fácimente https://store.rg-adguard.net/

Si tiene dependencias habría que ponerlas de la siguiente forma:

Add-ProvisionedAppPackage   -Online -SkipLicense -PackagePath paquete.AppxBundle  -DependencyPackagePath paquete1.Appx,paquete2.Appx,paqueten.Appx

miércoles, 9 de diciembre de 2020

Implantación de políticas de restricción de software

  1. Crear política de restricción de software


  2. Cumplimiento - Establecer todos excepto admins

  3. Niveles de seguridad - Ilimitado (Unrestridted) de momento


  4. Monitorizar aplicaciones que se ejecutan durante el tiempo que creamos conveniente
    - Creamos en máquina a monitorizar dentro del registro en 
    Equipo\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\safer\codeidentifiers
    

    una clave (tipo cadena) llamada LogFileName que contendrá el nombre del fichero donde se nos guardará un registro de las aplicaciones cada vez que se ejecutan.


  5. Una vez analizado el fichero podemos meter algunas reglas por defecto antes de activar la política, de todas formas siempre se puede activar y ver el visor de eventos en el entorno de pruebas con usuarios reales. De esta forma vamos analizando que es lo que se ejecuta y que errores da.

  6. Activar la política es tan sencillo como ir al nivel de cumplimiento y cambiarlo por  el que necesitemos.



  7. Pulsando en reglas adicionales vamos añadiendo las que queramos

miércoles, 25 de noviembre de 2020

Actualización y conversión de tipo de licencia de Windows Server

  1. Ver  versión actual: 
     DISM /online /Get-CurrentEdition
    
  2. Ver  posibilidades de actualización: 
     DISM /online /Get-TargetEditions 
    
  3. Actualizar a nueva versión
    DISM /online /Set-Edition:<ID de edición> /ProductKey:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX /AcceptEula 
En caso de que se produzca el error 1168 ( pasa con una licencia MAK por volumen) 
  1. ejecutar con la key que corresponda n) de KMS client setup keys | Microsoft Docs, por ejemplo para un ServerStandard 2019:
    DISM /Online /Set-Edition:ServerStandard /ProductKey:N69G4-B89J2-4G8F4-WWYCC-J464C /AcceptEula 
  2. Después cambiamos la key por la nuestra:

    slmgr /ipk <Clave producto> slmgr /ato

Referencias:

L2TP Ipsec Windows to Mikrotik eror 789

 Add this to registry REG ADD HKLM\SYSTEM\CurrentControlSet\Services\PolicyAgent /v AssumeUDPEncapsulationContextOnSendRule /t REG_DWORD /d...