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

Quản lý nhóm Active Directory với PowerShell

Phần đính vào đồ họa Active Directory Users and Computer (ADUC) không phải là công cụ duy nhất để quản lý các nhóm bảo mật trong Active Directory. Bạn có thể sử dụng các lệnh PowerShell đơn giản để quản lý hàng ngày các nhóm người dùng trong miền Active Directory của bạn. Trong bài viết này, chúng ta sẽ xem xét cách sử dụng PowerShell để tạo một nhóm mới trong AD, thêm người dùng vào đó (hoặc xóa), hiển thị / xuất danh sách người dùng nhóm và các lệnh hữu ích khác thường được sử dụng khi quản lý AD các nhóm.

Để quản lý nhóm AD, bạn có thể sử dụng Mô-đun Active Directory cho Windows PowerShell. Mô-đun RSAT-AD-PowerShell có sẵn trong tất cả các phiên bản của Windows Server (bắt đầu từ Windows Server 2008R2) và nó có thể được cài đặt như một tính năng RSAT trên máy tính để bàn Windows 10 và Windows 11.

Kiểm tra xem mô-đun AD đã được tải vào phiên PowerShell hiện tại chưa:

Get-Module -Sẵn có

Quản lý nhóm Active Directory với PowerShell

Như bạn có thể thấy, mô-đun ActiveDirectory đã được tải. Nếu không, hãy nhập nó bằng lệnh sau:

Mô-đun nhập ActiveDirectory

Hãy liệt kê các lệnh ghép ngắn PowerShell cho phép bạn quản lý các nhóm QUẢNG CÁO:

Get-Command -Module ActiveDirectory -Tên "* Group *"

Có 11 cmdlet có sẵn:

Quản lý nhóm Active Directory với PowerShell

  • Add-ADGroupMember
  • Add-ADPrincipalGroupMembership
  • Get-ADAccountAuthorizationGroup
  • Get-ADGroup
  • Get-ADGroupMember
  • Get-ADPrincipalGroupMembership
  • Nhóm Quảng cáo Mới
  • Xoá-Nhóm Quảng cáo
  • Remove-ADGroupMember
  • Remove-ADPrincipalGroupMembership
  • Set-ADGroup

New-ADGroup:Tạo Nhóm QUẢNG CÁO Mới với PowerShell

Tạo nhóm bảo mật mới trong vùng chứa Active Directory (OU) được chỉ định bằng cách sử dụng New-ADGroup lệnh:

New-ADGroup "TestADGroup" -path 'OU =Groups, OU =NY, OU =US, DC =corp, dc =woshub, DC =com' -GroupScope Global -PassThru –Verbose

Bạn có thể sử dụng Mô tả DisplayName các thuộc tính để chỉ định mô tả nhóm và tên hiển thị.

Quản lý nhóm Active Directory với PowerShell

Bạn có thể sử dụng GroupScope tham số có thể đặt một trong các loại nhóm sau:

  • 0 =DomainLocal
  • 1 =Toàn cầu
  • 2 =Phổ biến

Bạn có thể tạo một nhóm phân phối như sau:

New-ADGroup "TestADGroup-Distr" -path 'OU =Groups, OU =NY, OU =US, DC =corp, dc =woshub, DC =com' -GroupCategory Distribution -GroupScope Global -PassThru –Verbose

Các nhóm phân phối có thể được sử dụng để gửi email và / hoặc cấp quyền cho AD. Tìm hiểu thêm về các nhóm phân phối Exchange tại đây.

Khi tạo nhóm QUẢNG CÁO, bạn có thể điền vào bất kỳ thuộc tính nào. Cách dễ nhất để đặt giá trị của các thuộc tính nhóm khác nhau là thông qua bảng băm:

$ attrs =@ {"mail" ="mundmins@woshub.com"; "displayname" ="TẤT CẢ quản trị viên Munich"}
New-ADGroup -Tên MUNAdmins -GroupScope Global -OtherAttributes $ attrs

Thêm người dùng vào Active Directory thông qua Add-AdGroupMember

Bạn có thể thêm người dùng vào nhóm Active Directory bằng cách sử dụng Add-AdGroupMember cmdlet. Hãy thêm hai người dùng vào nhóm mới:

Add-AdGroupMember -Identity TestADGroup -Members user1, user2

Quản lý nhóm Active Directory với PowerShell

Nếu bạn cần thêm một số lượng lớn người dùng vào một nhóm cùng một lúc, bạn có thể lưu danh sách tên người dùng vào tệp CSV, sau đó nhập tệp này vào PowerShell và thêm từng người dùng vào nhóm bằng một tập lệnh PowerShell đơn giản.

Định dạng của tệp CSV phải như sau (người dùng phải được liệt kê theo từng người liên tiếp với người dùng làm tiêu đề cột).

