Come creare, eliminare, rinominare, disabilitare e unire computer in AD utilizzando PowerShell
Jul 10, 2018
Prima che un utente possa accedere a un computer e accedere a risorse di rete e basate su dominio, quel computer deve essere membro dell'ambiente Active Directory. In questa guida, scoprirai come automatizzare le attività quotidiane relative agli account dei computer, come ad esempio come creare, rinominare e rimuovere facilmente gli account.
In definitiva, imparerai come utilizzare PowerShell per eseguire i seguenti compiti di gestione degli account computer:
- Unisci un computer a un dominio
- Unisci più computer a un dominio
- Rimuovi un computer da un dominio con PowerShell
- Crea un oggetto Computer in AD
- Crea account computer da un file CSV
- Elimina un computer da AD
- Elimina Account Computer Utilizzando un Elenco
- Rimuovere account computer obsoleti in Active Directory con PowerShell
- Rinomina un Computer
- Rinomina un computer e uniscilo a un dominio
- Disabilita un account computer di AD
- Disabilita Account Computer utilizzando un Elenco
- Reimposta un account computer di AD
PowerShell ISE è il miglior strumento per lavorare con gli script di PowerShell. Avvia lo strumento PowerShell ISE con privilegi di amministratore premendo “Windows+R” e inserendo “runas /profile /user:Administrator PowerShell_ISE” nella finestra Esegui. (In alternativa, puoi fare clic destro sull'icona di PowerShell ISE e scegliere l'opzione “Esegui come amministratore”.) Digita la password dell'amministratore quando richiesto.
Prima di poter lavorare con AD e i suoi oggetti, è necessario importare il modulo Active Directory per Windows PowerShell. In Microsoft Windows Server 2008 R2, è necessario abilitare questo modulo eseguendo il seguente comando:
Import-Module ActiveDirectory
In Microsoft Windows Server 2012 e versioni successive, questo modulo è abilitato per impostazione predefinita.
Unisci un computer a un dominio
Il compito più comune è unire un computer a un domain controller. Per unire un PC a un dominio Active Directory, eseguire lo script PowerShell seguente localmente:
$dc = "ENTERPRISE" # Specify the domain to join.
$pw = "Password123" | ConvertTo-SecureString -asPlainText –Force # Specify the password for the domain admin.
$usr = "$dcT.Simpson" # Specify the domain admin account.
$creds = New-Object System.Management.Automation.PSCredential($usr,$pw)
Add-Computer -DomainName $dc -Credential $creds -restart -force -verbose # Note that the computer will be restarted automatically.
Il computer si riavvierà e poi si unirà al dominio; verrà aggiunto al contenitore predefinito.
Per unire un computer a un DC da remoto, è necessario migliorare lo script in questo modo:
$dc = "ENTERPRISE"
$pw = "Password123" | ConvertTo-SecureString -asPlainText -Force
$usr = "$dcT.Simpson"
$pc = "R07GF" # Specify the computer that should be joined to the domain.
$creds = New-Object System.Management.Automation.PSCredential($usr,$pw)
Add-Computer -ComputerName $pc -LocalCredential $pcadmin -DomainName $dc -Credential $creds -Verbose -Restart -Force
La variabile $pc e il parametro –LocalCredential vengono utilizzati per autenticare il computer nel dominio. Nota che per utilizzare questo metodo, devi disabilitare il firewall sul computer locale.
Unisci più computer a un dominio
È possibile aggiungere più di un computer al dominio specificandoli nella riga di comando come un elenco delimitato da virgole o importando i loro nomi da un file di testo.
Ecco come specificare i computer in un elenco delimitato da virgole:
$dc = "ENTERPRISE"
$pw = "Password123" | ConvertTo-SecureString -asPlainText -Force
$usr = "$dcT.Simpson"
$pc = "WKS034, WKS052, WKS057" # Specify the computers that should be joined to the domain.
$creds = New-Object System.Management.Automation.PSCredential($usr$pw)
Add-Computer -ComputerName $pc -LocalCredential $pcadmin -DomainName $dc -Credential $creds -Restart -Force
Ecco come utilizzare un file di testo con l'elenco dei computer che dovrebbero essere uniti:
$dc = "ENTERPRISE"
$pw = "Password123" | ConvertTo-SecureString -asPlainText -Force
$usr = "$dcT.Simpson"
$pc = Get-Content -Path C:Computers.txt # Specify the path to the computers list.
$creds = New-Object System.Management.Automation.PSCredential($usr,$pw)
Add-Computer -ComputerName $pc -LocalCredential $pcadmin -DomainName $dc -Credential $creds -Restart -Force
Rimuovere un computer da un dominio con PowerShell
Per rimuovere un computer da un dominio a distanza, utilizzare il cmdlet Remove-Computer. Qui, stiamo rimuovendo un computer da un dominio, quindi non sono necessarie credenziali locali e possiamo omettere il parametro ?LocalCredential:
$dc = "ENTERPRISE"
$pw = "Password123" | ConvertTo-SecureString -asPlainText -Force
$usr = "$dcT.Simpson"
$pc = "R07GF"
$creds = New-Object System.Management.Automation.PSCredential($usr,$pw)
Remove-Computer -ComputerName $pc -Credential $creds –Verbose –Restart –Force
Per rimuovere più computer utilizzando un elenco in un file TXT, usare lo script sopra per collegare i computer a un DC, sostituendo il cmdlet Add-Computer con Remove-Computer. Notare che saranno comunque necessarie le credenziali dell'amministratore di dominio per completare questa operazione di disconnessione.
Create a Computer Object in AD
Per creare un oggetto computer, utilizzare il cmdlet New-ADComputer. Ad esempio, eseguire i seguenti parametri del cmdlet per creare un oggetto computer con “WKS932” come nome e il valore predefinito del percorso LDAP:
New-ADComputer –Name “WKS932” –SamAccountName “WKS932”
Create Computer Accounts from a CSV File
Se hai un elenco di computer che dovrebbero essere importati in Active Directory, salva l'elenco in un file CSV con l'intestazione “computer” e l'elenco dei nomi dei computer nella colonna sottostante. Esegui il seguente script PowerShell sul tuo domain controller per aggiungere i computer dal file CSV, assicurandoti di avere le variabili “Path” e “File” impostate correttamente:
$File="C:scriptsComputers.csv" # Specify the import CSV position.
$Path="OU=Devices,DC=enterprise,DC=com" # Specify the path to the OU.
Import-Csv -Path $File | ForEach-Object { New-ADComputer -Name $_.Computer -Path $Path -Enabled $True}
Elimina un computer da AD
Per eliminare un account computer da AD, utilizzare il cmdlet Remove-ADObject. Il parametro -Identity specifica quale computer di Active Directory rimuovere. È possibile specificare un computer tramite il suo nome distinto, GUID, identificatore di sicurezza (SID) o nome account del Security Accounts Manager (SAM).
Remove-ADObject -Identity "WKS932"
Sarai invitato a confermare l'eliminazione.
Elimina Account Computer Utilizzando un Elenco
Se hai un file di testo con un elenco di vecchi computer, puoi semplificare il compito di rimuoverli utilizzando PowerShell. Lo script seguente leggerà i nomi dei computer da un file TXT ed eliminerà gli account corrispondenti tramite una serie di comandi, o pipeline:
Get-Content C:scriptscomputersfordeletion.txt | % { Get-ADComputer -Filter { Name -eq $_ } } | Remove-ADObject -Recursive
Richiedi una prova gratuita di Netwrix Directory Manager per una migliore gestione dei gruppi
Rimuovi account computer obsoleti da Active Directory con PowerShell
Gli account inattivi in Active Directory possono essere compromessi, portando a incidenti di sicurezza, quindi è fondamentale monitorarli. Questo script PowerShell interrogherà Active Directory e restituirà tutti i computer che non hanno effettuato l'accesso negli ultimi 30 giorni; è possibile modificare facilmente questo valore predefinito nello script. Inoltre, rimuoverà quegli account per mantenere pulito il tuo AD.
$stale = (Get-Date).AddDays(-30) # means 30 days since last logon, can be changed to any number.
Get-ADComputer -Property Name,lastLogonDate -Filter {lastLogonDate -lt $stale} | FT Name,lastLogonDate
Get-ADComputer -Property Name,lastLogonDate -Filter {lastLogonDate -lt $stale} | Remove-ADComputer
C'è un computer, FS1, che non è stato accesso per più di 30 giorni. Il sistema chiederà conferma prima di eliminarlo dal dominio:
Se vuoi disabilitare, piuttosto che eliminare, gli account computer inattivi, sostituisci il cmdlet Remove-ADComputer con Set-ADComputer e il parametro e valore -Enabled $false.
Rinomina un computer
Per cambiare il nome di un computer, utilizza il cmdlet Rename-Computer. Nota che il computer deve essere online e connesso ad Active Directory.
Rename-Computer –ComputerName "FS1" -NewName "FS2"
Se vuoi eseguire questo script localmente, apparirà così:
Rename-Computer -NewName "newname" -DomainCredential "DomainAdministrator"
Rinomina un computer e uniscilo a un dominio
Puoi migliorare lo script di rinominazione collegando il computer al dominio e inserendolo contemporaneamente nell'OU specificata. Lo script dovrebbe essere eseguito sulla macchina di destinazione, non sul controller di dominio.
$NewComputerName = "Server3" # Specify the new computer name.
$DC = "contoso.com" # Specify the domain to join.
$Path = "OU=TestOU,DC=contoso,DC=com" # Specify the path to the OU where to put the computer account in the domain.
Add-Computer -DomainName $DC -OUPath $Path -NewName $NewComputerName –Restart –Force
Lo script richiederà le credenziali di un account che ha i permessi per aggiungere computer al dominio, e poi il computer verrà rinominato, riavviato e aggiunto al dominio.
Disabilita un account computer di AD
Utilizza il cmdlet Disable-ADAccount per disabilitare gli account utente, computer e servizio di Active Directory. Se specifichi un nome account computer, ricorda di aggiungere un segno di dollaro ($) alla fine del nome; altrimenti, riceverai un errore dopo l'esecuzione dello script.
Disable-ADAccount -Identity fs1$
Disabilita Account Computer utilizzando un Elenco
È possibile anche disabilitare gli account computer in blocco utilizzando un elenco in un file di testo:
$Pclist = Get-Content C:scriptsComputer.txt # Specify the path to the computers list.
Foreach($pc in $Pclist)
{
Disable-ADAccount -Identity "$pc"
Get-ADComputer -Identity "$pc" | Move-ADObject -TargetPath “OU=Disabled Computers,DC=enterprise,DC=com”
}
Reimposta un account computer di AD
Come un account utente, un account computer interagisce con Active Directory utilizzando una password. Ma per gli account computer, un cambio di password è iniziato ogni 30 giorni per impostazione predefinita e la password è esentata dalla password policy del dominio. I cambi di password sono guidati dal client (computer), non da AD.
Le credenziali del computer sono solitamente sconosciute all'utente perché vengono impostate casualmente dal computer. Ma puoi impostare la tua password; ecco uno script PowerShell per farlo:
$pc = read-host –Prompt “Input computer name to reset“ # Specify the computer name.
$pw = read-host –Prompt “Input random characters for temp password“ –AsSecureString # Specify the password.
Get-ADComputer $pc | Set-ADAccountPassword –NewPassword:$pw -Reset:$true
Conclusione
Ora hai imparato come gestire gli account computer di Active Directory con PowerShell. Puoi migliorare tutti questi script da solo per adattarli ai tuoi scopi.
Ricorda che è fondamentale monitorare attentamente tutte le modifiche agli account dei computer, così da poter individuare rapidamente qualsiasi modifica indesiderata e reagire in modo appropriato.
Migliori pratiche per la gestione dei gruppi di Active Directory
Migliori pratiche per la gestione dei gruppi di Active DirectoryCondividi su
Scopri di più
Informazioni sull'autore
Jeff Melnick
Direttore dell'Ingegneria dei Sistemi
Jeff è un ex Direttore dell'Ingegneria delle Soluzioni Globali presso Netwrix. È un blogger di Netwrix da lungo tempo, nonché relatore e presentatore. Nel blog di Netwrix, Jeff condivide lifehack, consigli e trucchi che possono migliorare notevolmente la tua esperienza di amministrazione del sistema.
Scopri di più su questo argomento
Gestione della configurazione per il controllo sicuro degli endpoint
Leggi sulla Privacy dei Dati per Stato: Diversi Approcci alla Protezione della Privacy
Esempio di Analisi del Rischio: Come Valutare i Rischi
Il Triangolo CIA e la sua applicazione nel mondo reale
Cos'è la gestione dei documenti elettronici?