Errore WMI “Unable to Update Resource Access Policy” in Remote Desktop Gateway su Windows Server 2022: cause, soluzioni e diagnostica

Su Windows Server 2022 con ruolo Remote Desktop Gateway, l’errore WMI “Unable to Update Resource Access Policy” impedisce di salvare le RAP. In questa guida concreta vediamo cause reali, procedure rapide di ripristino (TEMP/TMP e pulizia host), diagnostica avanzata e script PowerShell pronti all’uso.

Indice

Panoramica del problema

Scenario tipico: host Hyper‑V con Windows Server 2022 Datacenter, distribuzione Quick Start dei ruoli Remote Desktop Services e Remote Desktop Gateway (RD Gateway). Quando si apre Remote Desktop Gateway Manager e si tenta di modificare una Resource Authorization Policy (RAP), compare un messaggio d’errore WMI del tipo “Unable to Update Resource Access Policy”. La modifica non viene salvata e il pannello torna allo stato precedente.

Il comportamento è ingannevole: la console sembra funzionare, ma qualsiasi tentativo di aggiungere o rimuovere risorse autorizzate fallisce. La causa non è sempre evidente nei log di sistema se non si sa dove guardare. Qui sotto trovi le due correzioni più efficaci (e perché funzionano), affiancate da un percorso di diagnostica WMI completo, consigli di hardening e test post‑intervento.

CAP vs RAP: cosa sta realmente fallendo

RD Gateway usa due piani di autorizzazione distinti:

  • CAP (Connection Authorization Policies): chi è autorizzato a connettersi.
  • RAP (Resource Authorization Policies): a quali host è consentito l’accesso.

L’errore in oggetto si manifesta nella fase di aggiornamento delle RAP, quando RD Gateway interagisce con il provider WMI per validare e persistere l’elenco di computer di destinazione. Se qualcosa impedisce a WMI o ai componenti RD Gateway di creare file temporanei o di risolvere gli host referenziati, l’operazione fallisce.

Soluzioni rapide e comprovate

Queste due correzioni risolvono la maggior parte dei casi sul campo.

#SoluzioneDettagli operativi
1Ripristinare la variabile d’ambiente TEMP/TMP al percorso di defaultL’errore può insorgere se la variabile di sistema TEMP (e TMP) è stata spostata da C:\Windows\Temp a un’unità differente (es. S:\Temp).
Azione:
1) Pannello di controllo → Sistema → Impostazioni di sistema avanzate → Variabili d’ambiente.
2) Nella sezione “Variabili di sistema” riportare TEMP e TMP a C:\Windows\Temp.
3) Riavviare il server o almeno i servizi RD Gateway/WMI.
Risultato: la modifica delle RAP torna a funzionare.
2Rimuovere host non più esistenti dalla RAPIl Gateway convalida ogni voce inclusa nelle RAP. Se l’elenco contiene computer decommissionati o non risolti dal DNS, viene generato lo stesso errore WMI.
Azione: aprire la RAP interessata e cancellare o sostituire i computer non più presenti.
Risultato: la policy viene salvata senza errori.

Perché la variabile TEMP influenza RD Gateway e WMI

Diversi componenti del ruolo RD Gateway, insieme a script e provider WMI, creano file temporanei durante le operazioni di lettura/scrittura di configurazioni e validazione delle policy. Quando TEMP/TMP a livello di sistema punta a:

  • un volume non disponibile o non montato al boot,
  • una cartella con ACL NTFS restrittive o non ereditate,
  • un’unità di rete o un percorso reindirizzato,

il codice che effettua la transazione via WMI non riesce a creare file di cache e log temporanei: il risultato è un errore generico lato WMI durante l’aggiornamento della RAP. Anche quando la cartella esiste, permessi incompleti (assenza di SYSTEM o Administrators con Controllo completo) possono provocare lo stesso esito.

Procedura A — Ripristino sicuro di TEMP/TMP e ACL predefinite

