Tutorial completo sul comando Get-WindowsFeature in Windows Server

Ultimo aggiornamento: 14/08/2025
Autore: Isaac
  • Inventario e filtri precisi: elenca, cerca e segmenta ruoli/funzionalità con Get-WindowsFeature.
  • Automazione della distribuzione: installa/disinstalla (include strumenti) e lavora in remoto con Invoke-Command.
  • Casi reali: preparazione di IIS e promozione di AD DS con cmdlet ADDSDeployment.
  • Stato desiderato: applicare Presente/Assente con la risorsa DSC WindowsFeature.

2025 windows server

Se gestisci quotidianamente Windows Server, padroneggiare Get-WindowsFeature fa la differenza tra perdere tempo a navigare in Server Manager e automatizzare l'inventario e la distribuzione di ruoli e funzionalità in pochi secondi. Questo tutorial ti mostrerà, senza complicazioni, come elencare, filtrare, installare, disinstallare e lavorare da remoto con questo cmdlet, utilizzando esempi concreti adatti al tuo flusso di lavoro quotidiano.

Inoltre, collegheremo l'utilizzo di Get-WindowsFeature ad attività tipiche come la distribuzione di IIS o Active Directory Domain Services (AD DS) , vedremo come interrogare la struttura della foresta e concluderemo con una sezione completa sulla risorsa DSC WindowsFeature per imporre lo stato desiderato ( installato o meno ) con proprietà come Ensure o IncludeAllSubFeature . Ho incluso comandi , filtri e suggerimenti in modo che possiate applicarli così come sono.

Che cos'è Get-WindowsFeature e qual è la sua sintassi?

Il cmdlet Get-WindowsFeature consente di interrogare i ruoli e le funzionalità disponibili e installati su Windows Server (a partire da Windows Server 2008). Visualizza il nome interno, il nome visualizzato e lo stato di installazione , accetta filtri e può essere eseguito su computer remoti.

Sintassi standard del cmdlet, inclusi parametri chiave come -Name , -ComputerName , -Credential , -LogPath o -Vhd :

Get-WindowsFeature  <String[]> ]     

Suggerimento utile : il parametro -LogPath consente di salvare i risultati in un file di log, ideale per audit o CI/CD.

Interpretare l'output e il filtro come un professionista

L'output mostra sia le funzionalità installate che quelle disponibili. Inoltre, la colonna InstallState visualizza "Installato" o "Disponibile". È possibile filtrare in base a una di queste proprietà.

Elenco completo senza filtri (e sì, potrebbe essere lungo):

Get-WindowsFeature

Filtra utilizzando i caratteri jolly nel nome interno per trovare, ad esempio, tutto ciò che contiene DHC (come DHCP):

Get-WindowsFeature -Name *DHC*

Mantenere solo ciò che è installato utilizzando lo stato di installazione è molto utile per l'inventario:

Get-WindowsFeature | Where-Object { $_.InstallState -eq "Installed" }

Elenca gli elementi disponibili per l'installazione (non installati):

Get-WindowsFeature | Where-Object { $_.InstallState -eq "Available" }

Esegui la ricerca tramite corrispondenza esatta del nome interno (ad esempio, il ruolo DNS) o tramite nome visualizzato in spagnolo:

# Por Name exacto
Get-WindowsFeature | Where-Object { $_.Name -eq "DNS" }

# Por DisplayName exacto
Get-WindowsFeature | Where-Object { $_.DisplayName -eq "Servidor DNS" }

Installare e disinstallare ruoli e funzionalità da PowerShell

Per installare, utilizzare Install-WindowsFeature indicando il nome del ruolo o della funzionalità. Se si desidera includere gli strumenti di amministrazione associati, aggiungere -IncludeManagementTools.

# Ejemplo: instalar IIS con sus herramientas de administración
Install-WindowsFeature -Name Web-Server -IncludeManagementTools

