mercoledì 20 dicembre 2023

Windows 11: Installazione offline degli Strumenti di amministrazione remota del server tramite l'ISO di FoD

Come indicato negli articoli precedenti, per poter installare gli strumenti di amministrazione remota del server (RSAT) in Windows 11 è necessario l'accesso a Microsoft Update. Nel caso non fosse possibile accedere ai server di Microsoft Update direttamente dalla propria workstation, si può procedere con l'installazione offline (consigliata per le reti scollegate senza accesso a Internet) scaricando l'immagine ISO contenente i componenti (Feature on Demand) per la propria versione di Windows dal sito Web di Microsoft (o dal Volume Licensing Service Center, VLSC).

Per le versioni di Windows 10 2004 e successive è possibile scaricare "Windows 10 DISCO FOD 1 ISO (versione 2004 o successiva)" da https://learn.microsoft.com/it-it/azure/virtual-desktop/language-packs.
Per le versioni di Windows 11 21H2/22H2/23H2  è possibile scaricare da https://learn.microsoft.com/it-it/azure/virtual-desktop/windows-11-language-packs le ISO  "Windows 11, versione 21H2 Lingua e funzionalità facoltative ISO"  oppure "Windows 11, versione 22H2 e 23H2 Lingua e funzionalità facoltative ISO".

Nel nostro caso è stata scaricata l'immagine Windows 11, versione 22H2 e 23H2 Lingua e funzionalità facoltative ISO. Terminato il download possiamo decidere di copiare e montare il file .ISO sulla postazione su cui installare gli strumenti di amministrazione remota del server, masterizzare l'ISO su un supporto DVD o estrarre il contenuto in una cartella condivisa.
L'immagine ISO contiene una serie di file .CAB che includono i componenti RSAT. Nell'immagine scaricata, i file CAB relativi agli strumenti di amministrazione remota del server si trovano all'interno della cartella LanguagesAndOptionalFeatures.
File .CAB
FIG 1 - File .CAB
Per installare i componenti tramite PowerShell basterà indicare tale cartella come, ad esempio, nel seguente comando in cui la cartella LanguagesAndOptionalFeatures contenente i file .CAB si trova su disco D: (in un ambiente aziendale sarebbe preferibile condividere la cartella da un server accessibile da tutte le workstation)

 Add-WindowsCapability -Online -Name Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0 -LimitAccess -Source d:\LanguagesAndOptionalFeatures  

Impostare il percorso della directory contenente i componenti dell'immagine FoD tramite i Criteri di gruppo locali

  • Avviare l'editor Criteri di gruppo locali (gpedit.msc) oppure, nel caso di Windows Server, avviare Gestione Criteri di gruppo (gpmc.msc).
  • Accedere a Configurazione computer->Modelli amministrativi->Sistema.
  • Abilitare la policy Specifica le impostazioni per l'installazione e il ripristino dei componenti facoltativi e, nella casella Percorso alternativo del file di origine, specificare  il percorso UNC della directory contenente i file FoD.
Editor Criteri di gruppo locali
FIG 2 - Editor Criteri di gruppo locali


In alternativa, è possibile impostare questo parametro nel registro di sistema con una GPP specificando il percorso della directory FoD nel parametro LocalSourcePath (REG_Expand_SZ) sotto la chiave di registro HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing.



Errori comuni nell'installazione degli Strumenti di amministrazione remota del server

0x8024402c o 0x80072f8f 
Windows non può accedere ai server Microsoft Update per scaricare i file RSAT. Verificare di avere accesso a Internet , verificare quanto indicato nell'articolo precedente o installare i componenti da un'immagine FoD locale.

0x800f081f 
Verificare il percorso della directory contenente i componenti RSAT specificati nel parametro -Source del comando Add-WindowsCapability.

0x800f0950
L'errore è simile a 0x800f0954 visto nell'articolo precedente.

0x80070490 
Controllare e riparare l'immagine di Windows utilizzando DISM: 
DISM /Online /Cleanup-Image /RestoreHealth




lunedì 18 dicembre 2023

