Visualizzazione post con etichetta unità organizzativa. Mostra tutti i post
Visualizzazione post con etichetta unità organizzativa. Mostra tutti i post

giovedì 14 settembre 2023

Windows Server 2022: Visualizzare informazioni sulle unità organizzative tramite PowerShell

Per visualizzare informazioni su una o più unità organizzative tramite l'utilizzo di PowerShell è possibile utilizzare il cmdlet Get-ADOrganizationalUnit.

Sintassi
Get-ADOrganizationalUnit
   [-AuthType <ADAuthType>]
   [-Credential <PSCredential>]
   -Filter <String>
   [-Properties <String[]>]
   [-ResultPageSize <Int32>]
   [-ResultSetSize <Int32>]
   [-SearchBase <String>]
   [-SearchScope <ADSearchScope>]
   [-Server <String>]
   [<CommonParameters>]
   
Get-ADOrganizationalUnit
   [-AuthType <ADAuthType>]
   [-Credential <PSCredential>]
   [-Identity] <ADOrganizationalUnit>
   [-Partition <String>]
   [-Properties <String[]>]
   [-Server <String>]
   [<CommonParameters>]

Get-ADOrganizationalUnit
   [-AuthType <ADAuthType>]
   [-Credential <PSCredential>]
   -LDAPFilter <String>
   [-Properties <String[]>]
   [-ResultPageSize <Int32>]
   [-ResultSetSize <Int32>]
   [-SearchBase <String>]
   [-SearchScope <ADSearchScope>]
   [-Server <String>]
   [<CommonParameters>]
   

Parametri

-AuthType 
Specifica il metodo di autenticazione. I valori accettati dal parametro sono:
  • Negotiate oppure 0 (default)
  • Basic oppure 1
-Credential
Specifica le credenziali dell'account utente con cui eseguire il comando. 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.

-Filter
Specifica una stringa di query che recupera gli oggetti di Active Directory. Questa stringa usa la sintassi del linguaggio delle espressioni di PowerShell (PowerShell Expression Language syntax) che fornisce un ricco supporto alla conversione di tipo per i tipi di valore ricevuti dal parametro Filter.

-Identity
Tale parametro specifica l'oggetto gruppo Active Directory su cui si desidera intervenire. Al parametro può essere passato un qualsiasi valore che identifica il gruppo in maniera univoca come:
Distinguished name
GUID (objectGUID)
Security identifier (objectSid)
Security Account Manager account name (sAMAccountName) 

-LDAPFilter
Specifica una query LDAP che viene utilizzata per filtrare gli oggetti Active Directory. 

-Partition
A tale parametro va passato il Distinguished Name (DN) di una partizione di Active Directory. Il cmdlet utilizzerà tale partizione per ricercare l'oggetto specificato dal parametro Identity.

-Properties
Specifica le proprietà dell'oggetto da recuperare. Può essere usato per recuperare le proprietà che non sono incluse nel set di default.

-ResultPageSize
Specifica il numero di oggetti da includere in una pagina per una query AD DS (Active Directory Domain Services).

-ResultSetSize
Specifica il numero massimo di oggetti da restituire per la query AD DS (Active Directory Domain Services).

-SearchBase
Specifica un percorso Active Directory all'interno del quale effettuare la ricerca.

-SearchScope
Specifica l'ambito di una ricerca Active Directory. I valori accettabili per questo parametro sono:
  • Base o 0
  • OneLevel 1
  • SubTree o 2

-Server
Permette di specificare l'istanza di Active Directory Domain Services a cui connettersi per recuperare le informazioni della UO.



Esempi

Esempio 1
Get-ADOrganizationalUnit -Properties CanonicalName -Filter * | Format-Table CanonicalName, DistinguishedName
oppure
Get-ADOrganizationalUnit -Filter 'Name -like "*"' | Format-Table Name, DistinguishedName -A
Elenca tutte le unità organizzative presenti nel dominio
Visualizza tutte le UO presenti in AD
FIG 1 - Visualizza tutte le UO presenti in AD


Esempio 2
Get-ADOrganizationalUnit -Identity 'OU=Direzione,DC=mycompany,DC=local' | Format-Table Name,Country,PostalCode,City,StreetAddress,State -A
Visualizza i campi Country, PostalCode, City, StreetAddress, State dell'UO specificata.
Visualizza i campi specificati di una UO
FIG 2 - Visualizza i campi specificati di una UO


