วิธีเพิ่ม ลบ และเปลี่ยนผู้ใช้และกลุ่มภายในด้วย PowerShell
เพื่อช่วยให้ผู้ดูแลระบบจัดการผู้ใช้และกลุ่มภายในด้วย PowerShell ได้ง่ายขึ้น Microsoft ได้จัดเตรียมคอลเลกชัน cmdlet ชื่อ Microsoft.PowerShell.LocalAccounts ก่อนหน้านี้ คุณต้องดาวน์โหลดและนำเข้าลงใน PowerShell โดยตรง และติดตั้ง Windows Management Framework 5.1 ด้วย ในระบบปฏิบัติการ Windows Server 2016 และ Windows 10 คอลเลกชัน cmdlet จะรวมเป็นโมดูลมาตรฐาน
มี 15 cmdlets ในโมดูล LocalAccounts คุณสามารถดูรายการทั้งหมดได้โดยการรันคำสั่งต่อไปนี้:
Get-Command -Module Microsoft.PowerShell.LocalAccounts- Add-LocalGroupMember — เพิ่มผู้ใช้ในกลุ่มท้องถิ่น
- ปิดใช้งาน-LocalUser — ปิดใช้งานบัญชีผู้ใช้ภายใน
- เปิดใช้งาน-LocalUser — เปิดใช้งานบัญชีผู้ใช้ภายใน
- Get-LocalGroup — ดูการตั้งค่ากลุ่มท้องถิ่น
- Get-LocalGroupMember — ดูรายชื่อสมาชิกกลุ่มท้องถิ่นทั้งหมด
- Get-LocalUser — ดูการตั้งค่าของบัญชีผู้ใช้ภายในเครื่อง
- New-LocalGroup — สร้างกลุ่มท้องถิ่นใหม่
- New-LocalUser — สร้างบัญชีผู้ใช้ภายในเครื่องใหม่
- Remove-LocalGroup — ลบกลุ่มท้องถิ่น
- Remove-LocalGroupMember — ลบสมาชิกออกจากกลุ่มท้องถิ่น
- Remove-LocalUser — ลบบัญชีผู้ใช้ในเครื่อง
- เปลี่ยนชื่อ-LocalGroup — เปลี่ยนชื่อกลุ่มท้องถิ่น
- เปลี่ยนชื่อ-LocalUser — เปลี่ยนชื่อบัญชีผู้ใช้ภายในเครื่อง
- Set-LocalGroup — เปลี่ยนการตั้งค่าของกลุ่มท้องถิ่น
- Set-LocalUser — เปลี่ยนการตั้งค่าบัญชีของผู้ใช้ภายใน
การจัดการบัญชีผู้ใช้ภายในด้วย PowerShell
มาดูกันว่าคุณสามารถใช้คำสั่งเหล่านี้เพื่อทำงานทั่วไปที่เกี่ยวข้องกับการจัดการผู้ใช้ในเครื่องบนคอมพิวเตอร์ Windows 10 ได้อย่างไร
รายชื่อผู้ใช้และคุณสมบัติของพวกเขาด้วย PowerShell
ขั้นแรก มาดูรายการบัญชีผู้ใช้ภายในเครื่องทั้งหมดกันก่อน เราจะใช้ Get-LocalUser cmdlet:
Get-LocalUser
อย่างที่คุณเห็น เรามีบัญชีผู้ใช้ภายในสองบัญชี และบัญชีหนึ่งถูกปิดใช้งาน (บัญชีที่มี "เท็จ" ในคอลัมน์ "เปิดใช้งาน")
หากคุณต้องการส่งออกคุณสมบัติและค่าทั้งหมดสำหรับบัญชีผู้ใช้ภายใน คุณต้องใช้ Get-LocalUser cmdlet พร้อมด้วยพารามิเตอร์ต่อไปนี้:
Get-LocalUser -Name ‘guest’ | Select-Object *หากต้องการรับค่าของแอตทริบิวต์บัญชีผู้ใช้ภายในเครื่อง ให้พิมพ์ชื่อหลังพารามิเตอร์ Select-Object ในตัวอย่างนี้ เราต้องการทราบค่าของแอตทริบิวต์ PasswordLastSet สำหรับบัญชีที่มีชื่อผู้ใช้ “administrator”:
Get-LocalUser -Name ‘administrator’ | Select-Object PasswordLastSetการสร้างผู้ใช้ท้องถิ่นด้วย PowerShell
มาสร้างผู้ใช้ใหม่ด้วยความช่วยเหลือของ New-LocalUser cmdlet cmdlet นี้สามารถสร้างบัญชีผู้ใช้ประเภทต่อไปนี้:
- บัญชีผู้ใช้ภายใน Windows
- บัญชีไมโครซอฟต์
- บัญชี Azure Active Directory
เมื่อสร้างบัญชีผู้ใช้ภายในเครื่อง ห้ามพิมพ์รหัสผ่านเป็นข้อความธรรมดา แปลงเป็นสตริงที่ปลอดภัยเสมอโดยใช้พารามิเตอร์ ?AsSecureString หรือ ?ConvertTo-SecureString นี่คือคำสั่งสำหรับการสร้างบัญชีผู้ใช้ภายในเครื่องใหม่:
$UserPassword = Read-Host –AsSecureString
New-LocalUser "Netwrix" -Password $UserPassword -FullName "Netwrix" -Description "CompleteVisibility"ในสภาพแวดล้อม Windows 10 ผู้ใช้สามารถอนุญาตภายใต้บัญชี Microsoft ของตนได้ ดังนั้นเราจึงสามารถสร้างบัญชีผู้ใช้ภายในเครื่องใหม่ที่เชื่อมโยงกับข้อมูลประจำตัวของบัญชี Microsoft ใช้สคริปต์ต่อไปนี้เพื่อทำสิ่งนี้ (โปรดทราบว่าคุณไม่จำเป็นต้องพิมพ์รหัสผ่านเนื่องจากรหัสผ่านถูกจัดเก็บไว้ในระบบคลาวด์ของ Microsoft):
New-LocalUser -Name "MicrosoftAccountSomeAccount@outlook.com" -Description "Microsoft Account"ในการสร้างบัญชีท้องถิ่นที่เชื่อมโยงกับ Azure AD ของคุณ ให้ใช้คำสั่งต่อไปนี้:
New-LocalUser -Name "AzureADNetwrix@enterprise.com" -Description "Azure AD Account"การเปลี่ยนรหัสผ่านของผู้ใช้ภายในเครื่องหรือคุณสมบัติรหัสผ่านด้วย PowerShell
หากต้องการเปลี่ยนรหัสผ่านของบัญชีผู้ใช้ภายในเครื่อง เราจำเป็นต้องใช้ Set-LocalUser cmdlet มาเปลี่ยนรหัสผ่านผู้ดูแลระบบท้องถิ่น:
$UserPassword = Read-Host –AsSecureString
Set-LocalUser -Name Administrator -Password $UserPassword –Verboseหากต้องการตั้งค่า รหัสผ่านไม่มีวันหมดอายุ ให้กับผู้ใช้ภายในเครื่องด้วย PowerShell เราจำเป็นต้องเรียกใช้สคริปต์ต่อไปนี้:
Set-LocalUser -Name Netwrix –PasswordNeverExpires $Falseการลบบัญชีผู้ใช้ภายในเครื่องด้วย PowerShell
หากต้องการลบบัญชีผู้ใช้ภายใน คุณต้องใช้ cmdlet Remove-LocalUser:
Remove-LocalUser -Name Netwrix -Verboseการจัดการกลุ่มท้องถิ่นด้วย PowerShell
ตอนนี้เรามาเปลี่ยนความสนใจของเราจากผู้ใช้ในพื้นที่ไปยังกลุ่มท้องถิ่น
การตรวจสอบกลุ่มท้องถิ่นด้วย PowerShell
ขั้นแรก มาดูรายชื่อกลุ่มทั้งหมดบน Windows Server ของเรา:
Get-LocalGroupการเพิ่มกลุ่มท้องถิ่นด้วย PowerShell
ตอนนี้มาสร้างกลุ่มใหม่:
New-LocalGroup -Name 'Netwrix Users' -Description 'Netwrix Users Group'การเพิ่มผู้ใช้ในกลุ่มท้องถิ่นด้วย PowerShell
หากต้องการเพิ่มผู้ใช้ (หรือกลุ่ม) ลงในกลุ่มท้องถิ่น เราจำเป็นต้องใช้ Add-LocalGroupMember cmdlet ตัวอย่างเช่น สมมติว่าเราต้องการเพิ่มผู้ใช้ในกลุ่มผู้ดูแลระบบท้องถิ่น แต่เราไม่ต้องการเพิ่มทีละคน มาเพิ่มกลุ่มให้กับผู้ดูแลระบบท้องถิ่น ได้แก่ กลุ่ม "ผู้ใช้ Netwrix":
Add-LocalGroupMember -Group 'Administrators' -Member ('Netwrix',’Netwrix Users') –Verboseหากคอมพิวเตอร์หรือเซิร์ฟเวอร์ของคุณเป็นส่วนหนึ่งของโดเมน คุณสามารถเพิ่มบัญชีโดเมนและกลุ่มลงในกลุ่มท้องถิ่นเพื่อให้สิทธิ์พิเศษในท้องถิ่นบนเซิร์ฟเวอร์แก่ผู้ใช้เหล่านั้น เพิ่มโดยใช้รูปแบบ “DomainNameUser” (สำหรับผู้ใช้) หรือ “DomainNameDomain Group” (สำหรับกลุ่ม)
การดูความเป็นสมาชิกของกลุ่มใดกลุ่มหนึ่งด้วย PowerShell
ตอนนี้เรามาแสดงรายการสมาชิกทั้งหมดของกลุ่มท้องถิ่นเฉพาะ:
Get-LocalGroupMember -Group 'Netwrix Users'
อย่างที่คุณเห็นคำสั่งจะแสดงบัญชีและกลุ่มภายในเครื่องทั้งหมดที่เป็นสมาชิกของกลุ่ม "ผู้ใช้ Netwrix" แม้ว่าจะแสดงเฉพาะบัญชีและกลุ่มภายในเครื่องที่นี่ แต่คำสั่งนี้จะแสดงผู้ใช้และกลุ่มโดเมน รวมถึงบัญชี Microsoft และ Azure AD ทั้งหมด
การดูกลุ่มทั้งหมดที่ผู้ใช้เป็นสมาชิกของการใช้ PowerShell
หากต้องการแสดงรายการกลุ่มทั้งหมดที่ผู้ใช้รายหนึ่งเป็นสมาชิก เราจะเรียกใช้สคริปต์ต่อไปนี้:
foreach ($LocalGroup in Get-LocalGroup)
{
if (Get-LocalGroupMember $LocalGroup -Member 'Guest' –ErrorAction SilentlyContinue)
{
$LocalGroup.Name
}
}การลบกลุ่มท้องถิ่นด้วย PowerShell
หากต้องการลบบัญชีผู้ใช้ภายในออกจากกลุ่ม คุณต้องใช้ cmdlet Remove-LocalGroupMember:
Remove-LocalGroupMember -Group 'Netwrix Users' –Member 'guest'การจัดการผู้ใช้และกลุ่มภายในจากระยะไกลด้วย PowerShell
หากคุณต้องการจัดการบัญชีผู้ใช้และกลุ่มภายในจากระยะไกล คุณต้องเชื่อมต่อกับเวิร์กสเตชันระยะไกลผ่าน WinRM โดยใช้ Intake-Command และ Enter-PSSession cmdlets ตัวอย่างเช่น หากเราต้องการแสดงผลการเป็นสมาชิกของกลุ่มผู้ดูแลระบบภายในเครื่องจากระยะไกลบนคอมพิวเตอร์หลายเครื่อง เราจำเป็นต้องเรียกใช้สคริปต์ต่อไปนี้:
$search = new-pssession -computer pcname1,pcname2,pcname3
invoke-command -scriptblock {Get-LocalGroupMember -Group 'Administrators'} -session $search -hidecomputername | select * -exclude RunspaceID | out-gridview -title "LocalAdmins"อย่างที่คุณเห็น การจัดการกลุ่มท้องถิ่นและผู้ใช้ผ่าน PowerShell ค่อนข้างง่าย แต่เพื่อให้มั่นใจในความปลอดภัย การปฏิบัติตามข้อกำหนด และความต่อเนื่องทางธุรกิจ การตรวจสอบการเปลี่ยนแปลงเหล่านี้ทั้งหมดจึงเป็นสิ่งสำคัญ หากต้องการเรียนรู้เกี่ยวกับการกำหนดค่าการตรวจสอบดั้งเดิม โปรดดูคู่มืออ้างอิงฉบับย่อการตรวจสอบ Windows Server