Windows 11: Installazione degli Strumenti di amministrazione remota del server tramite PowerShell

Nell'articolo precedente abbiamo visto come installare gli strumenti di amministrazione remota del server (RSAT) in Windows 11 (Pro o Enterprise) tramite le Funzionalità aggiuntive.
In questo articolo vedremo come eseguire l'operazione tramite PowerShell.
 
Il seguente comando PowerShell elenca i componenti RSAT che è possibile installare sul computer. Il campo State indica se il modulo è già stato installato (Installed) oppure non presente (NotPresent)
 Get-WindowsCapability -Name RSAT* -Online | Select-Object -Property DisplayName, State  
Elenco strumenti di amministrazione remota del server (RSAT)
FIG 1 - Elenco strumenti di amministrazione remota del server (RSAT)

Per installare uno specifico strumento di amministrazione remota del server è possibile utilizzare il cmdlet Add-WindowsCapability, prima però, è necessario conoscere il nome del modulo da installare. Per individuare il nome del modulo da installare è possibile utilizzare il seguente comando PowerShell (il nome è evidenziato nel campo Name).
 Get-WindowsCapability -Name RSAT* -Online | Select-Object -Property Name, DisplayName, State |fl  
 
Elenco nomi funzionalità
FIG 2 - Elenco nomi funzionalità

Per installare uno strumento di amministrazione remota del server basterà eseguire il comando
Add-WindowsCapability –online –Name <nome_modulo>
Ad esempio, per installare strumenti per Server DHCP il comando sarà
 Add-WindowsCapability –online –Name Rsat.DHCP.Tools~~~~0.0.1.0  
Add-WindowsCapability
FIG 3 - Add-WindowsCapability

Alcuni componenti RSAT possono richiedere un riavvio dopo l'installazione.
 
I componenti RSAT non fanno parte dell'immagine di Windows e sono disponibili come funzionalità su richiesta. Ciò significa che il computer deve essere collegato a Internet per poter installare gli strumenti di amministrazione remota del server. Windows scarica e installa i file binari RSAT dai server di Microsoft Update.
 
Per installare solo gli Strumenti di amministrazione remota del server non ancora installati, è possibile eseguire il seguente comando
 Get-WindowsCapability -Name RSAT* -Online | where State -EQ NotPresent | Add-WindowsCapability –Online  

 
In tabella l'elenco degli Strumenti di amministrazione remota del server disponibili in 
Windows 11 22H2.
 
Name DisplayName
Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0
Strumenti di amministrazione remota del server: strumenti di Active Directory Domain Services e Lightweight Directory Services
Rsat.AzureStack.HCI.Management.Tools~~~~0.0.1.0
Strumenti di amministrazione remota del server: modulo PowerShell per Azure Stack HCI
Rsat.BitLocker.Recovery.Tools~~~~0.0.1.0
Strumenti di amministrazione remota del server: utilità di amministrazione di Crittografia unità BitLocker
Rsat.CertificateServices.Tools~~~~0.0.1.0
Strumenti di amministrazione remota del server: strumenti di Servizi certificati Active Directory
Rsat.DHCP.Tools~~~~0.0.1.0
Strumenti di amministrazione remota del server: strumenti per Server DHCP
Rsat.Dns.Tools~~~~0.0.1.0
Strumenti di amministrazione remota del server: strumenti per Server DNS
Rsat.FailoverCluster.Management.Tools~~~~0.0.1.0
Strumenti di amministrazione remota del server: strumenti per Clustering di failover
Rsat.FileServices.Tools~~~~0.0.1.0
Strumenti di amministrazione remota del server: strumenti per Servizi file
Rsat.GroupPolicy.Management.Tools~~~~0.0.1.0
Strumenti di amministrazione remota del server: strumenti di gestione di criteri di gruppo
Rsat.IPAM.Client.Tools~~~~0.0.1.0
Strumenti di amministrazione remota del server: client di Gestione indirizzi IP
Rsat.LLDP.Tools~~~~0.0.1.0
Strumenti di amministrazione remota del server: strumenti LLDP Data Center Bridging
Rsat.NetworkController.Tools~~~~0.0.1.0
Strumenti di amministrazione remota del server: strumenti di gestione del Controller di rete
Rsat.NetworkLoadBalancing.Tools~~~~0.0.1.0
Strumenti di amministrazione remota del server: strumenti per Bilanciamento carico di rete
Rsat.RemoteAccess.Management.Tools~~~~0.0.1.0
Strumenti di amministrazione remota del server: strumenti di Gestione Accesso remoto
Rsat.RemoteDesktop.Services.Tools~~~~0.0.1.0
Strumenti di amministrazione remota del server: strumenti Servizi Desktop remoto
Rsat.ServerManager.Tools~~~~0.0.1.0
Strumenti di amministrazione remota del server: Server Manager
Rsat.StorageMigrationService.Management.Tools~~~~0.0.1.0
Strumenti di amministrazione remota del server: strumenti di gestione del servizio di migrazione dello spazio di archiviazione
Rsat.StorageReplica.Tools~~~~0.0.1.0
Strumenti di amministrazione remota del server: modulo di Replica archiviazione per Windows PowerShell
Rsat.SystemInsights.Management.Tools~~~~0.0.1.0
Strumenti di amministrazione remota del server: modulo System Insights per Windows PowerShell
Rsat.VolumeActivation.Tools~~~~0.0.1.0
Strumenti di amministrazione remota del server: strumenti di attivazione di contratti multilicenza
Rsat.WSUS.Tools~~~~0.0.1.0
Strumenti di amministrazione remota del server: strumenti di Windows Server Update Services



