PowerShell Kullanarak Active Directory'deki Bilgisayarları Yönetme


Bir kullanıcının bir bilgisayarda oturum açıp ağ ve etki alanı tabanlı kaynaklara erişebilmesi için, o bilgisayarın Active Directory ortamının bir üyesi olması gerekir. Bu kılavuzda, hesapları kolayca oluşturma, yeniden adlandırma ve kaldırma gibi bilgisayar hesaplarıyla ilgili günlük görevleri nasıl otomatikleştireceğinizi öğreneceksiniz.

Toplamda, aşağıdaki bilgisayar hesabı yönetimi görevlerini gerçekleştirmek için PowerShell'i nasıl kullanacağınızı öğreneceksiniz:

  • Bir Bilgisayarı Etki Alanına Birleştirme

    • Birden Fazla Bilgisayarı Bir Etki Alanına Birleştirme
  • PowerShell ile Bir Bilgisayarı Etki Alanından Kaldırma
  • AD'de Bilgisayar Nesnesi Oluşturma

    • CSV Dosyasından Bilgisayar Hesapları Oluşturma
  • Bir Bilgisayarı AD'den Silme

    • Liste Kullanarak Bilgisayar Hesaplarını Silme
    • PowerShell ile Active Directory'deki Eski Bilgisayar Hesaplarını Kaldırma
  • Bir Bilgisayarı Yeniden Adlandırın

    • Bilgisayarı Yeniden Adlandırın ve Etki Alanına Katın
  • AD Bilgisayar Hesabını Devre Dışı Bırakma

    • Liste Kullanarak Bilgisayar Hesaplarını Devre Dışı Bırakma
  • AD Bilgisayar Hesabını Sıfırlama

PowerShell ISE, PowerShell komut dosyalarıyla çalışmak için en iyi araçtır. “Windows+R” tuşlarına basarak ve Çalıştır penceresine “runas /profile /user:Administrator PowerShell_ISE” yazarak PowerShell ISE aracını yönetici ayrıcalıklarıyla başlatın. (Alternatif olarak PowerShell ISE simgesine sağ tıklayıp “Yönetici olarak çalıştır” seçeneğini de seçebilirsiniz.) İstendiğinde yönetici şifresini yazın.

AD ve nesneleriyle çalışabilmeniz için önce Windows PowerShell için Active Directory modülünü içe aktarmanız gerekir. Microsoft Windows Server 2008 R2'de aşağıdaki komutu çalıştırarak bu modülü etkinleştirmeniz gerekir:

Import-Module ActiveDirectory

Microsoft Windows Server 2012 ve sonraki sürümlerde bu modül varsayılan olarak etkindir.

Bir Bilgisayarı Etki Alanına Birleştirme

En yaygın görev, bir bilgisayarı etki alanı denetleyicisine bağlamaktır. Bir bilgisayarı Active Directory etki alanına eklemek için aşağıdaki PowerShell betiğini yerel olarak çalıştırın:

$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.

Bilgisayar yeniden başlatılacak ve etki alanına katılacaktır; varsayılan konteynere eklenecektir.

Bir bilgisayarı uzaktan DC'ye bağlamak için bu betiği şu şekilde geliştirmeniz gerekir:

$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

$pc değişkeni ve -LocalCredential parametresi, bilgisayarın etki alanında kimliğini doğrulamak için kullanılır. Bu yöntemi kullanmak için yerel bilgisayardaki güvenlik duvarını devre dışı bırakmanız gerektiğini unutmayın.

Birden Fazla Bilgisayarı Bir Etki Alanına Birleştirme

Birden fazla bilgisayarı komut satırında virgülle ayrılmış liste olarak belirterek veya adlarını bir metin dosyasından içe aktararak etki alanına ekleyebilirsiniz.

Virgülle ayrılmış bir listede bilgisayarları nasıl belirleyeceğiniz aşağıda açıklanmıştır:

$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

Birleştirilmesi gereken bilgisayarların listesini içeren bir metin dosyasının nasıl kullanılacağı aşağıda açıklanmıştır:

$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

PowerShell ile Bir Bilgisayarı Etki Alanından Kaldırma

Bir bilgisayarı bir etki alanından uzaktan kaldırmak için Remove-Computer cmdlet'ini kullanın. Burada, bir bilgisayarı etki alanından kaldırıyoruz, dolayısıyla yerel kimlik bilgilerine gerek kalmıyor ve ?LocalCredential parametresini atlayabiliriz:

$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

Bir TXT dosyasındaki listeyi kullanarak birden fazla bilgisayarı kaldırmak için, bilgisayarları bir DC'ye birleştirmek için Bilgisayar Ekle cmdlet'ini Bilgisayarı Kaldır ile değiştirerek yukarıdaki betiği kullanın. Bu ayrılma işlemini tamamlamak için yine de etki alanı yöneticisi kimlik bilgilerine ihtiyacınız olacağını unutmayın.

AD'de Bilgisayar Nesnesi Oluşturma

Bir bilgisayar nesnesi oluşturmak için New-ADComputer cmdlet'ini kullanın. Örneğin, adı "WKS932" ve varsayılan LDAP yolu değeri olan bir bilgisayar nesnesi oluşturmak için aşağıdaki cmdlet parametrelerini yürütün:

New-ADComputer –Name “WKS932” –SamAccountName “WKS932”

CSV Dosyasından Bilgisayar Hesapları Oluşturma

