Vuoi permettere a un ristretto gruppo di tecnici di cambiare in autonomia l’indirizzo IP dei portatili (DHCP ⇄ statico) in un dominio Windows Server 2012, senza concedere diritti amministrativi? Qui trovi la soluzione completa, sicura e scalabile per Windows 10/11.
Contesto e obiettivo
In molte realtà operative i tecnici “itineranti” devono spesso passare da reti configurate via DHCP a reti con IP statici (per test, collegamenti a macchinari, VLAN isolate, air‑gap, ecc.). Concedere loro privilegi da Administrators è eccessivo e rischioso, ma senza i permessi adeguati l’interfaccia di rete non consente modifiche. La chiave sta nell’usare il gruppo locale Network Configuration Operators (NCO) in modo corretto, rimuovere le policy di blocco e – se serve – predisporre uno switch controllato via script/attività pianificata.
Perché l’aggiunta sul DC “non funziona”
Il gruppo Network Configuration Operators è locale al client. Se aggiungi gli utenti a un gruppo omonimo sul Domain Controller o in Active Directory, quella membership non si traduce automaticamente nei privilegi sui PC. Occorre nidificare un gruppo di dominio dentro il gruppo locale NCO su ogni client. Questo è il passaggio che di solito viene frainteso.
Requisiti e buone pratiche
- Client Windows 10/11 uniti al dominio Windows Server 2012.
- Utenti tecnici raccolti in uno o più gruppi di dominio dedicati.
- Console GPMC (Group Policy Management) per creare e collegare GPO all’OU dei PC.
- Approccio least privilege: si concede solo ciò che serve a modificare IP/DNS/gateway.
Soluzione in sintesi
| Passo | Cosa fare | Perché serve | 
|---|---|---|
| Assegnare correttamente il gruppo locale | Creare un gruppo di dominio (es. NominaIP_Modificatori) con i tecnici. Con una GPO, nidificare quel gruppo di dominio nel gruppo locale Network Configuration Operators dei PC Windows 10/11 interessati (GPP: Local Users & Groups, o Restricted Groups). | Il privilegio SeNetworkConfigurationPrivilege è efficace solo a livello locale sul client. | 
| Controllare le GPO di blocco | Verificare che non siano attive policy che inibiscono le proprietà di rete: Prohibit access to properties of a network connection e Enable Network Connections settings for Administrators only. | Queste impostazioni possono “bypassare” NCO e negare l’accesso, anche se la membership è corretta. | 
| Concedere privilegi aggiuntivi se necessario | In casi particolari (driver/utility OEM) assegnare direttamente il diritto SeNetworkConfigurationPrivilege via Local Security Policy → User Rights Assignment o includere gli utenti in Power Users solo se indispensabile. | Alcuni stack di rete richiedono privilegi più ampi del minimo previsto. | 
| Offrire uno script alternativo | Preparare script PowerShell o netsh per passaggio DHCP/statico e invocarli tramite Attività pianificata eseguita con privilegi elevati, lanciata dall’utente via collegamento. | Si evita l’accesso diretto alle proprietà TCP/IP e si centralizza la logica. | 
| Verifica e auditing | Test su PC pilota (statico ⇄ DHCP), abilitare logging operativo rete o scrivere eventi applicativi dagli script. | Conferma funzionalità e semplifica la diagnostica. | 
| Sicurezza e manutenzione | Limitare i membri, documentare, riesaminare periodicamente, mantenere Windows aggiornato. | Riduzione della superficie d’attacco e prevenzione di escalation permanenti. | 
Procedura dettagliata
Creare il gruppo di dominio
- In Active Directory Users and Computers, crea un gruppo di sicurezza globale (ad es. NominaIP_Modificatori).
- Aggiungi i tecnici itineranti come membri del gruppo.
Distribuire l’appartenenza al gruppo locale Network Configuration Operators
Hai due strade. La più flessibile è tramite Group Policy Preferences.
Metodo consigliato con Group Policy Preferences
- Apri GPMC e crea una nuova GPO (es. NominaIP – NCO Membership). Collega la GPO all’OU dei PC interessati.
- Modifica la GPO: Computer Configuration → Preferences → Control Panel Settings → Local Users and Groups.
- New → Local Group. Imposta:
- Action: Update (per aggiungere senza rimuovere gli altri membri locali).
- Group name: Network Configuration Operators.
- Members: Add → seleziona il gruppo di dominio NominaIP_Modificatori.
 
