ค้นหาเว็บไซต์

วิธีจัดการคอมพิวเตอร์ใน Active Directory โดยใช้ PowerShell


ก่อนที่ผู้ใช้สามารถเข้าสู่ระบบคอมพิวเตอร์และเข้าถึงเครือข่ายและทรัพยากรตามโดเมน คอมพิวเตอร์นั้นจะต้องเป็นสมาชิกของสภาพแวดล้อม Active Directory ในคู่มือนี้ คุณจะพบวิธีทำให้งานประจำวันที่เกี่ยวข้องกับบัญชีคอมพิวเตอร์เป็นแบบอัตโนมัติ เช่น วิธีสร้าง เปลี่ยนชื่อ และลบบัญชีอย่างง่ายดาย

คุณจะได้เรียนรู้วิธีใช้ PowerShell เพื่อทำงานการจัดการบัญชีคอมพิวเตอร์ต่อไปนี้:

  • เข้าร่วมคอมพิวเตอร์กับโดเมน

    • เข้าร่วมคอมพิวเตอร์หลายเครื่องในโดเมน
  • ลบคอมพิวเตอร์ออกจากโดเมนด้วย PowerShell
  • สร้างวัตถุคอมพิวเตอร์ใน AD

    • สร้างบัญชีคอมพิวเตอร์จากไฟล์ CSV
  • ลบคอมพิวเตอร์ออกจาก AD

    • ลบบัญชีคอมพิวเตอร์โดยใช้รายการ
    • ลบบัญชีคอมพิวเตอร์เก่าใน Active Directory ด้วย PowerShell
  • เปลี่ยนชื่อคอมพิวเตอร์

    • เปลี่ยนชื่อคอมพิวเตอร์และเข้าร่วมกับโดเมน
  • ปิดการใช้งานบัญชีคอมพิวเตอร์ AD

    • ปิดการใช้งานบัญชีคอมพิวเตอร์โดยใช้รายการ
  • รีเซ็ตบัญชีคอมพิวเตอร์ AD

PowerShell ISE เป็นเครื่องมือที่ดีที่สุดสำหรับการทำงานกับสคริปต์ PowerShell เริ่มเครื่องมือ PowerShell ISE ด้วยสิทธิ์ของผู้ดูแลระบบโดยกด “Windows+R” และป้อน “runas /profile /user:Administrator PowerShell_ISE” ในหน้าต่าง Run (หรืออีกทางหนึ่ง คุณสามารถคลิกขวาที่ไอคอน PowerShell ISE แล้วเลือกตัวเลือก “Run as administrator”) พิมพ์รหัสผ่านของผู้ดูแลระบบเมื่อได้รับแจ้ง

ก่อนที่คุณจะสามารถทำงานกับ AD และออบเจ็กต์ได้ คุณต้องนำเข้าโมดูล Active Directory สำหรับ Windows PowerShell ใน Microsoft Windows Server 2008 R2 คุณต้องเปิดใช้งานโมดูลนี้โดยการรันคำสั่งต่อไปนี้:

Import-Module ActiveDirectory

ใน Microsoft Windows Server 2012 และใหม่กว่า โมดูลนี้จะเปิดใช้งานตามค่าเริ่มต้น

เข้าร่วมคอมพิวเตอร์กับโดเมน

งานที่พบบ่อยที่สุดคือการเชื่อมต่อคอมพิวเตอร์เข้ากับตัวควบคุมโดเมน หากต้องการเข้าร่วมพีซีกับโดเมน Active Directory ให้เรียกใช้สคริปต์ PowerShell ต่อไปนี้ในเครื่อง:

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

คอมพิวเตอร์จะรีสตาร์ทแล้วเข้าร่วมโดเมน มันจะถูกเพิ่มลงในคอนเทนเนอร์เริ่มต้น

หากต้องการรวมคอมพิวเตอร์เข้ากับ DC จากระยะไกล คุณต้องปรับปรุงสคริปต์นี้ด้วยวิธีนี้:

$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 และพารามิเตอร์ -LocalCredential ใช้ในการตรวจสอบสิทธิ์คอมพิวเตอร์กับโดเมน โปรดทราบว่าในการใช้วิธีนี้ คุณต้องปิดใช้งานไฟร์วอลล์บนเครื่องคอมพิวเตอร์

เข้าร่วมคอมพิวเตอร์หลายเครื่องในโดเมน

คุณสามารถเพิ่มคอมพิวเตอร์ได้มากกว่าหนึ่งเครื่องในโดเมนโดยระบุในบรรทัดคำสั่งเป็นรายการที่คั่นด้วยเครื่องหมายจุลภาคหรือนำเข้าชื่อจากไฟล์ข้อความ