Active Directory'ye aktarılması gereken bilgisayarların bir listesi varsa, listeyi "bilgisayar" başlığıyla ve altındaki sütunda bilgisayar adlarının listesiyle birlikte bir CSV dosyasına kaydedin. CSV dosyasından bilgisayar eklemek için etki alanı denetleyicinizde aşağıdaki PowerShell komut dosyasını çalıştırın ve "Yol" ve "Dosya" değişkenlerinin doğru ayarlandığından emin olun:

$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}

Bir Bilgisayarı AD'den Silme

AD'den bir bilgisayar hesabını silmek için Remove-ADObject cmdlet'ini kullanın. -Identity parametresi hangi Active Directory bilgisayarının kaldırılacağını belirtir. Bir bilgisayarı ayırt edici adına, GUID'sine, güvenlik tanımlayıcısına (SID) veya Güvenlik Hesapları Yöneticisi (SAM) hesap adına göre belirtebilirsiniz.

Remove-ADObject -Identity "WKS932"

Silme işlemini onaylamanız istenecektir.

Liste Kullanarak Bilgisayar Hesaplarını Silme

Eski bilgisayarların listesini içeren bir metin dosyanız varsa PowerShell'i kullanarak bunları kaldırma görevini kolaylaştırabilirsiniz. Aşağıdaki komut dosyası, bilgisayar adlarını bir TXT dosyasından okuyacak ve karşılık gelen hesapları bir komut zinciri veya boru hattı aracılığıyla silecektir:

Get-Content C:scriptscomputersfordeletion.txt | % { Get-ADComputer -Filter { Name -eq $_ } } | Remove-ADObject -Recursive

PowerShell ile Eski Bilgisayar Hesaplarını Active Directory'den Kaldırma

Active Directory'deki eski hesapların güvenliği ihlal edilebilir ve bu da güvenlik olaylarına yol açabilir; dolayısıyla bunlara göz kulak olmak kritik önem taşır. Bu PowerShell betiği, Active Directory'yi sorgulayacak ve son 30 gün boyunca oturum açmamış tüm bilgisayarları döndürecektir; bu varsayılan değeri komut dosyasında kolayca değiştirebilirsiniz. Ayrıca AD'nizi temiz tutmak için bu hesapları da kaldıracaktır.

$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

30 günden fazla süredir oturum açılmamış bir bilgisayar (FS1) var. Sistem, alan adından silinmeden önce onay isteyecektir:

Etkin olmayan bilgisayar hesaplarını silmek yerine devre dışı bırakmak istiyorsanız Remove-ADComputer cmdlet'ini Set-ADComputer ve -Enabled $false ile değiştirin. parametre ve değer.

Bir Bilgisayarı Yeniden Adlandırın

Bir bilgisayarın adını değiştirmek için Rename-Computer cmdlet'ini kullanın. Bilgisayarın çevrimiçi olması ve Active Directory'ye bağlı olması gerektiğini unutmayın.

Rename-Computer –ComputerName "FS1" -NewName "FS2"

Bu betiği yerel olarak çalıştırmak istiyorsanız şöyle görünecektir:

Rename-Computer -NewName "newname" -DomainCredential "DomainAdministrator"

Bilgisayarı Yeniden Adlandırın ve Etki Alanına Katın

Bilgisayarı etki alanına katarak ve aynı anda belirtilen kuruluş birimine yerleştirerek yeniden adlandırma komut dosyasını geliştirebilirsiniz. Komut dosyası, etki alanı denetleyicisinde değil, hedef makinede çalıştırılmalıdır.

$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

Komut dosyası, bilgisayarları etki alanına birleştirme izinlerine sahip bir hesabın kimlik bilgilerini isteyecek ve ardından bilgisayar yeniden adlandırılacak, yeniden başlatılacak ve etki alanına katılacaktır.

AD Bilgisayar Hesabını Devre Dışı Bırakma

Active Directory kullanıcı, bilgisayar ve hizmet hesaplarını devre dışı bırakmak için Disable-ADAccount cmdlet'ini kullanın. Bir bilgisayar hesabı adı belirtirseniz, adın sonuna dolar işareti ($) eklemeyi unutmayın; aksi halde komut dosyasının yürütülmesinden sonra bir hata alırsınız.

Disable-ADAccount -Identity fs1$

Liste Kullanarak Bilgisayar Hesaplarını Devre Dışı Bırakma

Ayrıca bir metin dosyasındaki listeyi kullanarak bilgisayar hesaplarını toplu olarak devre dışı bırakabilirsiniz:

$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”
}

AD Bilgisayar Hesabını Sıfırlama

Kullanıcı hesabı gibi, bilgisayar hesabı da Active Directory ile bir parola kullanarak etkileşime girer. Ancak bilgisayar hesapları için varsayılan olarak her 30 günde bir şifre değişikliği başlatılır ve şifre, alan adının şifre politikasından muaf tutulur. Parola değişiklikleri AD tarafından değil istemci (bilgisayar) tarafından gerçekleştirilir.

Bilgisayar kimlik bilgileri bilgisayar tarafından rastgele ayarlandığından genellikle kullanıcı tarafından bilinmez. Ancak kendi şifrenizi belirleyebilirsiniz; işte bunu yapmak için bir PowerShell betiği:

$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

Çözüm

Artık Active Directory bilgisayar hesaplarını PowerShell ile nasıl yöneteceğinizi öğrendiniz. Tüm bu scriptleri amaçlarınıza uygun hale getirmek için kendi başınıza geliştirebilirsiniz.

İstenmeyen değişiklikleri hızlı bir şekilde tespit edip uygun şekilde yanıt verebilmek için bilgisayar hesaplarındaki tüm değişiklikleri yakından takip etmenin kritik önem taşıdığını unutmayın.

İlgili makaleler