Quản lý nhóm Active Directory với PowerShell

Import-CSV. \ users.csv -Người dùng lãnh đạo | ForEach-Object {Add-AdGroupMember -Identity ‘TestADGroup’ -members $ _. Users}

Để nhận được tất cả các thành viên của một nhóm (groupX) và thêm họ vào một nhóm khác (groupY), hãy sử dụng lệnh sau:

Get-ADGroupMember “GroupX” | Get-ADUser | ForEach-Object {Add-ADGroupMember -Identity “Group-Y” -Members $ _}

Nếu bạn cần sao chép các thành viên của tất cả các nhóm lồng nhau vào một nhóm mới (một cách đệ quy), hãy chạy lệnh này:

Get-ADGroupMember -Identity “GroupX” -Recursive | Get-ADUser | ForEach-Object {Add-ADGroupMember -Identity “GroupY” -Members $ _}

Trong bài viết trước, chúng tôi đã giới thiệu một tập lệnh PowerShell cho phép bạn sao chép tư cách thành viên nhóm AD từ một người dùng và thêm một người khác vào cùng danh sách nhóm.

Bạn có thể sử dụng tính năng thành viên nhóm tạm thời (dựa trên thời gian) trong Active Directory với lược đồ Windows2016Forest và mới hơn. Để tạm thời thêm người dùng vào nhóm QUẢNG CÁO (ví dụ:trong 1 giờ), hãy chạy lệnh:

$ ttl =New-TimeSpan -Minutes 60
Add-ADGroupMember -Identity "Domain Admins" -Members j.lennon -MemberTimeToLive $ ttl

Sau một giờ, người dùng này sẽ tự động bị xóa khỏi nhóm bảo mật này.

Remove-ADGroupMember:Xóa người dùng khỏi AD Group bằng PowerShell

Để xóa người dùng khỏi nhóm QUẢNG CÁO, hãy sử dụng Xóa nhóm ADGroupMember cmdlet. Hãy xóa hai người dùng khỏi nhóm:

Remove-ADGroupMember -Identity TestADGroup -Members user1, user2

Xác nhận xóa người dùng:

Quản lý nhóm Active Directory với PowerShell

Nếu bạn phải xóa người dùng khỏi một nhóm theo danh sách người dùng khỏi tệp CSV, hãy sử dụng lệnh sau:

Import-CSV. \ users.csv -Người dùng lãnh đạo | ForEach-Object {Remove-ADGroupMember -Identity ‘TestADGroup’ -members $ _. Users}

Bạn không thể sử dụng nhóm người dùng động trong Active Directory tại chỗ (không giống như Azure AD). Tuy nhiên, bạn có thể tạo một tập lệnh PowerShell đã lên lịch để tự động thêm hoặc xóa người dùng khỏi một nhóm bằng cách sử dụng Add-ADGroupMember Remove-ADGroupMember lệnh ghép ngắn. Tìm hiểu thêm về cách tạo nhóm người dùng động trong Active Directory với PowerShell.

Tìm Nhóm Thư mục Hoạt động với Get-ADGroup

Get-ADGroup cmdlet sẽ giúp bạn lấy thông tin về nhóm miền AD:

Get-ADGroup 'TestADGroup'

Lệnh này hiển thị thông tin về các thuộc tính chính của nhóm (DN, loại nhóm, tên, SID). Để hiển thị các giá trị của tất cả các thuộc tính nhóm, hãy chạy lệnh sau:

Get-ADGroup 'TestADGroup' -properties *

Quản lý nhóm Active Directory với PowerShell

Như bạn có thể thấy, các thuộc tính như thời gian tạo và sửa đổi nhóm, mô tả, v.v., hiện được hiển thị.

Bạn có thể sử dụng lệnh ghép ngắn Get-ADGroup để tìm kiếm các nhóm trong AD theo các mẫu. Ví dụ:các lệnh sau có thể được sử dụng để tìm tất cả các nhóm QUẢNG CÁO có chứa cụm từ quản trị viên nhân danh họ:

Get-ADGroup -LDAPFilter “(name =* administrator *)” | Định dạng-Bảng

Hoặc:

Get-ADGroup -Filter {name -like "* administrator *"} -Các đặc tính Mô tả, thông tin | Chọn Tên, tên tài khoản, Mô tả, thông tin

Sử dụng Get-ADGroup, bạn có thể nhận được danh sách các thành viên trong nhóm (được lưu trữ trong thành viên thuộc tính):

Get-ADGroup -Identity "Quản trị viên tên miền" -Properties thành viên | Thành viên Select-Object -ExpandProperty

Tuy nhiên, sẽ thuận tiện hơn nhiều khi sử dụng Get-ADGroupMember cmdlet để trở thành thành viên nhóm.