ต่อไปนี้เป็นวิธีระบุคอมพิวเตอร์ในรายการที่คั่นด้วยเครื่องหมายจุลภาค:

$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

ต่อไปนี้คือวิธีใช้ไฟล์ข้อความพร้อมรายชื่อคอมพิวเตอร์ที่ควรเข้าร่วม:

$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

หากต้องการลบคอมพิวเตอร์ออกจากโดเมนจากระยะไกล ให้ใช้ Remove-Computer cmdlet ที่นี่ เรากำลังลบคอมพิวเตอร์ออกจากโดเมน ดังนั้นจึงไม่จำเป็นต้องใช้ข้อมูลประจำตัวในเครื่อง และเราสามารถข้ามพารามิเตอร์ ?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

หากต้องการลบคอมพิวเตอร์หลายเครื่องโดยใช้รายการในไฟล์ TXT ให้ใช้สคริปต์ด้านบนเพื่อรวมคอมพิวเตอร์เข้ากับ DC โดยแทนที่ Add-Computer cmdlet ด้วย Remove-Computer โปรดทราบว่าคุณยังคงต้องใช้ข้อมูลรับรองผู้ดูแลระบบโดเมนเพื่อดำเนินการยกเลิกการเข้าร่วมนี้ให้เสร็จสิ้น

สร้างวัตถุคอมพิวเตอร์ใน AD

หากต้องการสร้างวัตถุคอมพิวเตอร์ ให้ใช้ New-ADComputer cmdlet ตัวอย่างเช่น ดำเนินการพารามิเตอร์ cmdlet ต่อไปนี้เพื่อสร้างวัตถุคอมพิวเตอร์ที่มี "WKS932" เป็นชื่อและค่าเส้นทาง LDAP เริ่มต้น:

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

สร้างบัญชีคอมพิวเตอร์จากไฟล์ CSV

หากคุณมีรายการคอมพิวเตอร์ที่ควรนำเข้าไปยัง Active Directory ให้บันทึกรายการเป็นไฟล์ CSV โดยมีหัวข้อ “คอมพิวเตอร์” และรายชื่อคอมพิวเตอร์ในคอลัมน์ด้านล่าง เรียกใช้สคริปต์ PowerShell ต่อไปนี้บนตัวควบคุมโดเมนของคุณเพื่อเพิ่มคอมพิวเตอร์จากไฟล์ CSV ตรวจสอบให้แน่ใจว่าคุณได้ตั้งค่าตัวแปร “เส้นทาง” และ “ไฟล์” อย่างถูกต้อง:

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

ลบคอมพิวเตอร์ออกจาก AD

หากต้องการลบบัญชีคอมพิวเตอร์ออกจาก AD ให้ใช้ Remove-ADObject cmdlet พารามิเตอร์ -Identity ระบุว่าคอมพิวเตอร์ Active Directory เครื่องใดที่จะลบ คุณสามารถระบุคอมพิวเตอร์ด้วยชื่อเฉพาะ, GUID, ตัวระบุความปลอดภัย (SID) หรือชื่อบัญชี Security Accounts Manager (SAM)

Remove-ADObject -Identity "WKS932"

คุณจะได้รับแจ้งให้ยืนยันการลบ

ลบบัญชีคอมพิวเตอร์โดยใช้รายการ

หากคุณมีไฟล์ข้อความที่มีรายชื่อคอมพิวเตอร์เก่า คุณสามารถปรับปรุงงานการลบออกได้โดยใช้ PowerShell สคริปต์ต่อไปนี้จะอ่านชื่อคอมพิวเตอร์จากไฟล์ TXT และลบบัญชีที่เกี่ยวข้องผ่านสายคำสั่งหรือไปป์ไลน์:

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

ลบบัญชีคอมพิวเตอร์เก่าออกจาก Active Directory ด้วย PowerShell

บัญชีเก่าใน Active Directory อาจถูกบุกรุก ซึ่งนำไปสู่เหตุการณ์ด้านความปลอดภัย ดังนั้นจึงจำเป็นอย่างยิ่งที่จะต้องจับตาดูบัญชีเหล่านั้น สคริปต์ PowerShell นี้จะสอบถาม Active Directory และส่งคืนคอมพิวเตอร์ทั้งหมดที่ไม่ได้เข้าสู่ระบบในช่วง 30 วันที่ผ่านมา คุณสามารถเปลี่ยนค่าเริ่มต้นนี้ในสคริปต์ได้อย่างง่ายดาย นอกจากนี้ยังจะลบบัญชีเหล่านั้นเพื่อให้โฆษณาของคุณสะอาด

