lunedì 16 ottobre 2023

PowerShell: Aggiungere una workstation ad un dominio

Per aggiungere un server o una workstation ad un dominio tramite PowerShell, è possibile utilizzare il cmdlet Add-Computer. Il cmdlet lo abbiamo già incontrato nell'articolo Windows Server 2022: Aggiungere il server ad un dominio (Join)  e in questo articolo verrà illustrato più dettagliatamente e lo utilizzeremo per aggiungere una workstation Windows 11 al nostro dominio.

Il cmdlet Add-Computer può essere utilizzato per aggiungere il computer locale o i computer remoti a un dominio o a un gruppo di lavoro oppure per spostarli da un dominio a un altro. 
È possibile usare i parametri di questo cmdlet per specificare un'unità organizzativa e il controller di dominio o per eseguire un join non sicuro. Per ottenere i risultati del comando, si utilizzano i parametri Verbose e PassThru .

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>]
   
Add-Computer
   [-ComputerName <String[]>]
   [-LocalCredential <PSCredential>]
   [-Credential <PSCredential>]
   [-WorkgroupName] <String>
   [-Restart]
   [-PassThru]
   [-NewName <String>]
   [-Force]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]  


Parametri

-ComputerName
Specifica i computer da aggiungere a un dominio o un gruppo di lavoro. Il valore predefinito è il computer locale. Al parametro può essere passato il nome NetBIOS, un indirizzo IP (Internet Protocol) o un nome di dominio completo di ogni computer remoto. Per specificare il computer locale, digitare il nome del computer, un punto (.) o "localhost".
Questo parametro non si basa sulla comunicazione remota di Windows PowerShell. È possibile utilizzare il parametro ComputerName di Add-Computer anche se il computer non è configurato per eseguire comandi remoti.  

-Confirm
Richiede conferma prima di eseguire il cmdlet.

-Credential
Specifica un account utente che dispone dell'autorizzazione per aggiungere computer a un nuovo dominio. Il valore predefinito è l'utente corrente.
Digitare un nome utente, ad esempio "User01" o "Domain01\User01" o immettere un oggetto PSCredential , ad esempio quello generato dal Get-Credential cmdlet. Se si digita un nome utente, viene richiesta una password.
Per specificare un account utente autorizzato a rimuovere il computer dal dominio corrente, usare il parametro UnjoinDomainCredential. Per specificare un account utente autorizzato a connettersi a un computer remoto, usare il parametro LocalCredential.

-DomainName
Specifica il dominio a cui vengono aggiunti i computer. Questo parametro è obbligatorio quando si aggiunge il computer a un dominio.

-Force
Elimina la richiesta di conferma dell'utente. Senza questo parametro, Add-Computer è necessario confermare l'aggiunta di ogni computer.

-LocalCredential
Specifica un account utente autorizzato a connettersi ai computer specificati dal parametro ComputerName . Il valore predefinito è l'utente corrente.
Digitare un nome utente, ad esempio "User01" o "Domain01\User01" o immettere un oggetto PSCredential , ad esempio quello generato dal Get-Credential cmdlet. Se si digita un nome utente, viene richiesta una password.
Per specificare un account utente con l'autorizzazione per aggiungere i computer a un nuovo dominio, usare il parametro Credential . Per specificare un account utente autorizzato a rimuovere i computer dal dominio corrente, usare il parametro UnjoinDomainCredential.

-NewName
Specifica un nuovo nome per il computer nel nuovo dominio. Questo parametro è valido solo quando un computer viene aggiunto o spostato.