Per disinstallare gli strumenti di amministrazione remota del server, si utilizza il cmdlet Remove-WindowsCapability. Ad esempio, per rimuovere  gli strumenti di Active Directory Domain Services e Lightweight Directory Services il comando da eseguire sarà
 Remove-WindowsCapability -Online -Name Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0  
Per disinstallare tutti gli strumenti di amministrazione remota del server installati basterà eseguire il comando
 Get-WindowsCapability -Name RSAT* -Online | where State -EQ Installed | Remove-WindowsCapability –Online  


Installazione tramite Deployment Image Servicing and Management 

Gli strumenti di amministrazione remota del server possono anche essere installati tramite Deployment Image Servicing and Management (DISM.exe). Ad esempio
 DISM.exe /Online /add-capability /CapabilityName:Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0 /CapabilityName:Rsat.DHCP.Tools~~~~0.0.1.0  
 
 

Errore 0x800f0954 durante l'installazione

Se il computer Windows è configurato per ricevere gli aggiornamenti da un server di aggiornamento locale (WSUS) o da SCCM (Configuration Manager) SUP, è possibile che venga visualizzato un messaggio di errore quando si tenta di installare RSAT utilizzando la GUI, Add-WindowsCapability o DISM: Errore 0x800f0954.
 
In questo caso, Windows tenta di scaricare il pacchetto RSAT dal server di aggiornamento locale e restituisce l'errore 0x800f0954.
 
Per ignorare WSUS locale durante l'installazione di funzionalità aggiuntive di Windows e di Features On Demand (compreso RSAT), è necessario attivare un'opzione dei Criteri di gruppo:
  • Avviare l'editor Criteri di gruppo locali (gpedit.msc) oppure, nel caso di Windows Server, avviare Gestione Criteri di gruppo (gpmc.msc).
  • Accedere a Configurazione computer->Modelli amministrativi->Sistema.
  • Abilitare la policy Specifica le impostazioni per l'installazione e il ripristino dei componenti facoltativi e selezionare l'opzione Scarica il contenuto di ripristino e le funzionalità facoltative direttamente da Windows Update invece che da Windows Server Update Services (WSUS).
    Specifica le impostazioni per l'installazione e il ripristino dei componenti facoltativi
    FIG 4 - Specifica le impostazioni per l'installazione e il ripristino dei componenti facoltativi

  • Salvare le modifiche e forzare l'update delle policy con il comando gpupdate /force
  • Riavviare il servizio Windows Update eseguendo i comandi net stop wuauserv e net start wuauserv