- Opzionale: in Common, abilita Item-level targeting per limitare a gruppi di computer, sedi o modelli.
Perché Update? L’azione Update evita di sovrascrivere la membership esistente del gruppo locale. Replace è più “invasiva” e raramente necessaria.
Metodo con Restricted Groups
- Nella stessa GPO vai su Computer Configuration → Policies → Windows Settings → Security Settings → Restricted Groups.
- Add Group → seleziona Network Configuration Operators.
- In Members of this group aggiungi il gruppo di dominio NominaIP_Modificatori.
Attenzione: Restricted Groups può imporre la membership e rimuovere membri non elencati. È potente ma va usato consapevolmente; su ambienti misti è preferibile Preferences → Local Users and Groups.
Targeting e WMI filter
Se vuoi evitare che la GPO si applichi a server o a versioni non supportate, usa un filtro WMI per i soli client:
SELECT * FROM Win32_OperatingSystem WHERE Version >= "10.0" AND ProductType = "1"
Aggiornare i criteri e verificare
- Su un client pilota, esegui gpupdate /forcee poiwhoami /groupsper verificare la presenza in Network Configuration Operators.
- Oppure controlla con: net localgroup "Network Configuration Operators"
Rimuovere le policy che bloccano la UI di rete
Nelle GPO applicate ai client verifica in Computer Configuration → Administrative Templates → Network → Network Connections che le seguenti impostazioni siano Non configurate o Disabilitate:
- Prohibit access to properties of a network connection
- Enable Network Connections settings for Administrators only
Queste policy, se abilitate, impediscono di aprire le proprietà IPv4/IPv6 anche ai membri di NCO.
Privilegi aggiuntivi opzionali
Se nonostante la membership corretta l’app Impostazioni di Windows 11 continua a restituire “Accesso negato”, prova due strategie (una alla volta):
- Usare il Pannello di controllo classico: esegui ncpa.cpl, apri le proprietà della scheda, poi Protocollo Internet versione 4 (TCP/IPv4). Spesso l’interfaccia classica “rispetta” i privilegi minimi meglio della nuova app.
- Assegnare direttamente il diritto: in secpol.msc → Local Policies → User Rights Assignment aggiungi il gruppo NominaIP_Modificatori al diritto Modificare la configurazione di rete (SeNetworkConfigurationPrivilege). In rari casi, Power Users può essere un’alternativa, ma valuta attentamente l’impatto.
Script e pulsanti per un passaggio controllato
Comandi essenziali netsh
Per scheda “Ethernet”:
:: Passare a DHCP (IP e DNS)
netsh interface ip set address name="Ethernet" source=dhcp
netsh interface ip set dns name="Ethernet" source=dhcp
:: Impostare un IP statico
netsh interface ip set address name="Ethernet" source=static addr=192.168.10.50 mask=255.255.255.0 gateway=192.168.10.1 gwmetric=1
netsh interface ip add dns name="Ethernet" 1.1.1.1 index=1
netsh interface ip add dns name="Ethernet" 8.8.8.8 index=2 Script PowerShell robusto
Questo script gestisce DHCP e statico, converte automaticamente la subnet mask in prefix length e registra un evento applicativo:
param(
  [Parameter(Mandatory=$true)][ValidateSet('DHCP','STATIC')][string]$Mode,
  [Parameter(Mandatory=$true)][string]$InterfaceAlias,
  [string]$IPv4,
  [string]$MaskOrPrefix,
  [string]$Gateway,
  [string[]]$Dns
)
function Get-PrefixLength {
param([string]$MaskOrPrefix)
if ($MaskOrPrefix -match '^\d{1,2}$') { return [int]$MaskOrPrefix }
$oct = $MaskOrPrefix.Split('.') | ForEach-Object {[int]$*}
$bin = ($oct | ForEach-Object { [Convert]::ToString($*,2).PadLeft(8,'0') }) -join ''
return ($bin.ToCharArray() | Where-Object {$_ -eq '1'}).Count
}
function Ensure-EventSource {
if (-not [System.Diagnostics.EventLog]::SourceExists('SwitchIP')) {
New-EventLog -LogName Application -Source 'SwitchIP' | Out-Null
}
}
try {
if ($Mode -eq 'DHCP') {
Set-NetIPInterface -InterfaceAlias $InterfaceAlias -AddressFamily IPv4 -Dhcp Enabled -ErrorAction Stop
Set-DnsClientServerAddress -InterfaceAlias $InterfaceAlias -ResetServerAddresses -ErrorAction Stop
ipconfig /renew $InterfaceAlias | Out-Null
Ensure-EventSource
Write-EventLog -LogName Application -Source 'SwitchIP' -EntryType Information -EventId 1001 -Message "[$env:USERNAME] $InterfaceAlias in DHCP"
} else {
if (-not $IPv4 -or -not $MaskOrPrefix) { throw 'Per STATIC specifica IPv4 e MaskOrPrefix' }
$prefix = Get-PrefixLength -MaskOrPrefix $MaskOrPrefix
Rimuove eventuali indirizzi IPv4 esistenti per evitare conflitti
Get-NetIPAddress -InterfaceAlias $InterfaceAlias -AddressFamily IPv4 -ErrorAction SilentlyContinue |
Where-Object { $*.IPAddress -ne $IPv4 } |
Remove-NetIPAddress -Confirm:$false -ErrorAction SilentlyContinue
Imposta l'IP
$existing = Get-NetIPAddress -InterfaceAlias $InterfaceAlias -AddressFamily IPv4 -ErrorAction SilentlyContinue |
Where-Object { $.IPAddress -eq $IPv4 -and $.PrefixLength -eq $prefix }
if (-not $existing) {
New-NetIPAddress -InterfaceAlias $InterfaceAlias -IPAddress $IPv4 -PrefixLength $prefix -DefaultGateway $Gateway -ErrorAction Stop | Out-Null
}
if ($Dns) {
Set-DnsClientServerAddress -InterfaceAlias $InterfaceAlias -ServerAddresses $Dns -ErrorAction Stop
}
Ensure-EventSource
$dnsTxt = if ($Dns) { $Dns -join ',' } else { 'inherit' }
Write-EventLog -LogName Application -Source 'SwitchIP' -EntryType Information -EventId 1002 -Message "[$env:USERNAME] $InterfaceAlias STATIC $IPv4/$prefix GW:$Gateway DNS:$dnsTxt"
}
Write-Host "Operazione completata."
} catch {
Ensure-EventSource
Write-EventLog -LogName Application -Source 'SwitchIP' -EntryType Error -EventId 1900 -Message $*.Exception.Message
throw
} Esecuzione con privilegi elevati tramite Attività pianificata
Per eliminare ogni richiesta di privilegi all’utente finale, lancia lo script tramite Task Scheduler con account LOCAL SYSTEM e Run with highest privileges. Due strade:
Distribuzione con GPO
- Copia lo script in C:\ProgramData\Scripts\SwitchIP.ps1su ogni client (es. con GPP → Files).
- In Computer Configuration → Preferences → Control Panel Settings → Scheduled Tasks, crea due task:
- SwitchIP_DHCP: azione powershell.exe -ExecutionPolicy Bypass -File "C:\ProgramData\Scripts\SwitchIP.ps1" -Mode DHCP -InterfaceAlias "Ethernet"
- SwitchIP_STATIC: azione con i parametri statici richiesti (IP, mask/prefix, gateway, DNS).
 
