Il cmdlet Add-Computer viene utilizzato per aggiungere il computer locale o computer remoti ad un dominio, ad un gruppo di lavoro o per spostarli da un dominio all'altro. Il comando provvede anche alla creazione dell'account all'interno del dominio nel caso non fosse già presente ed è possibile utilizzare i parametri per specificare un particolare Domain Controller, un'unità organizzativa dove aggiungere il computer, visualizzare un log verboso ecc.
Sintassi
Add-Computer[-ComputerName <String[]>]
[-LocalCredential <PSCredential>]
[-UnjoinDomainCredential <PSCredential>]
[-Credential <PSCredential>]
[-DomainName] <String>
[-OUPath <String>]
[-Server <String>]
[-Unsecure]
[-Options <JoinOptions>]
[-Restart]
[-PassThru]
[-NewName <String>]
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Parametri
-ComputerNameSpecifica il computer (o più computer separati da virgola) da aggiungere al dominio. Per default viene considerato il computer locale. Il computer può essere specificato attraverso il suo nome NetBIOS, indirizzo IP o tramite il FQDN (Fully Qualified Domain Name)
-Confirm
Permette di richiedere una conferma prima dell'esecuzione del cmdlet.
-Credential
Specifica un'account utente che ha i permessi necessari per aggiungere computer al dominio. Se omesso viene considerato l'utente corrente che sta eseguendo il comando. Al parametro può essere passato il nome dell'account, come ad es. "utente01" o "Dominio\utente01" oppure può essere passato un'oggetto PSCredential generato dal cmdlet Get-Credential. Se viene specificato un'account utente verrà richiesto di inserire la password all'esecuzione del comando.
-DomainName
Al parametro va passato il dominio a cui aggiungere il computer.
-Force
Non visualizza il messaggio di conferma per ogni computer che viene aggiunto al dominio dal comando.
-LocalCredential
Specifica un account utente che ha i permessi per accedere ai computer indicati da -ComputerName. Al parametro può essere passato il nome dell'account, come ad es. "utente01" o "Dominio\utente01" oppure può essere passato un'oggetto PSCredential generato dal cmdlet Get-Credential. Se viene specificato un'account utente verrà richiesto di inserire la password all'esecuzione del comando.
-NewName
Specifica un nuovo nome da assegnare al computer all'interno del dominio.
-OUPath
Permette di specificare l'unità organizzativa in cui creare l'account computer. Va passato il Distinguished Name dell'unità organizzativa tra virgolette.
-Options
Permette di specificare opzioni avanzate utilizzate da Add-Computer nella join al dominio. I valori accettati sono i seguenti (nel caso vengano specificati più valori vanno separati da virgola):
- AccountCreate: Crea un account all'interno del dominio. L'operazione viene già eseguita dal cmdlet Add-Computer e tale valore è incluso solo per completezza.
- Win9XUpgrade: Indica che l'operazione di join al dominio fa parte di un aggiornamento del sistema operativo Windows.
- UnsecuredJoin: Esegue una join non protetta.
- PasswordPass: Imposta la password della macchina con il valore del parametro Credential(DomainCredential) dopo aver eseguito una join non protetta. Questa opzione indica anche che il valore del parametro Credential (DomainCredential) è una password macchina e non una password utente. L'opzione è valida solo quando viene specificata anche l'opzione UnsecuredJoin. Quando si utilizza questa opzione, le credenziali fornite al parametro -Credential devono avere un nome utente nullo.
- JoinWithNewName: Rinomina il nome del computer nel nuovo dominio con il nome specificato dal parametro NewName. Quando si utilizza il parametro -NewName, questa opzione viene impostata automaticamente. Questa opzione è progettata per essere utilizzata con il cmdlet Rename-Computer. Se si utilizza il cmdlet Rename-Computer per rinominare il computer, ma non si riavvia il computer per rendere effettiva la modifica, è possibile utilizzare questo parametro per unire il computer ad un dominio con il suo nuovo nome.
- JoinReadOnly: Utilizza un account macchina esistente per collegare il computer a un controllore di dominio di sola lettura. L'account macchina deve essere aggiunto all'elenco consentito per la politica di replica della password e la password dell'account deve essere replicata al controller di dominio in sola lettura prima dell'operazione di join.
- InstallInvoke: Imposta i flag create (0x2) e delete (0x4) del parametro FJoinOptions del metodo JoinDomainOrWorkgroup. Per maggiori informazioni fare riferimento al documento JoinDomainOrWorkgroup method of the Win32_ComputerSystem class presente in MSDN.
-PassThru
Restituisce un oggetto che rappresenta l'item su cui si sta lavorando. Per impostazione predefinita, il cmdlet non genera alcun output.
-Restart
Riavvia il computer una volta aggiunto al dominio. Il riavvio è comunque richiesto per rendere effettive le modifiche.
-Server
Permette di specificare un Domain Controller tramite il quale aggiungere il computer al dominio. Il nome da passare al parametro va specificato nel formato dominio\NomeServer (ad es. mycompany\Server1DC). Per default non viene specificato alcun Domain Controller.
-UnjoinDomainCredential
Tale parametro viene utilizzato per rimuovere computer dal dominio. Al parametro va passato un account utente che dispone dei permessi per eseguire l'operazione, ad es. "utente01" o "Dominio\utente01" oppure può essere passato un'oggetto PSCredential generato dal cmdlet Get-Credential. Se viene specificato un'account utente verrà richiesto di inserire la password all'esecuzione del comando.
-Unsecure
Esegue una join non protetta al dominio specificato.
-WhatIf
Mostra cosa accadrebbe se venisse eseguito il cmdlet. Il cmdlet non viene eseguito.
-WorkgroupName
Permette di specificare il nome del gruppo di lavoro a cui i computer verranno aggiunti. Il valore di default è "WORKGROUP".
Join del computer al dominio tramite PowerShell
Prima di procedere con la join al dominio bisogna verificare che la workstation riesca a comunicare con il domain controller. Per i passaggi da eseguire per effettuare tale verifica rimando a quanto illustrato all'interno dell'articolo Windows Server 2019: Aggiungere una workstation al dominio (join al dominio).Sulla workstation:
- Avviare PowerShell come amministratore. Premere la combinazione di tasti Win+X quindi selezionare Windows PowerShell (amministratore).
- Digitare ed eseguire il comando
Add-Computer -DomainName mycompany.local -NewName PCDIR003 -OUPath "ou=Computer,ou=Direzione,dc=mycompany,dc=local"
per aggiungere il computer al dominio mycompany.local all'interno dell'unità organizzativa Direzione\Computer con il nome PCDIR003. - Quando richiesto, specificare le credenziali di un'account abilitato ad eseguire la join al dominio (ad es. mycompany\administrator).
FIG 1 - Join al dominio tramite l'utilizzo del cmdlet PowerShell Add-Computer - Al termine dell'operazione verrà richiesto di riavviare il sistema per rendere effettive le modifiche.
FIG 2 - Riavvio richiesto dopo la join al dominio
- Da Server Manager cliccare sul menu Strumenti e selezionare Utenti e computer di Active Directory.
- Posizionarsi sull'unità organizzativa Direzione\Computer e verificare che sia presente il computer con nome PCDIR003 aggiunto dal cmdlet Add-Computer.
FIG 3 - Workstation aggiunta al dominio tramite Add-Computer
Esempi
Di seguito verranno mostrati altri esempi di utilizzo del cmdlet Add-Computer.Esempio 1
Add-Computer -DomainName mycompany.local -Restart
Aggiunge il computer locale al dominio mycompany.local e lo riavvia per rendere effettive le modifiche.
Esempio 2
Add-Computer -DomainName mycompany.local -Server mycompany.local\Server1DC -PassThru -Verbose
Il comando aggiunge il computer locale al dominio mycompany.local utilizzando il domain controller mycompany.local\Server1DC. I parametri PassThru e Verbose consentono di avere informazioni dettagliate sull'esecuzione del comando.
Esempio 3
Add-Computer -DomainName mycompany.local -OUPath "ou=Computer,ou=Direzione,dc=mycompany,dc=local"
Aggiunge il computer locale al dominio mycompany.local creando l'account all'interno dell'unità organizzativa specificata.
Esempio 4
Add-Computer -ComputerName PCDIR003 -LocalCredential PCDIR003\Utente1 -DomainName mycompany.local -Credential mycompany.local\Administrator -Restart -Force
Il comando aggiunge il computer con nome PCDIR003 al dominio mycompany.local. Tramite il parametro LocalCredential viene specificato un account abilitato a connettersi al computer PCDIR003. Con il parametro -Credential viene specificato l'account del dominio abilitato ad eseguire la join dei computer. Il parametro -Restart riavvia il computer una volta eseguita la Join mentre con il parametro -Force vengono soppresse eventuali richieste di conferma all'utente.
Nel caso in cui il comando restituisca un errore:
Add-Computer : Impossibile stabilire la connessione WMI al computer 'PCDIR003' con il messaggio di errore seguente: Server RPC non disponibile. (Eccezione da HRESULT: 0x800706BA).
Verificare sulla workstation:
- Che il profilo di rete sia Privato e non Pubblico;
FIG 4 - Windows 10, Profilo di rete Privato |
- Attivare la condivisione file e stampanti per il profilo di rete Privato;
FIG 5 - Windows 10, Attivazione condivisione file e stampanti su Profilo di rete Privato |
- Verificare e attivare la Gestione remota di Windows con il comando winrm quickconfig;
FIG 6 - Windows 10, Attivazione gestione remota di Windows tramite winrm |
- Nelle regole di connessioni in entrata del firewall abilitare Strumentazione gestione Windows (WMI-In).
FIG 7 - Windows 10, Abilitazione regola firewall Strumentazione gestione Windows (WMI-In) |
Esempio 5
Add-Computer -ComputerName pc01,pc02,pc03 -DomainName mycompany.local -Credential mycompany.local\Administrator -Restart
Il comando aggiunge i computer pc01, pc02 e pc03 al dominio mycompany.local e li riavvia una volta eseguita la join.
Esempio 6
Add-Computer -ComputerName pc01 -DomainName mycompany.local -NewName PCDIR003 -Credential mycompany.local\Administrator -Restart
Il comando aggiunge il computer pc01 al dominio mycompany.local e gli cambia il nome in PCDIR003.
Esempio 7
Add-Computer -ComputerName (Get-Content ElencoComputer.txt) -DomainName mycompany.local -Credential mydomain.local\Administrator -Options Win9xUpgrade -Restart
Aggiunge i computer elencati nel file ElencoComputer.txt all'interno del dominio mycompany.local. Il parametro -Restart riavvia ciascun computer dopo la join al dominio.