-Options
Specifica le opzioni avanzate per l'operazione Add-Computer di join. Immettere uno o più valori delimitati da virgole in una stringa.
I valori validi per questo parametro sono:
  • AccountCreate: crea un account di dominio. Il Add-Computer cmdlet crea automaticamente un account di dominio quando aggiunge un computer a un dominio. Questa opzione è inclusa per completezza.
  • Win9XUpgrade: indica che l'operazione di join fa parte di un aggiornamento del sistema operativo Windows.
  • UnsecuredJoin: esegue un join non protetto. Per richiedere un join non protetto, usare il parametro Unsecure o questa opzione. Se si vuole passare una password del computer, è necessario usare questa opzione in combinazione con PasswordPass l'opzione .
  • PasswordPass: imposta la password del computer sul valore del parametro Credential(DomainCredential) dopo l'esecuzione di un join non protetto. Questa opzione indica anche che il valore del parametro Credential (DomainCredential) è una password del computer, non una password utente. Questa opzione è valida solo quando viene specificata l'opzione UnsecuredJoin . Quando si usa questa opzione, le credenziali fornite al -Credential parametro devono avere un nome utente Null.
  • JoinWithNewName: rinomina il nome del computer nel nuovo dominio con il nome specificato dal parametro NewName. Quando si usa il parametro NewName, questa opzione viene impostata automaticamente. Questa opzione è progettata per essere usata con il cmdlet Rename-Computer. Se si utilizza il Rename-Computer cmdlet per rinominare il computer, ma non riavviare il computer per rendere effettiva la modifica, è possibile utilizzare questo parametro per aggiungere il computer a un dominio con il nuovo nome.
  • JoinReadOnly: usa un account computer esistente per aggiungere il computer a un controller di dominio di sola lettura. L'account computer deve essere aggiunto all'elenco consentito per i criteri di replica delle password e la password dell'account deve essere replicata nel controller di dominio di sola lettura prima dell'operazione di aggiunta.
  • InstallInvoke: imposta i flag di creazione (0x2) ed eliminazione (0x4) del parametro FJoinOptions del metodo JoinDomainOrWorkgroup . Per altre informazioni sul metodo JoinDomainOrWorkgroup , vedere Metodo JoinDomainOrWorkgroup della classe Win32_ComputerSystem. Per altre informazioni su queste opzioni, vedere Funzione NetJoinDomain.

-OUPath
Specifica un'unità organizzativa per l'account di dominio. Immettere il nome distinto completo dell'unità organizzativa racchiuso tra virgolette. Il valore predefinito è l'unità organizzativa predefinita per gli oggetti computer del dominio.

-PassThru
Restituisce un oggetto che rappresenta l'elemento in uso. Per impostazione predefinita, il cmdlet non genera alcun output.

-Restart
Riavvia i computer aggiunti al dominio o al gruppo di lavoro. Spesso è necessario un riavvio per rendere effettiva la modifica.

-Server
Specifica il nome di un controller di dominio che aggiunge il computer al dominio. Immettere il nome in formato NomeDominio\NomeComputer. Per impostazione predefinita, non viene specificato alcun controller di dominio.

-UnjoinDomainCredential
Specifica un account utente che dispone dell'autorizzazione per rimuovere computer dal dominio corrente. Il valore predefinito è l'utente corrente.
Digitare un nome utente, ad esempio "User01" o "Domain01\User01" o immettere un oggetto PSCredential , ad esempio quello generato dal Get-Credential cmdlet. Se si digita un nome utente, viene richiesta una password.
Usare questo parametro quando si spostano computer in un dominio diverso. Per specificare un account utente con l'autorizzazione per l'aggiunta al nuovo dominio, usare il parametro Credential . Per specificare un account utente autorizzato a connettersi a un computer remoto, usare il parametro LocalCredential.

-Unsecure
Esegue un join non sicuro al dominio specificato.

-WhatIf
Mostra gli effetti dell'esecuzione del cmdlet. Il cmdlet non viene eseguito.

-WorkgroupName
Specifica il nome di un gruppo di lavoro a cui vengono aggiunti i computer. Il valore predefinito è "WORKGROUP".


Esempi

Esempio 1
Add-Computer -DomainName mycompany.local -Restart
Questo comando aggiunge il computer locale al dominio mycompany.local e riavvia il computer per rendere effettiva la modifica.

Esempio 2
Add-Computer -WorkgroupName WORKGROUP1
Questo comando aggiunge il computer locale al gruppo di lavoro Workgroup1.

Esempio 3
Add-Computer -DomainName mycompany.local -Server mycompany.local\ServerDC2 -PassThru -Verbose
Questo comando aggiunge il computer locale al dominio mycompany.local tramite il controller di dominio mycompany.local\ServerDC2.
Il comando usa i parametri PassThru e Verbose per ottenere informazioni dettagliate sui risultati del comando.

Esempio 4 
Add-Computer -DomainName mycompany.local -OUPath "OU=Direzione,DC=mycompany,DC=local"
Questo comando aggiunge il computer locale al dominio Domain02. Usa il parametro OUPath per specificare l'unità organizzativa per i nuovi account.