- SwitchIP_DHCP: azione 
- Security options: Run whether user is logged on or not, Run with highest privileges, User account = SYSTEM.
- Triggers: nessuno (il task viene avviato on demand).
- Distribuisci due collegamenti sul desktop: "C:\Windows\System32\schtasks.exe" /run /tn "SwitchIP_DHCP" "C:\Windows\System32\schtasks.exe" /run /tn "SwitchIP_STATIC"
Creazione locale via riga di comando (per test)
schtasks /Create /TN "SwitchIP_DHCP" /SC ONCE /ST 00:00 /TR "powershell.exe -ExecutionPolicy Bypass -File C:\ProgramData\Scripts\SwitchIP.ps1 -Mode DHCP -InterfaceAlias Ethernet" /RU SYSTEM /RL HIGHEST /F
schtasks /Create /TN "SwitchIP_STATIC" /SC ONCE /ST 00:00 /TR "powershell.exe -ExecutionPolicy Bypass -File C:\ProgramData\Scripts\SwitchIP.ps1 -Mode STATIC -InterfaceAlias Ethernet -IPv4 192.168.10.50 -MaskOrPrefix 24 -Gateway 192.168.10.1 -Dns 1.1.1.1,8.8.8.8" /RU SYSTEM /RL HIGHEST /F
Per eseguire: schtasks /run /tn "SwitchIPDHCP" o schtasks /run /tn "SwitchIPSTATIC".
Verifica e auditing
- Test funzionale: passare a IP statico, verificare con ipconfig, ping del gateway, quindi tornare a DHCP. Provare anche dopo un riavvio.
- Eventi: se usi lo script, troverai Application Event ID 1001/1002 (informativi) o 1900 (errore) sorgente SwitchIP. In alternativa abilita i log operativi Microsoft‑Windows‑NetworkProfile/Operational per tracciare i cambi di profilo di rete, utili durante la diagnosi.
- Monitoraggio minimo: conserva uno storico dei lanci dei task (Task Scheduler → History sui client) o raccogli eventi via SIEM.
Sicurezza, manutenzione e principi di least privilege
- Limita la membership del gruppo di dominio ai soli tecnici che ne hanno davvero bisogno, con owner chiari.
- Documenta la procedura interna (come cambiare IP, cosa verificare prima/dopo, quando usare DHCP o statico).
- Revisioni periodiche: ogni trimestre verifica i membri del gruppo e rimuovi gli account non più necessari.
- Aggiorna Windows 10/11: build e driver recenti correggono diversi problemi di UI e compatibilità con NCO.
- Evita di elevare a Administrators: concedi diritti aggiuntivi solo quando le alternative sono state escluse.
Risoluzione dei problemi
| Sintomo | Causa probabile | Correzione | 
|---|---|---|
| Accesso negato aprendo IPv4 | Policy che inibiscono le proprietà di rete | Imposta Not Configured/Disabled per le voci di blocco in Network Connections. | 
| Utente è in NCO ma non può cambiare IP | Membership non applicata localmente o token non aggiornato | Controlla con whoami /groups; eseguigpupdate /forcee fai logoff/logon. | 
| App Impostazioni Windows 11 nega l’operazione | Bug/limitazioni della nuova UI | Usa ncpa.cplo gli script PowerShell/netsh, che rispettano i privilegi. | 
| Comandi falliscono con NIC OEM | Driver/utility richiedono diritti più elevati | Assegna SeNetworkConfigurationPrivilegedirettamente o valuta Power Users come eccezione. | 
| Schermo resta su “identificazione rete” | DNS errati o gateway non raggiungibile | Verifica indirizzi DNS, gateway e metriche; prova ipconfig /flushdns. | 
| Task schedulato non parte | Account o privilegi task non corretti | Imposta SYSTEM, Run with highest privileges, nessun trigger; verifica History del task. | 
| Offline lontano dal DC | Policy non ancora applicate | Assicurati che i tecnici abbiano effettuato almeno un logon in dominio prima di partire (cached credentials). | 
| Ambiente con 802.1X/VPN | Client di rete che richiedono admin | Valuta esenzioni a livello driver o approccio via task elevato; talvolta serve supporto del vendor. | 
Domande frequenti
Il gruppo si chiama “Operatori Configurazione Rete” in italiano? Dipende dal language pack; per coerenza in GPO/GPP usa sempre il nome inglese Network Configuration Operators.
È meglio DHCP o IP statico per i test? DHCP è più sicuro e resiliente; usa IP statici solo dove necessario e documenta chiaramente gli indirizzi da usare.
Posso concedere solo il cambio DNS? No, il diritto è unitario: chi può modificare la configurazione di rete può cambiare IP, DNS e gateway.
Perché evitare gli admin locali? Perché aumentano la superficie d’attacco, rendono più difficile l’auditing e possono eludere controlli di sicurezza.
Checklist finale
- Creato gruppo di dominio NominaIP_Modificatori e popolato con i tecnici.
- GPO applicata all’OU dei client con GPP Local Users & Groups → Update sul gruppo Network Configuration Operators.
- Rimosse le policy che bloccano le proprietà di rete.
- Script e attività pianificate distribuiti (opzionali ma consigliati).
- Test su PC pilota: statico ⇄ DHCP, riavvio, ipconfig, ping gateway.
- Logging operativo attivo o eventi applicativi dallo script.
- Documentazione interna aggiornata e piano di revisione membri.
Appendice comandi rapidi
:: Verificare gruppi dell'utente corrente
whoami /groups
:: Elenco membri del gruppo locale NCO
net localgroup "Network Configuration Operators"
:: Forzare l'aggiornamento dei criteri
gpupdate /force
:: Vedere gli adattatori e i nomi delle interfacce
Get-NetAdapter | Select-Object Name, Status, MacAddress, InterfaceDescription
:: Impostare DHCP via PowerShell
Set-NetIPInterface -InterfaceAlias "Ethernet" -Dhcp Enabled
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ResetServerAddresses
:: Impostare IP statico via PowerShell
New-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress 192.168.10.50 -PrefixLength 24 -DefaultGateway 192.168.10.1
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses 1.1.1.1,8.8.8.8 Conclusioni operative
La soluzione più pulita è comporre gli elementi seguenti: 1) gruppo di dominio dedicato ai tecnici; 2) nidificazione nei Network Configuration Operators locali tramite GPO; 3) rimozione delle policy bloccanti; 4) test end‑to‑end. Solo se alcuni PC mostrano limiti specifici, valuta diritti aggiuntivi oppure uno switch gestito con attività pianificata eseguita come SYSTEM. In questo modo i tecnici possono modificare l’IP in piena autonomia, senza privilegi amministrativi e nel rispetto dei principi di sicurezza.
Note aggiuntive utili
- Capacità del gruppo NCO: consente di abilitare/disabilitare schede, cambiare IP/DNS/gateway, eseguire ipconfig /releasee/renew; non consente di installare driver, creare VPN, alterare il firewall o altre impostazioni che richiedono admin.
- Interfaccia grafica: talvolta la nuova app Impostazioni di Windows 11 non rispetta i privilegi minimi; il Pannello di controllo classico (ncpa.cpl) e i comandi PowerShell/netsh aggirano il problema.
- Gestione offline: la membership locale resta valida con le cached credentials; assicurati che i tecnici abbiano eseguito almeno un accesso in dominio prima di lavorare fuori sede.
Con questa architettura, il passaggio DHCP ⇄ statico diventa un’operazione da pochi secondi per l’utente, ma resta sotto il tuo controllo IT, auditabile e reversibile.