$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

มีคอมพิวเตอร์เครื่องหนึ่ง FS1 ที่ไม่ได้เข้าสู่ระบบเป็นเวลานานกว่า 30 วัน ระบบจะแจ้งให้ยืนยันก่อนลบออกจากโดเมน:

หากคุณต้องการปิดการใช้งาน แทนที่จะลบ บัญชีคอมพิวเตอร์ที่ไม่ได้ใช้งาน ให้แทนที่ Remove-ADComputer cmdlet ด้วย Set-ADComputer และ -Enabled $false พารามิเตอร์และค่า

เปลี่ยนชื่อคอมพิวเตอร์

หากต้องการเปลี่ยนชื่อคอมพิวเตอร์ ให้ใช้ เปลี่ยนชื่อ-คอมพิวเตอร์ cmdlet โปรดทราบว่าคอมพิวเตอร์จะต้องออนไลน์และเชื่อมต่อกับ Active Directory

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

หากคุณต้องการเรียกใช้สคริปต์นี้ในเครื่อง สคริปต์จะมีลักษณะดังนี้:

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

เปลี่ยนชื่อคอมพิวเตอร์และเข้าร่วมกับโดเมน

คุณสามารถปรับปรุงสคริปต์การเปลี่ยนชื่อได้โดยการรวมคอมพิวเตอร์เข้ากับโดเมนและวางลงใน OU ที่ระบุพร้อมกัน สคริปต์ควรทำงานบนเครื่องเป้าหมาย ไม่ใช่บนตัวควบคุมโดเมน

$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

สคริปต์จะแจ้งให้ระบุข้อมูลประจำตัวของบัญชีที่ได้รับอนุญาตให้เข้าร่วมคอมพิวเตอร์กับโดเมน จากนั้นคอมพิวเตอร์จะถูกเปลี่ยนชื่อ รีสตาร์ท และเข้าร่วมกับโดเมน

ปิดการใช้งานบัญชีคอมพิวเตอร์ AD

ใช้ Disable-ADAccount cmdlet เพื่อปิดใช้งานบัญชีผู้ใช้ Active Directory คอมพิวเตอร์ และบริการ หากคุณระบุชื่อบัญชีคอมพิวเตอร์ อย่าลืมใส่เครื่องหมายดอลลาร์ ($) ต่อท้ายชื่อ มิฉะนั้น คุณจะได้รับข้อผิดพลาดหลังจากเรียกใช้สคริปต์

Disable-ADAccount -Identity fs1$

ปิดการใช้งานบัญชีคอมพิวเตอร์โดยใช้รายการ

คุณยังสามารถปิดใช้งานบัญชีคอมพิวเตอร์จำนวนมากได้โดยใช้รายการในไฟล์ข้อความ:

$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

เช่นเดียวกับบัญชีผู้ใช้ บัญชีคอมพิวเตอร์โต้ตอบกับ Active Directory โดยใช้รหัสผ่าน แต่สำหรับบัญชีคอมพิวเตอร์ การเปลี่ยนรหัสผ่านจะเริ่มทุกๆ 30 วันตามค่าเริ่มต้น และรหัสผ่านจะได้รับการยกเว้นจากนโยบายรหัสผ่านของโดเมน การเปลี่ยนแปลงรหัสผ่านขับเคลื่อนโดยไคลเอนต์ (คอมพิวเตอร์) ไม่ใช่ AD

ข้อมูลรับรองคอมพิวเตอร์มักจะไม่รู้จักกับผู้ใช้ เนื่องจากคอมพิวเตอร์ตั้งค่าแบบสุ่ม แต่คุณสามารถตั้งรหัสผ่านของคุณเองได้ นี่คือสคริปต์ PowerShell สำหรับการทำเช่นนั้น:

$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

บทสรุป

ตอนนี้ คุณได้เรียนรู้วิธีจัดการบัญชีคอมพิวเตอร์ Active Directory ด้วย PowerShell แล้ว คุณสามารถปรับปรุงสคริปต์เหล่านี้ทั้งหมดได้ด้วยตัวเองเพื่อให้เหมาะสมกับวัตถุประสงค์ของคุณ

โปรดจำไว้ว่าการติดตามการเปลี่ยนแปลงทั้งหมดที่เกิดขึ้นกับบัญชีคอมพิวเตอร์อย่างใกล้ชิดเป็นสิ่งสำคัญ เพื่อให้คุณมองเห็นการแก้ไขที่ไม่ต้องการได้อย่างรวดเร็วและตอบสนองได้อย่างเหมาะสม

บทความที่เกี่ยวข้อง