Passo‑passo via interfaccia

  1. Apri sysdm.cpl → scheda AvanzateVariabili d’ambiente.
  2. Nella sezione Variabili di sistema, seleziona TEMPModifica… e imposta C:\Windows\Temp. Ripeti per TMP.
  3. Conferma tutte le finestre con OK.
  4. Controlla i permessi NTFS di C:\Windows\Temp:
    • SYSTEM: Controllo completo.
    • Administrators: Controllo completo.
    • Users: possibilità di creare file/cartelle temporanei (ereditati e con Creator Owner).
    Evita di impostare permessi “solo lettura” o di rimuovere l’ereditarietà senza un modello ACL equivalente a quello predefinito.
  5. Riavvia il servizio WMI e il servizio RD Gateway (vedi più avanti) o, preferibilmente, riavvia il server fuori orario di produzione.

Comandi PowerShell utili

# Verifica dei percorsi attuali (livello di sistema)
[Environment]::GetEnvironmentVariable('TEMP','Machine')
[Environment]::GetEnvironmentVariable('TMP','Machine')

Ripristino a C:\Windows\Temp (persistente)

[Environment]: :SetEnvironmentVariable\('TEMP','C:\Windows\Temp','Machine'\)
[Environment]: :SetEnvironmentVariable\('TMP','C:\Windows\Temp','Machine'\)

Verifica permessi effettivi e presenza cartella

Get-Item 'C:\Windows\Temp' | Format-List FullName,Exists,Attributes
icacls 'C:\Windows\Temp'

Test di scrittura (simula file temporaneo)

$test = Join-Path $env:windir 'Temp\wmitemptest.txt'
"Probe $(Get-Date)" | Out-File -FilePath $test -Encoding ascii -Force
Test-Path $test

Riavvio servizi critici (valutare una finestra di manutenzione)

Restart-Service -Name winmgmt -Force
Restart-Service -Name tsgateway -Force  # Nome servizio RD Gateway 

Best practice: evita di puntare TEMP/TMP di sistema a volumi rimovibili, dischi montati tardi in fase di boot, cartelle con quote aggressive o percorsi UNC. Se vuoi usare uno storage separato, mappa la cartella su un disco locale sempre presente, con ACL allineate a C:\Windows\Temp.

Procedura B — Pulizia delle voci host nelle RAP

RD Gateway verifica che ogni destinazione elencata nella RAP sia risolvibile e raggiungibile. Computer dismessi, record DNS obsoleti o nomi digitati in modo errato possono generare lo stesso errore WMI in fase di salvataggio.

Checklist operativa

  1. Apri Remote Desktop Gateway ManagerPoliciesResource Authorization Policies.
  2. Seleziona la RAP problematica → Properties → scheda che contiene l’elenco dei computer/Group di computer.
  3. Rimuovi o correggi le voci che non rispondono o non si risolvono.
  4. Se la RAP usa gruppi AD, verifica che i membri siano host effettivi e non oggetti residui.
  5. Salva e chiudi: l’errore non dovrebbe più presentarsi.

Verifiche con PowerShell (DNS e porta 3389)

# Sostituisci con i nomi presenti nella tua RAP
$hosts = @('RDSH01.contoso.local','APP01.contoso.local')

foreach($h in $hosts){
Write-Host "`n---- $h ----"
try { Resolve-DnsName $h -ErrorAction Stop | Select-Object -First 1 | Format-Table -AutoSize } catch { "DNS FAIL: $*" }
try { Test-NetConnection -ComputerName $h -Port 3389 -WarningAction SilentlyContinue | Select-Object ComputerName,RemotePort,TcpTestSucceeded } catch { "PORT FAIL: $*" }
} 

Verifiche post‑intervento

  • Apri RD Gateway Manager e modifica di nuovo la RAP: aggiungi un host di test e salva. Nessun errore WMI deve comparire.
  • Esegui una connessione RDP passando dal Gateway verso l’host di test per validare end‑to‑end.
  • Controlla i log applicativi e “WMI‑Activity” per assenza di nuovi warning/errori correlati.

Diagnostica WMI completa (se le due soluzioni non bastano)

Verifica del servizio WMI

Apri Servizi e verifica che Windows Management Instrumentation sia in esecuzione. In alternativa:

Get-Service winmgmt | Format-Table Status,Name,DisplayName

