ADS

Visualizzazione post con etichetta Server. Mostra tutti i post
Visualizzazione post con etichetta Server. Mostra tutti i post

giovedì 21 settembre 2023

File Batch (BAT) per eseguire software remoto

Chi come me usa PC in un dominio a volte deve installare software EXE o MSI su molti PC. Se non si vuole ricorrere alle GPO si può fare usando due programmi forniti da Microsoft: Il primo è MSIEXEC già incluso nei PC e nel server. L'altro è PSEXEC scaricabile per pacchetto PSTools di Microsoft da qui:

https://learn.microsoft.com/en-us/sysinternals/downloads/psexec

Il piccolo programma si occupa con pochissime righe di diffrenziare gli exe dagli msi che altrimenti potrebbero dare errore durante l'installazione. Chiede il nome utente amministrativo e la relativa password.

Il numero dei pc fa riferimento ad una consapevole identificazione del tipo:

Computer-01
Computer-02

....

Oppure 

PC01
PC02

...

Se avete nomi diversi purtroppo andrebbe modificato il programmino che aggiunge lo zero per numeri inferiori a 9...

Eccolo:


@echo off


COLOR 4F

echo By Marco Mira 2023

echo.

setlocal enabledelayedexpansion


rem Richiedi l'utente e la password

set /p "user=Inserisci il nome utente completo di DOMINIO\: "

set /p "password=Inserisci la password senza essere visto: "

echo.

echo CTRL+C per uscire con S in qualsiasi momento!

echo.


:menu

echo Richiedi il nome del PC, il numero di partenza, il numero di fine e il percorso del file .exe o .msi

echo.

set /p "computer_name=Inserisci il nome del PC: "

set /p "start_number=Inserisci il numero di partenza (da): "

set /p "end_number=Inserisci il numero di fine (a): "


echo.

echo Scegli se EXE(1) o MSI(2)

echo.

echo 1 - Esegui PSEXEC con EXE

echo 2 - Esegui MSIEXEC con MSI

echo x - Uscita

echo.

set /p "scelta=Inserire il numero desiderato: "


if "%scelta%"=="1" (


goto :exe


) else if "%scelta%"=="2" (


goto :msi


) else (


goto :fine

)


:exe


rem Richiedi il percorso del file .exe

echo Non dimenticare il percorso completo \\server\cartella\programma.exe

echo e gli eventuali / con opzioni (silent, verysilent, allusesrs, etc)

echo.

set /p "file_path=Inserisci il percorso e il nome del file .exe: "


rem Ciclo attraverso l'intervallo di numeri

for /l %%i in (%start_number%,1,%end_number%) do (

    

    rem Genera il nome del computer con zero davanti ai numeri da 1 a 9

    set "computer=!computer_name!%%i"

    if %%i leq 9 set "computer=!computer_name!0%%i"

echo Eseguo il comando su  !computer!

    psexec \\!computer! -u !user! -p !password! -d -i !file_path!

)


goto :fine


:msi


rem Richiedi il percorso del file .msi

echo Immetti il percorso completo \\server\cartella\programma.msi

echo Ricorda che le opzioni sono di msiexec e /passive   gi  incluso

echo.

set /p "msi_path=Inserisci il percorso del file .msi: "


rem Ciclo attraverso la serie di numeri

for /l %%i in (%start_number%,1,%end_number%) do (

    

    rem Genera il nome del computer con zero davanti ai numeri da 1 a 9

    set "computer=!computer_name!%%i"

    if %%i leq 9 set "computer=!computer_name!0%%i"

echo Eseguo il comando su  !computer!

    psexec \\!computer! -u !user! -p !password! -s -i msiexec /i !msi_path! /passive

)


:fine

echo Fatto!

pause


:endlocal


mercoledì 5 aprile 2023

Maledetto 0x0000011b

Questo errore ha iniziato ad assillarmi su alcuni PC della mia rete Windows Server 2012 R2... Dopo vari tentativi ho capito, finalmente, che la modifica al registro lo devo fare sul server e riavviare il servizio di spooling...

KEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Print \

Aggiungere la chiave DWORD32

RpcAuthnLevelPrivacyEnabled e lasciare a 0

L'altra soluzione molto più complessa ma magari adatta a piccole situazioni casalinghe è collegarsi alla stampante con il suo IP e non tramite la condivisione \\server\printer

Esiste anche la possibilità di installare la stampante sulla localPort \\server\print ma poi si devono recuperare manualmente i driver per avere la corretta installazione, quindi sconsigliato.

Buon lavoro

lunedì 28 novembre 2022

Un Backup semplice da CMD

 Mi dimentico sempre di quanto sia funzionale ed elegante il comando ROBOCOPY!


Avevo necessità di copiare dei file da un NAS ad un altro disco esterno visto da un secondo NAS come unità USB... Ho provato i vari backup inclusi in Synology e QNAP ma con pessimi risultati.

Alla fine ho montato due dischi con le rispettive cartelle e ho dato un comando in un file che viene eseguito ogni notte:

@ECHO Copia mirroring Backup Didattica

NET USE T: \\192.168.xx.242\Backup_Didattica

NET USE P: \\192.168.yy.2\Backup_Didattica

RoboCopy t:\ p:\  /MIR  /FFT  /Purge  /LOG+:c:\Backup\Didattica.txt  /TEE

NET USE T: /DELETE

NET USE P: /DELETE

Ditemi cos'è più elegante? Crea tutte le cartelle (MIR) ed eventualmente cancella quelle non più presenti in origine (PURGE), tiene conto del tempo diverso fra sistemi operativi e file system diversi (FFT) inoltre crea un log appeso al precedente... (LOG+ e TEE)

Buon Backup!