โมดูล Active Directory สำหรับ Windows PowerShell เป็นหนึ่งในเครื่องมือหลักในการดูแลโดเมน จัดการวัตถุใน Active Directory และรับข้อมูลที่แตกต่างกันเกี่ยวกับคอมพิวเตอร์ AD ผู้ใช้ กลุ่ม ฯลฯ ผู้ดูแลระบบ Windows ทุกคนต้องรู้วิธีใช้ทั้งสแน็ปอินกราฟิก AD (โดยปกติคือ ADUC – ผู้ใช้ไดเรกทอรีที่ใช้งานอยู่และคอมพิวเตอร์) และ cmdlet ของ RSAT-AD-PowerShell
โมดูลสำหรับดำเนินการดูแลระบบ Active Directory รายวัน ในบทความนี้ เราจะมาดูวิธีการติดตั้งโมดูล PowerShell Active Directory บน Windows ค้นพบฟีเจอร์พื้นฐานและ cmdlet ยอดนิยมซึ่งมีประโยชน์ในการจัดการและโต้ตอบกับ AD
การติดตั้ง Powershell Active Directory Module บน Windows Server
Active Directory สำหรับ Windows PowerShell มีอยู่แล้วในระบบปฏิบัติการ Windows Server (เริ่มจาก Windows Server 2008 R2) แต่ไม่ได้เปิดใช้งานตามค่าเริ่มต้น
ใน Windows Server 2016 คุณสามารถติดตั้ง AD สำหรับโมดูล PowerShell จาก ตัวจัดการเซิร์ฟเวอร์ (เพิ่มบทบาทและคุณลักษณะ -> คุณลักษณะ -> เครื่องมือการดูแลเซิร์ฟเวอร์ระยะไกล -> เครื่องมือการดูแลบทบาท -> เครื่องมือ AD DS และ AD LDS -> โมดูล Active Directory สำหรับ Windows PowerShell )
คุณยังสามารถติดตั้งโมดูลจากคอนโซล PowerShell โดยใช้คำสั่ง:
Install-WindowsFeature -Name "RSAT-AD-PowerShell" –IncludeAllSubFeature
คุณสามารถติดตั้ง RSAT-AD-PowerShell ไม่เพียงแต่ในตัวควบคุมโดเมนเท่านั้น เซิร์ฟเวอร์สมาชิกโดเมนหรือแม้แต่เวิร์กสเตชันจะทำ PowerShell Active Directory Module ได้รับการติดตั้งโดยอัตโนมัติเมื่อคุณปรับใช้ Active Directory Domain Services บทบาท (AD DS) (เมื่อโปรโมตเซิร์ฟเวอร์ไปยังตัวควบคุมโดเมน AD)
โมดูลกำลังโต้ตอบกับ AD ผ่าน Active Directory Web Service ที่ต้องติดตั้งบนตัวควบคุมโดเมนของคุณ (การสื่อสารจะดำเนินการผ่านพอร์ต TCP 9389 )
จะติดตั้ง PowerShell Active Directory Module บน Windows 10 ได้อย่างไร
คุณสามารถติดตั้ง RSAT-AD-PowerShell โมดูลไม่เพียงแต่บน Windows Server แต่ยังรวมถึงเวิร์กสเตชันของคุณด้วย โมดูลนี้เป็นส่วนหนึ่งของ RSAT (Remote Server Administration Tools) แพ็คเกจที่คุณสามารถดาวน์โหลดและติดตั้งได้ด้วยตนเองบน Windows 7, Windows 8.1 หลังจากการติดตั้ง RSAT คุณสามารถติดตั้งโมดูล Active Directory สำหรับ PowerShell จากแผงควบคุม (แผงควบคุม -> โปรแกรมและคุณลักษณะ -> เปิดหรือปิดคุณลักษณะของ Windows -> เครื่องมือการดูแลเซิร์ฟเวอร์ระยะไกล -> เครื่องมือการดูแลบทบาท -> AD DS และเครื่องมือแอลดีเอสโฆษณา)
ใน Windows 10 รุ่น 1809 หรือใหม่กว่า แพ็คเกจ RSAT จะรวมเข้ากับอิมเมจ Windows (เป็นฟีเจอร์แบบออนดีมานด์) ดังนั้นคุณจึงสามารถใช้คำสั่ง PowerShell นี้เพื่อติดตั้งโมดูล Active Directory:
Add-WindowsCapability –online –Name “Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0”
Active Directory PowerShell Cmdlets
มี cmdlet มากมายที่จะโต้ตอบกับ AD ในโมดูล Active Directory สำหรับ Windows PowerShell RSAT ใหม่แต่ละเวอร์ชันมี cmdlets มากกว่าเวอร์ชันก่อนหน้า ใน Windows Server 2016 มี 147 PowerShell cmdlets สำหรับ Active Directory
ก่อนใช้ cmdlets ของโมดูล Active Directory คุณต้องนำเข้าไปยังเซสชัน PowerShell ของคุณ (ใน Windows Server 2012 R2/ Windows 8.1 และใหม่กว่า โมดูลจะถูกนำเข้าโดยอัตโนมัติ)
Import-Module ActiveDirectory
$psSess = New-PSSession -ComputerName DC_or_Comp_with_ADPoSh_installed
Import-Module -PSsession $psSess -Name ActiveDirectory
คุณสามารถแสดงรายการ cmdlet ของ Active Directory ที่พร้อมใช้งานโดยใช้คำสั่ง:
Get-Command –module ActiveDirectory
จำนวน cmdlets ทั้งหมดในโมดูล AD:
Get-Command –module ActiveDirectory |measure-object|select count
cmdlet ของ RSAT-AD-PowerShell ส่วนใหญ่เริ่มต้นจาก Get-
, Set-
หรือ New-
คำนำหน้า
- รับ – class cmdlets ใช้เพื่อรับข้อมูลที่แตกต่างจาก Active Directory (Get-ADUser — คุณสมบัติผู้ใช้ Get-ADComputer – การตั้งค่าคอมพิวเตอร์ Get-ADGroupMember — สมาชิกกลุ่ม ฯลฯ ) ในการเรียกใช้ คุณไม่จำเป็นต้องเป็นผู้ดูแลโดเมน ผู้ใช้โดเมนทุกคนสามารถเรียกใช้คำสั่ง PowerShell เพื่อรับค่าของแอตทริบิวต์วัตถุ AD (ยกเว้นค่าที่เป็นความลับ เช่นในตัวอย่างด้วย LAPS)
- ตั้งค่า- ใช้ cmdlet ของคลาสเพื่อตั้งค่า (เปลี่ยน) การตั้งค่าวัตถุใน Active Directory ตัวอย่างเช่น คุณสามารถเปลี่ยนคุณสมบัติของผู้ใช้ (Set-ADUser ), การตั้งค่าคอมพิวเตอร์ (Set-ADComputer ) เพิ่มผู้ใช้ในกลุ่ม ฯลฯ ในการดำเนินการ บัญชีของคุณต้องมีสิทธิ์ในการแก้ไขคุณสมบัติของอ็อบเจ็กต์ (ดูบทความ How to Delegate Administrator Privileges in Active Directory);
- คำสั่งที่ขึ้นต้นด้วย ใหม่- ให้คุณสร้างวัตถุ AD (สร้างผู้ใช้ — New-ADUser , สร้างกลุ่ม — New-ADGroup );
- ลบ- cmdlets ใช้เพื่อลบวัตถุ AD
นี่คือวิธีที่คุณสามารถรับความช่วยเหลือเกี่ยวกับ cmdlet ใดๆ:
get-help Set-ADUser
คุณสามารถแสดงตัวอย่างการใช้ Active Directory cmdlet ได้ดังนี้:
(get-help New-ADComputer).examples
สะดวกในการใช้คำแนะนำป๊อปอัปเมื่อพิมพ์พารามิเตอร์ cmdlet ใน PowerShell ISE
การดูแลระบบ Active Directory ด้วยโมดูล RSAT-AD-PowerShell
มาดูงานทั่วไปบางอย่างของผู้ดูแลระบบที่คุณสามารถทำได้โดยใช้ Active Directory สำหรับ PowerShell cmdlets
คุณสามารถค้นหาตัวอย่างที่เป็นประโยชน์เกี่ยวกับวิธีการใช้ AD สำหรับ PowerShell cmdlets ได้จากเว็บไซต์ WOSHub ตามลิงค์เพื่อรับคำแนะนำโดยละเอียดผู้ใช้ AD ใหม่:การสร้างผู้ใช้ AD
ในการสร้างผู้ใช้ AD ใหม่ คุณสามารถใช้ New-ADUser cmdlet คุณสามารถสร้างผู้ใช้ด้วยคำสั่งต่อไปนี้:
New-ADUser -Name "Mila Beck" -GivenName "Mila" -Surname "Beck" -SamAccountName "mbeck" -UserPrincipalName "[email protected]" -Path "OU=Users,OU=Berlin,OU=DE,DC=woshub,DC=com" -AccountPassword(Read-Host -AsSecureString "Input User Password") -Enabled $true
สำหรับข้อมูลโดยละเอียดเกี่ยวกับ cmdlet ของ ADUser ใหม่ (รวมถึงตัวอย่างเกี่ยวกับวิธีสร้างบัญชีผู้ใช้โดเมนจำนวนมาก) ให้ดูบทความนี้
Get-ADComputer:รับคุณสมบัติของคอมพิวเตอร์
เมื่อต้องการแสดงข้อมูลเกี่ยวกับคุณสมบัติของคอมพิวเตอร์ใน OU เฉพาะ (ชื่อคอมพิวเตอร์และวันที่เข้าสู่ระบบครั้งล่าสุด) ให้ใช้ Get-ADComputer cmdlet:
Get-ADComputer -SearchBase ‘OU=CA,OU=USA,DC=woshub,DC=com’ -Filter * -Properties * | FT Name, LastLogonDate -Autosize
Add-AdGroupMember:เพิ่มผู้ใช้ AD ในกลุ่ม
หากต้องการเพิ่มผู้ใช้ในกลุ่มความปลอดภัยที่มีอยู่ในโดเมน AD ของคุณ ให้เรียกใช้คำสั่งนี้:
Add-AdGroupMember -Identity LondonSales -Members e.braun, l.wolf
แสดงรายการผู้ใช้ในกลุ่ม AD และส่งออกเป็นไฟล์ CSV:
Get-ADGroupMember LondonSales -recursive| ft samaccountname| Out-File c:\ps\export_ad_users.csv
เรียนรู้เพิ่มเติมเกี่ยวกับการจัดการกลุ่มโฆษณาจาก PowerShell
Set-ADAccountPassword:รีเซ็ตรหัสผ่านผู้ใช้ใน AD
ในการรีเซ็ตรหัสผ่านผู้ใช้ AD จาก PowerShell ให้เรียกใช้คำสั่งต่อไปนี้:
Set-ADAccountPassword m.lorenz -Reset -NewPassword (ConvertTo-SecureString -AsPlainText “Ne8Pa$$0rd1” -Force -Verbose) –PassThru
วิธีการปลดล็อก เปิดใช้งาน และปิดใช้งานบัญชี AD?
วิธีปิดการใช้งานบัญชีผู้ใช้ AD:
Disable-ADAccount m.lorenz
วิธีเปิดใช้งานบัญชี:
Enable-ADAccount m.lorenz
วิธีปลดล็อกบัญชีหลังจากถูกบล็อกโดยนโยบายรหัสผ่านของโดเมน:
Unlock-ADAccount m.lorenz
Search-ADAccount:วิธีค้นหาวัตถุที่ไม่ใช้งานและปิดการใช้งาน
หากต้องการค้นหาและปิดใช้งานคอมพิวเตอร์ทุกเครื่องในโดเมน AD ที่ไม่ได้เข้าสู่ระบบเกิน 90 วัน ให้ใช้ Search-ADAccount cmdlet:
$timespan = New-Timespan –Days 90
Search-ADAccount -AccountInactive -ComputersOnly –TimeSpan $timespan | Disable-ADAccount
New-ADOrganizationalUnit:สร้างหน่วยขององค์กรใน AD
หากต้องการสร้างโครงสร้างหน่วยองค์กรทั่วไปใน AD อย่างรวดเร็ว คุณสามารถใช้สคริปต์ PowerShell สมมติว่าคุณต้องการสร้าง OU หลายรายการโดยมีสถานะเป็นชื่อ และสร้างคอนเทนเนอร์อ็อบเจ็กต์ทั่วไปในนั้น การสร้างโครงสร้าง AD นี้ด้วยตนเองผ่านสแน็ปอินกราฟิก ADUC ใช้เวลานานมาก โมดูล AD สำหรับ PowerShell อนุญาตให้ทำในไม่กี่วินาที (ยกเว้นเวลาในการเขียนสคริปต์):
$fqdn = Get-ADDomain
$fulldomain = $fqdn.DNSRoot
$domain = $fulldomain.split(".")
$Dom = $domain[0]
$Ext = $domain[1]
$Sites = ("Nevada","Texas","California","Florida")
$Services = ("Users","Admins","Computers","Servers","Contacts","Service Accounts")
$FirstOU ="USA"
New-ADOrganizationalUnit -Name $FirstOU -Description $FirstOU -Path "DC=$Dom,DC=$EXT" -ProtectedFromAccidentalDeletion $false
foreach ($S in $Sites)
{
New-ADOrganizationalUnit -Name $S -Description "$S" -Path "OU=$FirstOU,DC=$Dom,DC=$EXT" -ProtectedFromAccidentalDeletion $false
foreach ($Serv in $Services)
{
New-ADOrganizationalUnit -Name $Serv -Description "$S $Serv" -Path "OU=$S,OU=$FirstOU,DC=$Dom,DC=$EXT" -ProtectedFromAccidentalDeletion $false
}
}
หลังจากเรียกใช้สคริปต์ โครงสร้าง OU ต่อไปนี้จะปรากฏใน Active Directory
หากต้องการย้ายวัตถุระหว่างคอนเทนเนอร์ AD คุณสามารถใช้ Move-ADObject cmdlet:
$TargetOU = "OU=Sales,OU=Computers,DC=woshub,DC=com"
Get-ADComputer -Filter 'Name -like "SalesPC*"' | Move-ADObject -TargetPath $TargetOU
Get-ADReplicationFailure:ตรวจสอบความล้มเหลวในการจำลอง AD
การใช้ Get-ADReplicationFailure cmdlet คุณสามารถตรวจสอบสถานะของการจำลองแบบระหว่างตัวควบคุมโดเมน AD:
Get-ADReplicationFailure -Target NY-DC01,NY-DC02
หากต้องการรับข้อมูลเกี่ยวกับ DC ทั้งหมดในโดเมน ให้ใช้ Get-AdDomainController cmdlet:
Get-ADDomainController –filter * | select hostname,IPv4Address,IsGlobalCatalog,IsReadOnly,OperatingSystem | format-table –auto
ดังนั้นเราจึงได้พิจารณาคุณสมบัติพื้นฐานของโมดูล Active Directory PowerShell เพื่อจัดการโดเมน AD เราหวังว่าจะสนับสนุนให้คุณสำรวจคุณลักษณะอื่นๆ ของโมดูลเพิ่มเติมและทำให้งานการจัดการ AD เป็นไปโดยอัตโนมัติ