Se non è Running, avvialo e controlla le dipendenze.

Event Viewer: WMI‑Activity

Vai su Applications and Services Logs → Microsoft → Windows → WMI‑Activity → Operational e individua errori legati al tentativo di scrittura della RAP. Prendi nota di ClientProcessId, Namespace e Operation per correlare l’evento alla console RD Gateway e alla chiamata fallita.

WMI Diagnosis Utility

Lo script WMIDiag.vbs produce un report con test sul repository e sui permessi. Segui le azioni suggerite dal report. Non cancellare o ricreare il repository WMI se non come ultima risorsa; è preferibile tentare prima un salvage:

# Da prompt elevato (cmd)
winmgmt /verifyrepository
winmgmt /salvagerepository
  

DNS e certificati del RD Gateway

Coerenza tra FQDN del server RD Gateway e CN/SAN del certificato è fondamentale. Mismatch, certificati scaduti o catene non fidate possono interrompere alcune chiamate di gestione e innescare errori a cascata. Verifica anche la risoluzione DNS interna del nome del Gateway e dei server di destinazione elencati nelle RAP.

Controllo permessi e spazi su disco

  • Accertati che C:\Windows\Temp abbia spazio libero sufficiente e che non sia soggetto a cleaner aggressivi.
  • Verifica che nessun software di sicurezza stia bloccando la creazione di file temporanei da parte dei processi mmc.exe, svchost.exe (WMI) o del servizio RD Gateway.

Script PowerShell: pacchetto di controllo rapido

Questo script esegue i controlli chiave: variabili di sistema, salute WMI, test di scrittura su C:\Windows\Temp, raggiungibilità degli host più comuni e stato dei servizi.

$report = [System.Collections.Generic.List[object]]::new()

1) Variabili TEMP/TMP (System)

$report.Add([pscustomobject]@{
Check = 'TEMP (Machine)'
Value = [Environment]::GetEnvironmentVariable('TEMP','Machine')
})
$report.Add([pscustomobject]@{
Check = 'TMP (Machine)'
Value = [Environment]::GetEnvironmentVariable('TMP','Machine')
})

2) Test scrittura temp

try{
$tempFile = Join-Path $env:windir 'Temp\rdgwmiprobe.txt'
'Probe' | Out-File -FilePath $tempFile -Encoding ascii -Force
$ok = Test-Path $tempFile
$report.Add([pscustomobject]@{ Check='Temp write test'; Value = $ok })
if($ok){ Remove-Item $tempFile -Force -ErrorAction SilentlyContinue }
}catch{
$report.Add([pscustomobject]@{ Check='Temp write test'; Value = "ERROR: $_" })
}

3) Servizi WMI e RDG

'winmgmt','tsgateway' | ForEach-Object {
$svc = Get-Service -Name $_ -ErrorAction SilentlyContinue
$report.Add([pscustomobject]@{ Check="Service $_"; Value = if($svc){$svc.Status}else{'NotFound'} })
}

4) Spazio su C:\Windows\Temp

$folder = Get-Item 'C:\Windows\Temp'
$drive = Get-PSDrive -Name $folder.PSDrive.Name
$report.Add([pscustomobject]@{ Check='Free space (GB)'; Value = [math]::Round($drive.Free/1GB,2) })

Output

$report | Format-Table -AutoSize 

Domande frequenti

Posso lasciare TEMP/TMP sull’unità di sistema?

Sì. È la configurazione predefinita supportata e garantisce che il percorso esista fin dal boot con ACL note. Se scegli percorsi alternativi, devi garantire stessa disponibilità e permessi.

Serve riavviare il server?

Modifiche a TEMP/TMP a livello macchina si applicano ai nuovi processi. Nel contesto RD Gateway, spesso basta riavviare WMI e TSGateway, ma un riavvio totale è la via più sicura per evitare residui di processo con variabili “vecchie”.

È un problema di autorizzazioni utente sulla console?

In genere no: l’errore si presenta anche come Administrator. La causa è più spesso un impedimento infrastrutturale (TEMP, DNS, certificati) o dati RAP obsoleti.