Esempio 5
Add-Computer -ComputerName Server01 -LocalCredential Server01\Admin01 -DomainName Domain02 -Credential Domain02\Admin02 -Restart -Force
Questo comando aggiunge il computer Server01 al dominio Domain02. Usa il parametro LocalCredential per specificare un account utente autorizzato a connettersi al computer Server01. Usa il parametro Credential per specificare un account utente con l'autorizzazione per aggiungere computer al dominio. Usa il parametro Restart per riavviare il computer al termine dell'operazione di join e il parametro Force per eliminare i messaggi di conferma dell'utente.

Esempio 6
Add-Computer -ComputerName Server01, Server02, localhost -DomainName Domain02 -LocalCredential Domain01\User01 -UnjoinDomainCredential Domain01\Admin01 -Credential Domain02\Admin01 -Restart
Questo comando sposta i computer Server01 e Server02 e il computer locale, da Domain01 a Domain02.
Usa il parametro LocalCredential per specificare un account utente autorizzato a connettersi ai tre computer interessati. Usa il parametro UnjoinDomainCredential per specificare un account utente autorizzato a annullare la partecipazione dei computer dal dominio Domain01 e al parametro Credential per specificare un account utente che abbia l'autorizzazione per aggiungere i computer al dominio Domain02. Usa il parametro Restart per riavviare tutti e tre i computer al termine dello spostamento.

Esempio 7
Add-Computer -ComputerName Server01 -DomainName Domain02 -NewName Server044 -Credential Domain02\Admin01 -Restart
Questo comando sposta il computer Server01 nel dominio Domain02 e modifica il nome del computer in Server044.
Il comando usa le credenziali dell'utente corrente per connettersi al computer Server01 e separarsi dal dominio corrente. Usa il parametro Credential per specificare un account utente con l'autorizzazione per aggiungere il computer al dominio Domain02.

Esempio 8
Add-Computer -ComputerName (Get-Content Servers.txt) -DomainName Domain02 -Credential Domain02\Admin02 -Options Win9xUpgrade  -Restart
Questo comando aggiunge i computer elencati nel Servers.txt file al dominio Domain02. Usa il parametro Options per specificare l'opzione Win9xUpgrade . Il parametro Restart riavvia tutti i computer appena aggiunti al termine dell'operazione di join.

Esempio 9
 New-ADComputer -Name "Server02" -AccountPassword (ConvertTo-SecureString -String 'TempJoinPA$$' -AsPlainText -Force)  
 $joinCred = New-Object pscredential -ArgumentList ([pscustomobject]@{  
   UserName = $null  
   Password = (ConvertTo-SecureString -String 'TempJoinPA$$' -AsPlainText -Force)[0]  
 })  
 Add-Computer -Domain "Domain03" -Options UnsecuredJoin,PasswordPass -Credential $joinCred  

Questa combinazione di comandi crea un nuovo account computer con un nome predefinito e una password di aggiunta temporanea in un dominio usando un computer aggiunto a un dominio esistente. Quindi separatamente, un computer con il nome predefinito unisce il dominio usando solo il nome del computer e la password di aggiunta temporanea. La password predefinita viene usata solo per supportare l'operazione di join e viene sostituita come parte delle normali procedure di account computer dopo che il computer ha completato l'aggiunta.


Aggiungere una workstation Windows 11 al dominio

Prima di poter procedere alla join al dominio della workstation è opportuno assicurarsi che il server sia raggiungibile come indicato nell'articolo Windows Server 2022: Aggiungere una workstation al dominio (join al dominio).
Dalla workstation, avviare PowerShell come amministratore ed eseguire il comando
Add-Computer -DomainName mycompany.local -NewName PCDIR003 -Restart
Verranno richieste le credenziali di un account abilitato all'inserimento del computer al dominio. 
Add-Computer, Aggiungere il computer al dominio
FIG 1 - Add-Computer, Aggiungere il computer al dominio

Una volta specificate le credenziali e cliccato su OK, dopo qualche secondo il computer verrà aggiunto al dominio con il nome specificato dal parametro -NewName.
Utenti e computer di Active Directory
FIG 2 - Utenti e computer di Active Directory






Nessun commento:

Posta un commento

I messaggi sono soggetti a moderazione da parte dell'amministratore prima della loro pubblicazione.