Get-ADGroupMember:Cách Nhận và Xuất Thành viên Nhóm Active Directory?

Get-ADGroupMember lệnh ghép ngắn cho phép bạn có được các thành viên của một nhóm AD. Đây có thể là người dùng, máy tính, nhóm khác hoặc tài khoản dịch vụ được quản lý (MSA / gMSA).

Get-ADGroupMember 'TestADGroup'

Để chỉ hiển thị tên người dùng trong kết quả, hãy chạy:

Get-ADGroupMember 'TestADGroup' | tên ft

Quản lý nhóm Active Directory với PowerShell

Nếu nhóm này bao gồm các nhóm miền khác, hãy sử dụng Đệ quy để hiển thị danh sách đầy đủ các thành viên bao gồm tất cả các nhóm lồng nhau.

Get-ADGroupMember ADadmins -recursive | tên ft

Để xuất danh sách tài khoản là thành viên của một nhóm cụ thể sang tệp CSV (để sử dụng thêm trong Excel), hãy chạy lệnh sau:

Get-ADGroupMember 'ADadmins' -recursive | ft samaccountname | Ra ngoài Tệp c:\ PS \ ADadminsList.csv

Bạn có thể xuất thông tin về người dùng trong một nhóm sang tệp văn bản. Lệnh ghép ngắn Get-ADUser được sử dụng để lấy các thuộc tính mở rộng của người dùng. Ví dụ:ngoài tên tài khoản, bạn có thể hiển thị Tên người dùng, chức vụ và số điện thoại của người dùng nhóm:

Get-ADGroupMember -Identity ADadmins -recursive | foreach {Get-ADUser $ _ -properties title, OfficePhone | Select-Object title, OfficePhone}

Bạn có thể đếm số lượng người dùng trong một nhóm như thế này:

(Get-ADGroupMember -Identity 'tên miền quản trị viên'). Đếm

Quản lý nhóm Active Directory với PowerShell

Để nhận danh sách các nhóm trống trong một đơn vị tổ chức cụ thể, hãy sử dụng lệnh sau:

Get-ADGroup -Filter * -Properties Member -searchbase “OU =NY, OU-US, DC =corp, dc =woshub, DC =com” | trong đó {-not $ _. thành viên} | chọn Tên

Lệnh ghép ngắn Get-ADGroupMember có thể được sử dụng để tạo một tập lệnh PowerShell đơn giản thông báo cho quản trị viên rằng ai đó đã thêm người dùng mới vào một nhóm AD cụ thể.

Set-ADGroup:Sửa đổi các thuộc tính của Active Director Group

Nhóm tập hợp quảng cáo cmdlet cho phép bạn thay đổi các thuộc tính (thuộc tính) của bất kỳ nhóm Active Directory nào. Ví dụ:bạn có thể thay đổi mô tả và tên của một nhóm:

Set-ADGroup -Identity MunAdmins -Mô tả “Nhóm quản trị viên Munich”

Hoặc:

Get-ADGroup -Identity MunAdmins | Set-ADGroup -Mô tả “Nhóm quản trị viên Munich”

Ẩn một nhóm cụ thể khỏi Exchange GAL:

Set-ADGroup –id MunAdmins -replace @ {hideDLMembership =$ true}

Bạn có thể thay đổi một số thuộc tính nhóm cùng một lúc. Thật tiện lợi khi đặt danh sách các thay đổi bằng HashTable:

$ attrs =@ {"mail" ="munadmins@woshub.com"; "displayname" ="TẤT CẢ MUN Quản trị viên"}
Set-ADGroup -Identity MunAdmins –Thêm $ attrs

Quản lý nhóm Active Directory với PowerShell

Bạn có thể nhận danh sách các thuộc tính nhóm AD với get-adgroup munadmins -Properties * hoặc từ tab Trình chỉnh sửa thuộc tính trong bảng điều khiển ADUC.

Remove-ADGroup:Cách xóa một nhóm trong Active Directory bằng PowerShell?

Để xóa các nhóm trong Active Directory, hãy sử dụng Xóa nhóm ADGroup lệnh ghép ngắn:

Remove-ADGroup -Identity MunSales

Quản lý nhóm Active Directory với PowerShell

Khi xóa một nhóm, bạn sẽ được nhắc xác nhận việc xóa. Để tắt xác nhận xóa, hãy thêm nút Xác nhận chuyển đổi:

Remove-ADGroup -Identity MunSales –Confirm:$ false

Các nhóm đã xóa (và các đối tượng AD khác) có thể được khôi phục từ Thùng rác Active Directory:

Get-ADObject -Filter {Đã xóa -eq $ True -and ObjectClass -eq 'group' -and Name -like '* MunSales *'} –IncludeDeletedObjects | Khôi phục-ADObject –verbose