Per disinstallare, utilizzare Uninstall-WindowsFeature (se applicabile) oppure eseguire nuovamente Install con Ensure = Absent in DSC, come vedremo in seguito. È inoltre possibile consultare tutorial correlati sulla gestione degli utenti da PowerShell.

Registra l'operazione con -LogPath se hai bisogno di una traccia per soddisfare i requisiti di audit:

Install-WindowsFeature -Name Desktop-Experience -LogPath C:\logs\install-desktop-experience.log

Query remote: controlla i server da remoto

Il comando Get-WindowsFeature può puntare a un singolo server remoto con l'opzione -ComputerName , ideale per verificare lo stato dalla propria postazione di lavoro amministrativa:

Get-WindowsFeature -ComputerName SRV-CORE-01

Se è necessario interrogare più server contemporaneamente, appoggiarsi a te Invoke-Command Offre flessibilità e restituisce anche l'origine di ogni risultato nell'output:

Invoke-Command -ComputerName SRV-A,SRV-B -ScriptBlock { Get-WindowsFeature ADRMS, RemoteAccess }

È inoltre possibile effettuare ricerche da remoto utilizzando caratteri jolly per individuare funzionalità correlate come backup, clustering, ecc.:

Invoke-Command -ComputerName SRV-CORE-01 -ScriptBlock { Get-WindowsFeature *Backup* }

Esempio pratico 1: preparazione e gestione di un IIS con PowerShell

Iniziate verificando quali componenti di IIS sono presenti e quali mancano, utilizzando una query filtrata con caratteri jolly nel nome:

Get-WindowsFeature -Name *IIS*

Installa il server web e i relativi strumenti in un'unica soluzione, così non dovrai aggiungere nuovamente i componenti di gestione:

Install-WindowsFeature -Name Web-Server -IncludeManagementTools

Scopri quali cmdlet di gestione di IIS sono disponibili dopo l'installazione per automatizzare siti, pool, associazioni e così via:

Get-Command -Module IISAdministration

Crea la nuova cartella del sito e il relativo file index.html utilizzando i cmdlet PowerShell standard per il file system:

New-Item -ItemType Directory -Path 'C:\inetpub\wwwroot\MiSitio'
New-Item -ItemType File -Path 'C:\inetpub\wwwroot\MiSitio\index.html'

Distribuisci il sito e configura il suo binding in modo che venga servito su una porta specifica (ad esempio, 8080):

New-IISSite -Name 'MiSitio' -PhysicalPath 'C:\inetpub\wwwroot\MiSitio' -BindingInformation '*:8080:'

Avvia, arresta o controlla lo stato del sito come ti serve e usa -WhatIf per convalidare operazioni distruttive come l'eliminazione:

Start-IISSite -Name 'MiSitio'
Stop-IISSite -Name 'MiSitio'
(Get-IISSite -Name 'MiSitio').Bindings
Remove-IISSite -Name 'MiSitio' -WhatIf

Esempio pratico 2: Controllo dei ruoli in Windows Server 2022 e dello stato di AD DS

Sui server senza interfaccia grafica (Server Core), è comune uscire da sconfig e lavorare dalla console . Importa il modulo Active Directory se intendi eseguire controlli sulla foresta.

Import-Module ActiveDirectory

Verifica i ruoli o le caratteristiche di un computer specifico per accertarti che AD DS e DNS siano già presenti (le installazioni di AD DS in genere includono DNS):

Get-WindowsFeature -ComputerName server-2022-b

Ottieni la configurazione della foresta (nome della foresta, domini, GC, ecc.) con un cmdlet diretto e senza parametri obbligatori, oltre a consultare la struttura della tua infrastruttura con le risorse correlate per la migrazione di ruoli e servizi a un altro Windows Server.

Get-ADForest

Se lavori con più macchine, filtra o esplora l'output per individuare "Servizi di dominio Active Directory" e "Server DNS".

  Come trovare l'SSID del mio router e della mia rete Wifi? Tutti i metodi

Distribuzione di AD DS con PowerShell: da zero a foresta, domini e controller