Esempio 3
Get-ADOrganizationalUnit -LDAPFilter '(name=*)' -SearchBase 'OU=Direzione,DC=mycompany,DC=local -SearchScope OneLevel | Format-Table Name,Country,PostalCode,City,StreetAddress,State
Questo comando ottiene le UO sotto l'UO Direzione utilizzando un filtro LDAP.
Visualizza le UO contenute all'interno di una UO specificata tramite filtro LDAP
FIG 3 - Visualizza le UO contenute all'interno di una UO specificata tramite filtro LDAP






lunedì 11 settembre 2023

Windows Server 2022: Eliminare una unità organizzativa

Una volta rimossa la protezione da eliminazione accidentale (Windows Server 2022: Rimuovere la protezione da eliminazione accidentale da un'unità organizzativa) eliminare un'unità organizzativa tramite Utenti e Computer di Active Directory o tramite  Centro di amministrazione di Active Directory è molto semplice. Basta cliccare con il tasto destro del mouse sull'unità organizzativa da eliminare, selezionare dal menu contestuale la voce elimina e rispondere affermativamente alla richiesta di conferma.
Utenti e computer di Active Directory, Elimina UO
FIG 1 - Utenti e computer di Active Directory, Elimina UO

Centro di amministrazione di Active Directory, Elimina UO
FIG 2 - Centro di amministrazione di Active Directory, Elimina UO

Per eseguire la stessa operazione tramite PowerShell si utilizza il cmdlet Remove-ADObject. Il comando per eliminare l'UO Direzione\Computer creata negli articoli precedenti sarà
 Remove-ADObject -Confirm:$false -Identity:"OU=Computer,OU=Direzione,DC=mycompany,DC=local" -Server:"ServerDC2.mycompany.local"  
il parametro -Confirm:$false elimina l'unità organizzativa senza richiedere conferma.
PowerShell, Elimina UO
FIG 3 - PowerShell, Elimina UO







venerdì 8 settembre 2023

Windows Server 2022: Rimuovere la protezione da eliminazione accidentale da un'unità organizzativa

Al fine di prevenire la cancellazione accidentale di un'unità organizzativa, è buona norma lasciare attiva l'opzione Proteggi contenitore da eliminazioni accidentali durante la creazione. Provando a cancellare un'unità organizzativa protetta dalle cancellazione verrò visualizzato il messaggio mostrato in FIG 1.
Privilegi insufficienti per eliminare l'UO
FIG 1 - Privilegi insufficienti per eliminare l'UO


Prima di poter eliminare una UO protetta da cancellazione accidentale, è necessario procedere alla rimozione della protezione. Se l'UO che si intende eliminare contiene al suo interno altre UO, la protezione va rimossa anche da queste ultime: non è possibile eliminare UO contenenti elementi protetti dalla cancellazione accidentale.

In questo articolo verrà mostrato come rimuovere la protezione di una unità organizzativa tramite Utenti e Computer di Active DirectoryCentro di amministrazione di Active Directory  e tramite PowerShell.


Rimuovere la protezione da eliminazione accidentale tramite Utenti e Computer di Active Directory

Avviare Utenti e Computer di Active Directory tramite il menu Strumenti di Server Manager o eseguendo il comando dsa.msc.
Dal menu Visualizza di Utenti e computer di Active Directory selezionare Funzionalità avanzate.
Utenti e computer di Active Directory, Visualizza funzionalità avanzate
FIG 2 - Utenti e computer di Active Directory, Visualizza funzionalità avanzate

Cliccare, con il tasto destro del mouse, sull'unità organizzativa che si intende cancellare (ad es. Direzione\Computer) e selezionare Proprietà.
Utenti e computer di Active Directory, Proprietà UO
FIG 3 - Utenti e computer di Active Directory, Proprietà UO

Nella finestra di dialogo relativa alle Proprietà, selezionare la scheda Oggetto e rimuovere la spunta alla casella Proteggi oggetto da eliminazioni accidentali quindi cliccare su OK.
Proprietà UO, Proteggi oggetto da eliminazioni accidentali
FIG 4 - Proprietà UO, Proteggi oggetto da eliminazioni accidentali

Dopo tale operazione l'unità organizzativa potrà essere eliminata normalmente.


Rimuovere la protezione da eliminazione accidentale tramite Centro di amministrazione di Active Directory

Avviare Centro di amministrazione di Active Directory tramite il menu Strumenti di Server Manager o eseguendo il comando dsac.exe.
Cliccare con il tasto destro del mouse sull'unità organizzativa su cui si intende eseguire l'operazione e, dal menu contestuale, selezionare Proprietà.
Centro di amministrazione di Active Directory, Proprietà UO
FIG 5 - Centro di amministrazione di Active Directory, Proprietà UO

Rimuovere la selezione all'opzione Proteggi da eliminazioni accidentali e cliccare su OK.
Proprietà UO, Proteggi da eliminazioni accidentali
FIG 6 - Proprietà UO, Proteggi da eliminazioni accidentali


Rimuovere la protezione da eliminazione accidentale tramite PowerShell

Per rimuovere la protezione da eliminazione accidentale di una UO tramite PowerShell si utilizza il cmdlet Set-ADObject. Ad esempio, per rimuovere la protezione alla UO Direzione\Computer creata in precedenza il comando sarà simile a
 Set-ADObject -Identity:"OU=Computer,OU=Direzione,DC=mycompany,DC=local" -ProtectedFromAccidentalDeletion:$true -Server:"ServerDC2.mycompany.local"  

PowerShell, Rimozione protezione da eliminazione accidentale
FIG 7 - PowerShell, Rimozione protezione da eliminazione accidentale








giovedì 7 settembre 2023

Windows Server 2022: Creare un'unità organizzativa (Organizational Unit)

L'organizzazione degli oggetti (computer, utenti, gruppi, ecc) in Active Directory è implementata mediante le unità organizzative. Come suggerisce il nome, le unità organizzative sono una sorta di contenitori utilizzati per organizzare gli oggetti all'interno di Active Directory. Le unità organizzative vengono utilizzate principalmente per formare una gerarchia di contenitori all'interno di un dominio a scopo amministrativo come ad esempio per l'applicazione dei Criteri di gruppo o per delegare il controllo. Il controllo su un'unità organizzativa e sugli oggetti in essa contenuti viene fornito tramite liste di controllo degli accessi (access control list o ACL). La delega del controllo supportata in Active Directory consente di trasferire il controllo amministrativo completo o limitato sugli oggetti ad altri utenti o gruppi. In questo modo è possibile distribuire la gestione di un numero elevato di oggetti ad una serie di utenti ritenuti attendibili.

In AD sono già presenti le unità organizzative relative a Computer (Computers) e Utenti (Users) come visibile in FIG 1. Tuttavia utilizzare solo queste UO in una grande azienda potrebbe non essere una buona idea.
Utenti e computer di Active Directory
FIG 1 - Utenti e computer di Active Directory

Una grande azienda è generalmente suddivisa in diversi dipartimenti come Direzione, Vendite, Acquisti, Ricerca & Sviluppo, ecc. L'organizzazione degli oggetti in Active Directory può rispecchiare tale schema suddividendo e organizzando gli oggetti di un dominio.

In questi articolo andremo a creare due unità organizzative: una relativa Direzione e l'altra relativa all'ufficio Marketing.
Per la creazione di unità organizzative è possibile utilizzare diversi strumenti. In questo articolo verrà mostrato come creare un'unità organizzativa utilizzando Utenti e Computer di Active Directory, Centro di amministrazione di Active Directory e tramite PowerShell.


Creazione unità organizzativa tramite Utenti e Computer di Active Directory 

Da Server Manager cliccare sul menu Strumenti e selezionare Utenti e Computer di Active Directory (Active Directory Users and Computers). In alternativa premere la combinazione di tasti WIN+R digitare dsa.msc e premere invio.
Server Manager
FIG 2 - Server Manager

Espandere il dominio della propria azienda (mycompany.local) per visualizzare i container e le unità organizzative in esso contenute. Cliccare con il tasto destro del mouse sul nome del dominio e, dal menu contestuale, selezionare Nuovo quindi Unità organizzativa.
Utenti e computer di Active Directory, Nuova unità organizzativa
FIG 3 - Utenti e computer di Active Directory, Nuova unità organizzativa

Digitare, nell'apposita casella, il nome da assegnare all'unità organizzativa, ad es. Direzione, e assicurarsi che sia selezionata l'opzione Proteggi contenitore da eliminazioni accidentali (l'opzione è attiva di default) quindi cliccare su OK per procedere alla creazione.
Nuovo oggetto Unità organizzativa
FIG 4 - Nuovo oggetto Unità organizzativa
In maniera analoga, all'interno dell'unità organizzativa appena creata andremo a crearne altre due: una relativa agli utenti e l'altra relativa ai computer. 
Cliccare con il tasto destro sull'unità organizzativa Direzione, selezionare Nuovo quindi Unità organizzativa. Assegnare il nome Utenti all'unità organizzativa e cliccare su OK per confermare. 
Cliccare nuovamente con il tasto destro sull'unità organizzativa Direzione, selezionare Nuovo, Unità organizzativaAssegnare il nome Computer all'unità organizzativa e cliccare su OK per confermare. 