Dopo questa modifica, l'installazione di RSAT tramite PowerShell o DISM dovrebbe essere completata senza errori.
 

Errore 0x8024002e  durante l'installazione

La connessione a Microsoft Update durante il recupero dei componenti RSAT potrebbe essere bloccata da alcune impostazioni del registro di Windows. In tal caso, durante l'installazione di RSAT, verrà visualizzato il codice di errore 0x8024002e.
Per forzare il download dei componenti RSAT da Microsoft Update bisogna intervenire sul registro di sistema:
  • Avviare l'Editor del Registro di sistema e posizionarsi su
    HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate
  • Assegnare il valore 0 ai seguenti parametri DWORD
    DoNotConnectToWindowsUpdateInternetLocations 
    DisableWindowsUpdateAccess
  • Riavviare il servizio wuauserv tramite i comandi net stop wuauserv e net start wuauserv




sabato 9 dicembre 2023

Windows 11: Installazione degli Strumenti di amministrazione remota del server

Quando si installano le funzioni di gestione insieme ai ruoli e alle funzioni, si installano gli Strumenti di amministrazione remota del server (Remote Server Administration Tools o RSAT). Gli Strumenti di amministrazione remota del server vengono spesso installati su un desktop, in modo da poter gestire i server dalla propria workstation invece di accedere a ogni singolo server. In questo articolo verrà trattata l'installazione degli Strumenti di amministrazione remota del server su un sistema Windows 11 (Pro o Enterprise) e verrà mostrato come aggiungere i server da gestire.


Installazione degli Strumenti di amministrazione remota del server
A partire dalla versione 1809 di Windows 10, gli Strumenti di amministrazione remota del server sono inclusi nel sistema operativo ed è sufficiente attivarli. In Windows 11 gli strumenti di amministrazione remota del server aggiornati vengono scaricati da Microsoft Update.

Per installare gli strumenti di amministrazione in Windows 11, cliccare sul pulsante Start e selezionare Impostazioni (in alternativa premere la combinazione di tasti WIN+I).
Selezionate App e quindi Funzionalità facoltative.
App
FIG 1 - App

Cliccare su Visualizza le funzionalità quindi selezionare dall'elenco gli strumenti di amministrazione remota desiderati e cliccare su Avanti. In questo esempio è stato selezionato Server Manager che include gran parte degli strumenti amministrativi.
Tramite l'apposita casella è possibile ricercare la funzionalità desiderata. Gli strumenti di amministrazione remota del server installabili su Windows 11 22H2 sono:
  • Strumenti di amministrazione remota del server: strumenti di Active Directory Domain Services e Lightweight Directory Services
  • Strumenti di amministrazione remota del server: modulo PowerShell per Azure Stack HCI
  • Strumenti di amministrazione remota del server: utilità di amministrazione di Crittografia unità BitLocker
  • Strumenti di amministrazione remota del server: strumenti di Servizi certificati Active Directory
  • Strumenti di amministrazione remota del server: strumenti per Server DHCP
  • Strumenti di amministrazione remota del server: strumenti per Server DNS
  • Strumenti di amministrazione remota del server: strumenti per Clustering di failover
  • Strumenti di amministrazione remota del server: strumenti per Servizi file
  • Strumenti di amministrazione remota del server: strumenti di gestione di criteri di gruppo
  • Strumenti di amministrazione remota del server: client di Gestione indirizzi IP
  • Strumenti di amministrazione remota del server: strumenti LLDP Data Center Bridging
  • Strumenti di amministrazione remota del server: strumenti di gestione del Controller di rete
  • Strumenti di amministrazione remota del server: strumenti per Bilanciamento carico di rete
  • Strumenti di amministrazione remota del server: strumenti di Gestione Accesso remoto
  • Strumenti di amministrazione remota del server: strumenti Servizi Desktop remoto
  • Strumenti di amministrazione remota del server: Server Manager
  • Strumenti di amministrazione remota del server: strumenti di gestione del servizio di migrazione dello spazio di archiviazione
  • Strumenti di amministrazione remota del server: modulo di Replica archiviazione per Windows PowerShell
  • Strumenti di amministrazione remota del server: modulo System Insights per Windows PowerShell
  • Strumenti di amministrazione remota del server: strumenti di attivazione di contratti multilicenza
  • Strumenti di amministrazione remota del server: strumenti di Windows Server Update Services