Iniziate installando il ruolo AD DS e gli strumenti necessari per avere a disposizione i cmdlet e le utilità con interfaccia grafica (Utenti e computer, ADAC, ecc.):

Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools

Scopri i cmdlet del modulo ADDSDeployment per automatizzare promozioni e installazioni. Questo processo consente anche di utilizzare le risorse per promuovere un server a controller di dominio.

Get-Command -Module ADDSDeployment

Richiedi le credenziali in modo sicuro dalla console e, ove opportuno, utilizza stringhe complesse per la password DSRM:

# Credenciales
$cred = Get-Credential

# Solicitud de contraseña DSRM como SecureString
$dsrm = Read-Host -Prompt 'DSRM Password:' -AsSecureString

# (No recomendado) Texto plano a SecureString
ConvertTo-SecureString "Password1" -AsPlainText -Force

Prima di eseguire l'installazione finale, verificare i prerequisiti con i cmdlet di test (le varianti Test-*).

Creare una nuova foresta con richieste interattive di password DSRM, considerando il suo utilizzo in:

Install-ADDSForest -DomainName 'corp.contoso.com'

Configura i livelli funzionali, la delega DNS e i percorsi DB/SYSVOL/Logs durante la creazione della foresta:

Install-ADDSForest -DomainName corp.contoso.com -CreateDNSDelegation -DomainMode Win2008 -ForestMode Win2025 -DatabasePath 'D:\NTDS' -SYSVOLPath 'D:\SYSVOL' -LogPath 'E:\Logs'

Aggiungi un dominio figlio o ad albero con Install-ADDSDomain definendo credenziali, sito, DC di origine e percorsi in modo che venga distribuita l'intera struttura necessaria.

RODC in due fasi: account preconfigurato e associazione

Per un RODC a livelli, creare innanzitutto l'account del controller di dominio di sola lettura utilizzando il cmdlet appropriato e delegare l'amministrazione, se necessario:

Add-ADDSReadOnlyDomainControllerAccount -DomainControllerAccountName RODC1 -DomainName corp.contoso.com -SiteName Boston -DelegatedAdministratorAccountName AdminUser

Sul server che verrà aggiunto a quell'account, senza ancora aggiungerlo al dominio , installa il ruolo e completa la promozione utilizzando l'account esistente:

Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools
Install-ADDSDomainController -DomainName corp.contoso.com -SafeModeAdministratorPassword (Read-Host -Prompt 'DSRM Password:' -AsSecureString) -Credential (Get-Credential Corp\AdminUser) -UseExistingAccount

È possibile confermare con Y o automatizzare con -Confirm per sopprimere le domande interattive negli script.

Installazione di AD DS tramite GUI (Server Manager): passaggi essenziali

Se preferisci la procedura guidata grafica, Server Manager copre l'intero ciclo : dall'aggiunta del ruolo AD DS alla promozione del server a controller di dominio tramite la procedura guidata di configurazione.

  1. Avvia "Aggiungi ruoli e funzionalità", selezionare l'installazione basata sui ruoli e il server di destinazione.
  2. Marchio "Active Directory Domain Services", accetta l'aggiunta della funzionalità e continua.
  3. Installa e, al termine, fai clic su "Promuovi questo server a controller di dominio" per aprire la procedura guidata di configurazione.
  4. Nella configurazione della distribuzione, scegli: aggiungi DC al dominio esistente, crea un dominio figlio, crea un dominio ad albero o crea una nuova foresta.
  5. Nelle Opzioni del controller di dominio, selezionare DNS, GC o RODC a seconda dei casi, scegliere il sito, definire la password DSRM.
  6. Se installi DNS, nelle Opzioni DNS decidere se aggiornare la delega (richiede autorizzazioni sulla zona primaria).
  7. Per RODCNelle Opzioni RODC è possibile delegare l'amministrazione e modificare i criteri di replica delle password.
  8. In Opzioni aggiuntive, convalida il NetBIOS del dominio o del controller di dominio di replica. IFM indica il percorso al supporto (non valido per il primo controller di dominio nel dominio).
  9. Nei percorsi, definisce le posizioni del database, i registri e SYSVOL (oppure accettare i percorsi predefiniti).
  10. Opzioni in preparazione, utilizzare le credenziali con autorizzazioni per eseguire adprep.
  11. Seleziona le opzioni, esporta il copione se vuoi ed esegue il controllo dei prerequisiti.
  12. Installa e lascia che il server si riavvii per completare la promozione.
  Tutorial per risolvere i problemi più comuni della webcam

