Computer >> Máy Tính >  >> Hệ thống >> máy chủ Windows

Quản lý người dùng và nhóm cục bộ bằng PowerShell

Gần đây Microsoft đã thêm một mô-đun PowerShell tiêu chuẩn để quản lý người dùng cục bộ Windows và các nhóm được gọi là Microsoft.PowerShell.LocalAccounts . Trước đó, bạn phải tải xuống và nhập mô-đun này vào PowerShell theo cách thủ công. Giờ đây, mô-đun LocalAccounts có sẵn theo mặc định trong Windows Server 2016 và Windows 10 như một phần của PowerShell 5.1. Để sử dụng nó trong các phiên bản Windows trước đó, bạn phải cài đặt Windows Management Framework 5.1.

Mô-đun PowerShell LocalAccounts

Có 15 lệnh ghép ngắn trong mô-đun LocalAccounts. Bạn có thể hiển thị danh sách đầy đủ các lệnh ghép ngắn của mô-đun như sau:

Get-Command -Module Microsoft.PowerShell.LocalAccounts

Quản lý người dùng và nhóm cục bộ bằng PowerShell

  1. Add-LocalGroupMember - thêm người dùng vào một nhóm cục bộ;
  2. Disable-LocalUser - vô hiệu hóa tài khoản người dùng cục bộ;
  3. Enable-LocalUser - kích hoạt (mở khóa) tài khoản;
  4. Get-LocalGroup - nhận thông tin về một nhóm địa phương;
  5. Get-LocalGroupMember - hiển thị danh sách người dùng trong một nhóm cục bộ;
  6. Get-LocalUser - hiển thị thông tin về người dùng cục bộ;
  7. New-LocalGroup - tạo một nhóm địa phương mới;
  8. New-LocalUser - tạo người dùng cục bộ;
  9. Remove-LocalGroup - xóa một nhóm cục bộ;
  10. Remove-LocalGroupMember - xóa một thành viên khỏi một nhóm cục bộ;
  11. Remove-LocalUser - xóa người dùng cục bộ;
  12. Rename-LocalGroup - đổi tên một nhóm cục bộ;
  13. Rename-LocalUser - đổi tên người dùng;
  14. Set-LocalGroup - sửa đổi cài đặt nhóm;
  15. Set-LocalUser - sửa đổi cài đặt người dùng.

Hãy xem xét một số tác vụ điển hình để quản lý người dùng hoặc nhóm cục bộ bằng cách sử dụng lệnh ghép ngắn PowerShell của mô-đun LocalAccounts trên máy tính chạy Windows 10.

Làm cách nào để Quản lý Người dùng Cục bộ Windows bằng PowerShell?

Hiển thị danh sách người dùng cục bộ hiện có trong Windows:

Get-LocalUser

Quản lý người dùng và nhóm cục bộ bằng PowerShell

Như bạn có thể thấy, có 6 tài khoản người dùng cục bộ trên máy tính và 4 trong số đó đã bị vô hiệu hóa (Đã bật =Sai).

Để hiển thị tất cả các thuộc tính của tài khoản cục bộ (tương tự như lệnh ghép ngắn Get-ADUser được sử dụng để hiển thị thông tin về người dùng miền AD), hãy chạy lệnh sau:

Get-LocalUser -Name root | Select-Object *

AccountExpires :
Description :
Enabled : True
FullName :
PasswordChangeableDate : 3/12/2019 10:14:29 PM
PasswordExpires :
UserMayChangePassword : True
PasswordRequired : False
PasswordLastSet : 3/11/2019 10:14:29 PM
LastLogon : 3/11/2019 4:18:17 PM
Name : root
SID : S-1-5-21-2605456602-2293283241-3832290805-1001
PrincipalSource : Local
ObjectClass : User

Để nhận thuộc tính người dùng cụ thể, chẳng hạn như ngày thay đổi mật khẩu cuối cùng, hãy chạy lệnh sau:

Get-LocalUser -Name root | Select-Object PasswordLastSet

Quản lý người dùng và nhóm cục bộ bằng PowerShell

Hãy tạo một người dùng cục bộ mới bằng lệnh ghép ngắn New-LocalUser. Lệnh ghép ngắn này cho phép bạn tạo các loại tài khoản sau:

  • Tài khoản cục bộ của Windows;
  • Tài khoản Microsoft;
  • Tài khoản Azure AD.

Khi tạo tài khoản người dùng bằng lệnh ghép ngắn New-LocalUser, bạn không thể chỉ định mật khẩu người dùng ở dạng văn bản thuần túy làm đối số Mật khẩu. Bạn phải yêu cầu mật khẩu một cách tương tác và chuyển đổi nó thành chuỗi an toàn trước:

$UserPassword = Read-Host –AsSecureString

Hoặc chỉ định mật khẩu trực tiếp trong bảng điều khiển PoSh:

$UserPassword = ConvertTo-SecureString "H1PH0Ppa$$" -AsPlainText -Force
New-LocalUser John -Password $UserPassword -FullName "Johh Lennon" -Description "Local Account for Remote Access"