Strumenti di amministrazione remota del server, Server Manager
FIG 2 - Strumenti di amministrazione remota del server, Server Manager

Nella finestra successiva cliccare su Installa.
Server Manager, Installa
FIG 3 - Server Manager, Installa
Terminata l'installazione, potrebbe essere necessario riavviare il sistema.
Server Manager, Installazione terminata
FIG 4  -Server Manager, Installazione terminata


Utilizzo dello Strumento di amministrazione remota Server Manager
Terminata l'installazione è possibile avviare Server Manager dal menu Start.
Nella barra di avvio rapido, cliccare su Aggiungi altri server da gestire.

Aggiungere altri server da gestire
FIG 5 - Aggiungere altri server da gestire

Nell'apposita caselle, digitare il nome del server che si intende gestire e cliccare su Trova.
Aggiungi server
FIG 6 - Aggiungi server
Cliccare due volte sul nome del server da aggiungere per farlo apparire nella casella Selezionato presente sulla destra, quindi cliccare su OK.
Selezione del server da aggiungere
FIG 7 - Selezione del server da aggiungere

A questo punto  i ruoli e/o le funzionalità installati sui server aggiunti potranno essere gestiti tramite Server Manager installato sulla macchina Windows 11.

Server Gestiti
FIG 8 - Server Gestiti



domenica 3 dicembre 2023

PowerShell: Impedire il blocco del computer o l'attivazione screensaver a seguito inattività

Dopo un periodo di inattività, Windows provvede ad attivare lo screensaver e/o a bloccare il computer. Tale comportamento può essere personalizzato tramite le impostazioni del sistema operativo tuttavia, in alcuni contesti, potrebbe essere utile disporre di uno script PowerShell che faccia credere a Windows che il sistema sia in uso e impedire il blocco o la visualizzazione dello screensaver. Si pensi ad esempio ai PC aziendali per i quali l'accesso alle impostazioni è inibito all'utente, oppure per un attività temporanea da eseguire sul pc e (per pigrizia) non si intendono modificare le impostazioni del sistema.
PowerShell

In questi casi possiamo utilizzare il metodo SendKeys per simulare la pressione di un tasto da parte dell'utente. Uno semplice script potrebbe essere il seguente
 # Crea un oggetto Wscript.Shell che consente di accedere alla shell di Windows  
 $WShell = New-Object -com "Wscript.Shell"  
 # Ciclo infinito. Per interromperlo premere CTRL+C o chiudere la finestra  
 while ($true)  
 {  
  # Simula la pressione del tasto Bloc Scorr   
  # Il tasto viene premuto 2 volte per riportare lo stato di Bloc Scorr a quello iniziale  
  $WShell.SendKeys("{SCROLLLOCK}")  
  Start-Sleep -Milliseconds 100  
  $WShell.SendKeys("{SCROLLLOCK}")  
  # Attendo 5 minuti  
  Start-Sleep -Seconds 300  
 }   
Per specificare i caratteri che non vengono visualizzati quando si preme un tasto, come INVIO o TAB, e i tasti che rappresentano azioni anziché caratteri, è possibile  utilizzare i codici della seguente tabella.
Tasto Codice
BACKSPACE
{BACKSPACE}, {BS}, {BKSP}
PAUSA
{BREAK}
CAPS LOCK
{CAPSLOCK}
CANC
{DELETE}, {DEL}
FRECCIA GIU'
{DOWN}
FINE
{END}
INVIO
{ENTER}, ~
ESC
{ESC}
HELP
{HELP}
HOME
{HOME}
INS
{INSERT}, {INS}
FRECCIA SX
{LEFT}
BLOC NUM
{NUMLOCK}
PAG GIU'
{PGDN}
PAG SU'
{PGUP}
STAMP
{PRTSC}
FRECCIA DX
{RIGHT}
BLOC SCORR
{SCROLLLOCK}
TAB
{TAB}
FRECCIA SU'
{UP}
F1
{F1}
F2
{F2}
F3
{F3}
F4
{F4}
F5
{F5}
F6
{F6}
F7
{F7}
F8
{F8}
F9
{F9}
F10
{F10}
F11
{F11}
F12
{F12}
F13
{F13}
F14
{F14}
F15
{F15}
F16
{F16}
+
{ADD}
-
{SUBTRACT}
*
{MULTIPLY}
/
{DIVIDE}