Strategia di prevenzione

  • Standardizzare i percorsi TEMP/TMP su tutti i server RDS e monitorarne lo spazio.
  • Automatizzare la verifica degli host nelle RAP (script che risolve DNS e fa ping/TCP 3389) prima di ogni change window.
  • Documentare i requisiti ACL di C:\Windows\Temp in checklist di hardening per evitare hardening eccessivo.
  • Allineare i record DNS e i certificati del Gateway con politiche di rinnovo automatico e validazione periodica.

Riepilogo operativo

  1. Prima mossa: ripristina TEMP/TMP a C:\Windows\Temp e verifica le ACL.
  2. Seconda mossa: ripulisci la RAP da server inesistenti/non risolvibili.
  3. Se persiste: esegui la diagnostica WMI (servizio, Event Viewer WMI‑Activity, WMIDiag), controlla DNS/certificati e spazi disco.
  4. Conferma: salva di nuovo la RAP e prova una connessione RDP attraverso il Gateway verso un host autorizzato.

Appendice: guida rapida ai log da consultare

LogPercorsoChe cosa cercare
WMI‑Activity (Operational)Applications and Services Logs → Microsoft → Windows → WMI‑Activity → OperationalEventi di errore correlati a operazioni di creazione/aggiornamento. Attenzione a ClientProcessId riconducibile a mmc.exe.
ApplicationWindows Logs → ApplicationEventi da RD Gateway o da componenti che falliscono l’accesso al percorso temporaneo.
SystemWindows Logs → SystemProblemi su disco, mount tardivi, driver di storage, servizi non avviati.
SecurityWindows Logs → SecurityEventi di Failure Audit su file system nella cartella Temp.

Appendice: comandi amministrativi utili

# Riavvio ordinato dei servizi chiave
Stop-Service tsgateway -Force
Stop-Service winmgmt -Force
Start-Service winmgmt
Start-Service tsgateway

Stato e versione WMI (CIM)

Get-CimInstance -ClassName CIM_OperatingSystem | Select-Object CSName,Version,LastBootUpTime

Elenco variabili TEMP/TMP a tutti i livelli

'Machine','User','Process' | ForEach-Object {
[pscustomobject]@{
Scope = $_
TEMP = [Environment]::GetEnvironmentVariable('TEMP',$*)
TMP  = [Environment]::GetEnvironmentVariable('TMP',$*)
}
} | Format-Table -AutoSize 

Conclusione

Nel contesto RD Gateway su Windows Server 2022, l’errore WMI “Unable to Update Resource Access Policy” è spesso la spia di due problemi pratici: percorso TEMP/TMP non standard o non scrivibile e host obsoleti nelle RAP. Ripristinare C:\Windows\Temp con ACL corrette e mantenere pulito l’elenco delle risorse autorizzate è, nella stragrande maggioranza dei casi, sufficiente a riprendere subito il controllo della console senza interventi invasivi sul repository WMI. Solo se il problema persiste conviene passare alla diagnostica avanzata e agli strumenti di riparazione del repository.


Ulteriori indicazioni di diagnostica WMI (riassunto)

  1. Verificare il servizio WMI: in Servizi assicurarsi che Windows Management Instrumentation sia in esecuzione con dipendenze attive.
  2. Consultare il Visualizzatore eventi: Applications and Services Logs → Microsoft → Windows → WMI‑Activity → Operational per errori o warning legati all’ID dell’operazione fallita.
  3. Eseguire il WMI Diagnosis Utility: WMIDiag.vbs crea un report con test su repository e permessi. Seguire le istruzioni del report; non cancellare il repository WMI se non come ultima risorsa.
  4. Controllare DNS e certificati: nome host e certificato del RD Gateway devono essere coerenti; incongruenze possono far fallire chiamate di gestione basate su WMI.

In sintesi: prima di addentrarti in diagnosi WMI avanzate, ripristinaC:\Windows\Temp come cartella temporanea di sistema e assicurati che nelle RAP compaiano solo computer realmente raggiungibili. Queste due azioni risolvono la maggior parte degli errori “Unable to Update Resource Access Policy” in RD Gateway.

Indice