Ripetere i passaggi sopra indicati per l'unità organizzativa nominata Marketing. Al termine delle operazioni la situazione è quella mostra in FIG 5.
Unità Organizzative Direzione e Marketing
FIG 5 - Unità Organizzative Direzione e Marketing


 

Creazione unità organizzativa tramite Centro di amministrazione di Active Directory 

Da Server Manager cliccare sul menu Strumenti e selezionare Centro di amministrazione di Active Directory. In alternativa premere la combinazione di tasti WIN+R, digitare dsac.exe e premere invio.
Server Manager
FIG 6 - Server Manager

Cliccare con il tasto destro del mouse sul dominio e dal menu contestuale selezionare Nuovo quindi Unità organizzativa.
Centro di amministrazione di Active Directory
FIG 7 - Centro di amministrazione di Active Directory

Inserire il nome da assegnare all'unità organizzativa, ad es. Direzione, e verificare che sia selezionata l'opzione Proteggi contenitore da eliminazioni accidentali (l'opzione è attiva di default). In questa schermata, nell'apposito campo, possiamo anche aggiungere una descrizione all'unità organizzativa che stiamo andando a creare. Cliccare su OK per procedere alla creazione.
Crea Unità organizzativa
FIG 8 - Crea Unità organizzativa

Selezionare l'UO Direzione appena creata, cliccarci su con il tasto destro del mouse e selezionare Nuovo, Unità organizzativa.
*
Nuova unità organizzativa
FIG 9 - Nuova unità organizzativa

Come nome dell'unità organizzativa digitare Computer e cliccare su OK
Cliccare nuovamente con il tasto destro del mouse su Direzione e creare una nuova unità organizzativa nominandola Utenti.

Ripetere i passaggi precedenti per l'unità organizzativa nominata Marketing.

Lightweight Directory Access Protocol e Distinguished Name

Prima di mostrare come aggiungere una nuova unità organizzativa tramite PowerShell è necessario fare un accenno veloce ad alcuni argomenti come LDAP e DN.
Active Directory utilizza il protocollo Lightweight Directory Access Protocol (LDAP) per le interrogazioni. Per identificare in maniera univoca un oggetto all'interno di Active DirectoryLDAP utilizza il Distinguished Name (DN). Il formato utilizzato da DN per identificare un oggetto è tipo_oggetto=Nome_oggetto e più oggetti sono separati da virgola.
Ad es. il dominio mycompany.local è composto da due componenti di dominio (mycompany local) e da DN vengono rappresentati come oggetti di tipo DC (domain component) nel seguente modo
dc=mycompany,dc=local

Le unità organizzative sono oggetti di tipo OU (organizational unit) mentre i container Users e Computers vengono identificati come tipo CN (common name).

L'unità Organizzativa Direzione creata precedentemente ha il seguente DN:
ou=Direzione,dc=mycompany,dc=local

Il container Users viene identificato dal Distinguished Name
cn=Users,dc=mycompany,dc=local

Un account utente con nome Elmer.Fudd presente all'interno dell'unità organizzativa Utenti in Direzione avrà il seguente DN
cn=Elmer.Fudd,ou=Utenti,ou=Direzione,dc=mycompany,dc=local

Dopo questo doveroso chiarimento, vediamo come procedere alla creazione di una nuova unità organizzativa tramite PowerShell.


Creazione unità organizzativa tramite PowerShell

In Windows Server 2008 R2 e nei sistemi operativi più recenti, è presente il modulo PowerShell Active Directory (parte di RSAT) che permette l'iterazione con AD. Tramite PowerShell è possibile creare un'unità organizzativa utilizzando il cmdlet New-ADOrganizationalUnit. Ad esempio, per creare una nuova OU denominata Direzione nella radice del dominio (come visto precedentemente mediante GUI) e le altre due UO, Utenti e Computer, al suo interno è possibile utilizzare i seguenti comandi:
 New-ADOrganizationalUnit -Name:"Direzione" -Path:"DC=mycompany,DC=local" -ProtectedFromAccidentalDeletion:$true -Server:"ServerDC2.mycompany.local"  
 New-ADOrganizationalUnit -Name:"Utenti" -Path:"OU=Direzione,DC=mycompany,DC=local" -ProtectedFromAccidentalDeletion:$true -Server:"ServerDC2.mycompany.local"  
 New-ADOrganizationalUnit -Name:"Computer" -Path:"OU=Direzione,DC=mycompany,DC=local" -ProtectedFromAccidentalDeletion:$true -Server:"ServerDC2.mycompany.local"  
PowerShell, Nuova unità organizzativa
FIG 10 - PowerShell, Nuova unità organizzativa

I comandi creano un'unità organizzativa con il nome specificato dal parametro -Name, nel percorso specificato da -Path, protetta dalla cancellazione accidentale (-ProtectedFromAccidentalDeletion:$true) e sul server specificato dal parametro -Server. Volendo è possibile aggiungere una descrizione all'unità organizzativa mediante il parametro -Description. Ad esempio
 New-ADOrganizationalUnit -Name:"Direzione" -Path:"DC=mycompany,DC=local" -ProtectedFromAccidentalDeletion:$true -Description "Uffici Direzione" -Server:"ServerDC2.mycompany.local"  

Tramite PowerShell è possibile anche automatizzare la creazione di più unità organizzative. Ad esempio, supponiamo di avere un file ElencoUO.csv con all'interno l'elenco delle UO da creare all'interno della root del dominio.
File di testo con elenco UO
FIG 11 - File di testo con elenco UO

Tramite un semplice script come quello indicato di seguito possiamo caricare l'elenco e creare le unità organizzative risparmiando tempo rispetto alla creazione manuale.

  $targetOU="DC=mycompany,DC=local"   
  $OUs = Import-csv "C:\PS\ElencoUO.csv"   
  foreach ($ou in $OUs)   
  {   
     write-host $ou.name   
     New-ADOrganizationalUnit -Name $ou.name -path $targetOU -ProtectedFromAccidentalDeletion:$true   
  }   




lunedì 26 settembre 2022

PowerShell: Forzare il cambio password per tutti gli utenti appartenenti ad una UO

Per forzare la reimpostazione della password da parte degli utenti appartenenti ad una specifica UO è possibile farlo in blocco utilizzando i cmdlet Get-ADUser e Set-ADUser.
Il comando mostrato di seguito utilizza un filtro per ottenere gli utenti appartenenti all'unità organizzativa (UO) "Direzione" e, tramite pipe, per ciascun account viene impostata l'opzione Cambiamento obbligatorio password.
 Get-ADUser -Filter * -SearchScope OneLevel -SearchBase "OU=Direzione,DC=mycompany,DC=local" | Set-ADUser -ChangePasswordAtLogon $true  
Per agire anche sulle UO sottostanti basta modificare il paramentro -SearchScope passandogli il valore Subtree
 Get-ADUser -Filter * -SearchScope Subtree -SearchBase "OU=Direzione,DC=mycompany,DC=local" | Set-ADUser -ChangePasswordAtLogon $true  
PowerShell, ChangePasswordAtLogon
FIG 1 - PowerShell, ChangePasswordAtLogon

Utenti e computer di Active Directory, Cambiamento obbligatorio password
FIG 2 - Utenti e computer di Active Directory, Cambiamento obbligatorio password




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.