Per specificare i tasti combinati con qualsiasi combinazione dei tasti MAIUSC, CTRL e ALT, far precedere il codice del tasto da uno o più dei seguenti codici.
Tasto Codice
SHIFT
+
CTRL
^
ALT
%




venerdì 1 dicembre 2023

PowerShell: Muovere il puntatore del mouse

Tramite PowerShell è possibile muovere il puntatore del mouse utilizzando l'assembly System.Windows.Forms, che contiene le classi per gestire la finestra grafica.

PowerShell


Un semplice script che muove il mouse ogni 30 secondi è il seguente

 Add-Type -AssemblyName System.Windows.Forms  
 # Ciclo infinito che aggiorna la posizione del mouse ogni 30 secondi finchè non viene premuto CTRL+C o chiusa la finestra  
 while ($true)  
 {  
  # Rileva la posizione attuale del mouse  
  $Pos = [System.Windows.Forms.Cursor]::Position  
  # Creo le nuove coordinate del puntatore aggiungendo un pixel e facendo in modo da non uscire dallo schermo (% 500)  
  $x = ($pos.X % 500) + 1  
  $y = ($pos.Y % 500) + 1  
  # Posiziona il puntatore del mouse nelle nuove coordinate  
  [System.Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point($x, $y)  
  # Attende 30 secondi  
  Start-Sleep -Seconds 30  
 }  
Nello script, per evitare che il mouse finisca fuori dallo schermo, è stato adottato un piccolo espediente: il valore delle coordinate viene diviso per 500 e viene prelevato il resto della divisione (che sarà sicuramente inferiore a 500).

Per muovere il cursore in maniera randomica sullo schermo si può utilizzare il seguente script
 Add-Type -AssemblyName System.Windows.Forms  
   
 # Rileva la risoluzione del monitor principale  
 $WindowSize = [System.Windows.Forms.Screen]::GetWorkingArea(0)  
 $MaxWidth = $WindowSize.Width  
 $MaxHeight = $WindowSize.Height  
   
 #Esegue un loop e aggiorna la posizione del mouse finché non viene premuto CTRL + C o viene chiusa la finestra  
 while ($true)  
 {  
   # Genera randomincamente le nuove coordinale tenendo conto della risoluzione  
   $x = (Get-Random -Minimum 0 -Maximum $MaxWidth)  
   $y = (Get-Random -Minimum 0 -Maximum $MaxHeight)  
   Write-Host "`rNew position: x:$($x),y:$($y)  " -NoNewLine  
   # Posiziona il cursore nelle nuove coordinate  
   [System.Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point($x, $y)  
   # Attende 30 secondi  
   Start-Sleep -Seconds 30  
 }  
Per chi stesse pensando di utilizzare questo metodo per evitare che Windows vada in stand-by in caso di inattività, dovrà pensare ad una soluzione alternativa. Il movimento del mouse tramite PowerShell, infatti, non è sufficiente affinché il sistema venga considerato "attivo" e Windows provvederà comunque a visualizzare lo screensaver, oscurare/bloccare lo schermo o attivare il risparmio energetico dopo un periodo di inattività.
Per fare in modo che Windows rilevi che il pc sia utilizzato è necessario un input da parte dell'utente e non solo il movimento del mouse. Per simulare l'input da parte dell'utente, ad esempio la pressione di un tasto, si può utilizzare il metodo SendKeys che illustrerò in un altro articolo.