Negli scenari RODC con un account preesistente , la procedura guidata consente di "Utilizzare un account RODC esistente", selezionare IFM, i percorsi e completare i controlli.

Risorsa DSC WindowsFeature: applica lo stato desiderato

Oltre al cmdlet, la risorsa DSC WindowsFeature garantisce la presenza o l'assenza di un ruolo o di una funzionalità su uno o più server, integrandosi perfettamente nelle infrastrutture completamente automatizzate.

Sinossi : Per installare o disinstallare un ruolo o una funzionalità di Windows in modo dichiarativo.

Sintassi delle risorse all'interno di una configurazione DSC:

WindowsFeature  #ResourceName
{
  Name                   = 
  ]
  ]]
   { Absent | Present }]
  ]
  ]
  ]
}

Requisiti : Windows Server 2008 o versioni successive sul sistema di destinazione e accesso ai moduli PowerShell DISM e ServerManager.

Nome della proprietà chiave : utilizzare il nome interno del ruolo o della funzionalità (non il nome visualizzato). Per elencare le opzioni valide in un team, utilizzare questo campo, integrando così le informazioni necessarie per automatizzare la gestione di ruoli e funzionalità.

Altre proprietà rilevanti in scenari reali:

  • Credenziali: Credenziale per aggiungere o rimuovere il ruolo di tale identità. Tipo PSCredential.
  • Garantire: "Presente" per installare, "Assente" per rimuovere. Valore predefinito: Presente.
  • Includi tutte le sottofunzioni: installa tutte le sottofunzionalità, se applicabili $trueSe Ensure = Assente, rimuovere anche le sottocaratteristiche.
  • LogPath: percorso al file di registro di installazione o disinstallazione.

Proprietà di sola lettura DisplayName : il nome visualizzato che la risorsa ottiene dopo l'applicazione dello stato.

Impara più velocemente: guida aggiornabile ed esempi integrati

Mantieni aggiornata la tua guida con Update-Help , quindi usa Get-Help per visualizzare riepiloghi ed esempi di qualsiasi cmdlet, incluso quello di cui stiamo parlando:

Update-Help
Get-Help Get-WindowsFeature -Examples

Questa combinazione evita di perdere tempo in ricerche sul web quando si desiderano semplicemente esempi pronti da copiare e incollare.

Ambito e prodotti interessati

Il comando Get-WindowsFeature e le operazioni qui descritte si applicano a Windows Server (2008 e versioni successive). Alcuni riferimenti specifici menzionano Microsoft Windows Server 2012 e 2012 R2 come prodotti interessati.

Negli ambienti dei produttori, questa funzionalità è supportata su un'ampia gamma di server aziendali (ad esempio, le famiglie Dell PowerEdge come C4130, C4140 e C6400, tra le altre), rafforzandone l'applicabilità in ambienti di data center eterogenei. Per ulteriori informazioni, è possibile consultare anche le risorse relative a server e sedi.

  Come si può riparare l'errore di connessione chiusa ERR nel browser Chrome

Con questi elementi a disposizione, l'inventario e la standardizzazione dei ruoli con Get-WindowsFeature, la distribuzione di IIS o la promozione di AD DS diventano attività ripetibili, tracciabili e facili da automatizzare ; e, se si desidera garantire lo stato, la risorsa DSC WindowsFeature completa il ciclo con un solido livello dichiarativo.

Migrare ruoli e servizi su un altro server con Windows Server 5
Articolo correlato:
Guida completa alla migrazione di ruoli e servizi su un altro Windows Server