Visualizzazione post con etichetta Add-Computer. Mostra tutti i post
Visualizzazione post con etichetta Add-Computer. Mostra tutti i post

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






lunedì 23 marzo 2020

Windows Server 2019: Aggiungere una workstation Windows 10 al dominio tramite PowerShell

Per aggiungere un computer con sistema operativo Windows 10 al dominio è possibile utilizzare il cmdlet Add-Computer di PowerShell

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

-ComputerName
Specifica 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).
    Join al dominio tramite l'utilizzo del cmdlet PowerShell Add-Computer
    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.
    Riavvio richiesto dopo la join al dominio
    FIG 2 - Riavvio richiesto dopo la join al dominio
Sul Domain Controller:
  • 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.
    Workstation aggiunta al dominio tramite 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;
Windows 10, Profilo di rete Privato
FIG 4 - Windows 10, Profilo di rete Privato

- Attivare la condivisione file e stampanti per il profilo di rete Privato;
Windows 10, Attivazione condivisione file e stampanti su 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;
Windows 10, Attivazione gestione remota di Windows tramite winrm
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).
Windows 10, Abilitazione regola firewall 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.