Để tạo người dùng trong miền AD, hãy sử dụng lệnh ghép ngắn New-ADUser.

Để thay đổi mật khẩu của người dùng, hãy sử dụng lệnh ghép ngắn LocalUser (chúng tôi cho rằng bạn đã chuyển đổi mật khẩu mới thành SecureString):

Set-LocalUser -Name john -Password $UserPassword –Verbose

Quản lý người dùng và nhóm cục bộ bằng PowerShell

Để đặt cờ “Mật khẩu không bao giờ hết hạn”, hãy chạy lệnh sau:

Set-LocalUser -Name john –PasswordNeverExpires $False

Như bạn có thể thấy, bạn không cần phải chuyển đổi giá trị UserAccountControl như khi quản lý thuộc tính đối tượng người dùng AD.

Như bạn đã nhớ, bạn có thể đăng nhập Windows 10 bằng tài khoản Microsoft của mình. Nếu bạn phải tạo thông tin đăng nhập người dùng mới vào tài khoản Microsoft, hãy chạy lệnh này. (Xin lưu ý rằng bạn không cần chỉ định mật khẩu tài khoản vì nó được lưu trữ trong Microsoft.)

New-LocalUser -Name "MicrosoftAccount\woshub@outlook.com" -Description "This is a Microsoft account"

Để tạo tài khoản cục bộ liên quan đến tài khoản Azure AD của bạn (ví dụ:bạn đang sử dụng Office 365), hãy chạy lệnh sau:

New-LocalUser -Name "AzureAD\admin@woshub.com" -Description " This is an Azure AD account"

Để xóa người dùng cục bộ:

Remove-LocalUser -Name john -Verbose

Cách Quản lý Nhóm Cục bộ Windows bằng PowerShell?

Bây giờ, hãy hiển thị danh sách các nhóm cục bộ trên máy tính của bạn:

Get-LocalGroup

Quản lý người dùng và nhóm cục bộ bằng PowerShell

Tạo một nhóm mới:

New-LocalGroup -Name RemoteSupport -Description 'Remote Support Group'

Thêm một số tài khoản cục bộ và nhóm quản trị viên cục bộ vào nhóm mới:

Add-LocalGroupMember -Group 'RemoteSupport' -Member ('john','root','Administrators') -Verbose

Mẹo. Bạn có thể tìm thấy cách tạo, xóa hoặc thêm người dùng vào nhóm miền AD trong bài viết Quản lý nhóm Active Directory bằng PowerShell.

Nếu máy tính của bạn tham gia vào miền AD, bạn có thể thêm các nhóm và tài khoản miền vào nhóm cục bộ của mình. Để làm điều đó, hãy chỉ định chúng theo định dạng sau:Tên miền \ jonhl hoặc Tên miền \ 'quản trị viên tên miền'.

Quản lý người dùng và nhóm cục bộ bằng PowerShell

Bạn cũng có thể thêm người dùng vào các nhóm bằng cách sử dụng đường dẫn sau (chúng tôi sẽ thêm người dùng vào nhóm quản trị viên cục bộ):

Get-Localuser -Name john | Add-LocalGroupMember -Group 'Administrators'

Hiển thị danh sách người dùng trong một nhóm cục bộ:

Get-LocalGroupMember -Group 'RemoteSupport'

Như bạn có thể thấy, chúng tôi chỉ đang sử dụng các tài khoản cục bộ (Nguồn gốc - Local). Tuy nhiên, tài khoản miền (domain), tài khoản Microsoft (MicrosoftAccount) hoặc tài khoản Azure (AzureAD) cũng có thể được sử dụng.

Quản lý người dùng và nhóm cục bộ bằng PowerShell

Để hiển thị danh sách các nhóm, một người dùng cụ thể là thành viên, bạn sẽ phải kiểm tra mọi nhóm cục bộ trên máy tính:

foreach ($LocalGroup in Get-LocalGroup)
{
if (Get-LocalGroupMember $LocalGroup -Member john –ErrorAction SilentlyContinue)
{
$LocalGroup.Name
}
}

Để xóa người dùng khỏi nhóm, hãy chạy lệnh sau:

Remove-LocalGroupMember -Group 'RemoteSupport' –Member john

Để quản lý người dùng cục bộ trên máy tính từ xa, hãy kết nối với máy tính đó bằng WinRM và sử dụng lệnh ghép ngắn Invoke-Command hoặc Enter-PSSession.

Ví dụ:bạn cần tạo danh sách tài khoản trong một nhóm cục bộ trên máy tính từ xa:

$winrm_ssn = new-pssession -computer Lon-Srv01,Lon-Srv02,Lon-Srv03
invoke-command -scriptblock {Get-LocalGroupMember -Group 'RemoteSupport'} -session $winrm_ssn -hidecomputername | select * -exclude RunspaceID | out-gridview -title "LocalAdmins"