Làm cách nào để sử dụng Get-MgUser trong Microsoft Graph PowerShell?
Lệnh Get-MgUser trong Microsoft Graph PowerShell được thiết kế đặc biệt để truy xuất thông tin về người dùng trong đối tượng thuê Microsoft 365 được lưu trữ trong Azure Active Directory (Microsoft Entra). Quản lý người dùng trong Azure AD là một nhiệm vụ quan trọng đối với quản trị viên. Vì vậy, việc hiểu lệnh ghép ngắn Get-MgUser là điều cần thiết để quản lý dữ liệu người dùng trong Microsoft Graph thông qua PowerShell. Lệnh này giúp bạn truy xuất các thuộc tính và mối quan hệ của người dùng một cách hiệu quả, cung cấp nhiều tham số khác nhau như filter, property và search để tinh chỉnh việc truy xuất dữ liệu của bạn quá trình. Trong bài viết toàn diện này, tôi sẽ hướng dẫn bạn quy trình sử dụng Get-MgUser để truy xuất thông tin người dùng Azure AD, từ cách sử dụng cơ bản đến nâng cao và đưa ra các mẹo.
Hiểu lệnh Get-MgUser
Để bắt đầu cuộc hành trình của chúng ta vào thế giới Get-MgUser, trước tiên hãy hiểu lệnh này làm gì. Get-MgUser là lệnh ghép ngắn PowerShell cho phép bạn truy xuất thông tin về người dùng trong Microsoft 365. Cho dù bạn cần tìm thuộc tính người dùng cụ thể, lọc người dùng dựa trên các tiêu chí nhất định hay truy xuất giấy phép, Get-MgUser đều có thể hỗ trợ bạn.
Để bắt đầu với Get-MgUser, bạn cần kết nối với môi trường Microsoft 365 của mình từ PowerShell thông qua Microsoft Graph, bằng thông tin xác thực phù hợp. Sau khi kết nối, bạn có thể chạy lệnh Get-MgUser theo sau là các tham số khác nhau để điều chỉnh kết quả theo nhu cầu cụ thể của bạn. Cho dù bạn là người mới bắt đầu hay người dùng PowerShell có kinh nghiệm, bài viết này sẽ giúp bạn hiểu cách sử dụng Get-MgUser một cách hiệu quả.
Cài đặt mô-đun Microsoft Graph PowerShell
Trước khi đi sâu vào thế giới Microsoft Graph với PowerShell, việc cài đặt Mô-đun Microsoft Graph PowerShell là bước quan trọng đầu tiên. Mô-đun này, một trình bao bọc toàn diện cho API Microsoft Graph, thay thế mô-đun Azure AD cũ hơn, cung cấp cách tương tác hợp lý và hiệu quả với tất cả các dịch vụ của Microsoft. Đây là hướng dẫn đơn giản để giúp bạn bắt đầu:
Để kiểm tra xem Mô-đun Microsoft Graph đã được cài đặt chưa, hãy sử dụng lệnh ghép ngắn Get-InstalledModule:
Get-InstalledModule Microsoft.Graph
Điều kiện tiên quyết cài đặt
- Đảm bảo bạn đã cài đặt phiên bản PowerShell mới nhất trên hệ thống của mình. Mô-đun Microsoft Graph PowerShell hỗ trợ cả Windows PowerShell 5.1 và PowerShell 7.
- Xác minh rằng bạn có quyền truy cập Quản trị viên vào Azure AD (Microsoft Entra). Điều này rất quan trọng để thực thi các lệnh
Get-MgUsermà không gặp phải lỗi “không đủ đặc quyền”.
Các bước cài đặt
Để cài đặt mô-đun Microsoft Graph PowerShell cho Windows, hãy làm theo các bước sau:
- Mở Bảng điều khiển PowerShell hoặc Windows Terminal với tư cách quản trị viên.
- Chạy lệnh:
Install-Module Microsoft.Graph -Scope CurrentUser. Việc này sẽ cài đặt mô-đun cho người dùng hiện tại, tránh những thay đổi trên toàn hệ thống. - Nếu được nhắc, hãy chấp nhận kho lưu trữ không đáng tin cậy để tiến hành cài đặt.
Lệnh này sẽ tải xuống và cài đặt phiên bản mới nhất của mô-đun Microsoft Graph PowerShell từ Thư viện PowerShell.
Phiên bản Beta tùy chọn: Để truy cập vào các tính năng và lệnh ghép ngắn mới nhất, có thể cài đặt phiên bản beta bằng cách sử dụng: Install-Module Microsoft.Graph.Beta -Scope CurrentUser.
Mô-đun Microsoft Graph PowerShell tạo điều kiện thuận lợi cho cách tiếp cận thống nhất để quản lý các dịch vụ Đám mây của Microsoft và hỗ trợ các phương thức xác thực hiện đại trên nhiều nền tảng. Bản chất nguồn mở và các bản cập nhật thường xuyên của nó đảm bảo khả năng tương thích với các thay đổi API Đồ thị mới nhất, khiến nó trở thành một công cụ thiết yếu cho cả quản trị viên và nhà phát triển.
Kết nối với Microsoft Graph bằng PowerShell
Kết nối với Microsoft Graph bằng PowerShell là một quá trình đơn giản nhưng đòi hỏi sự chú ý cẩn thận đến các quyền và phạm vi để đảm bảo rằng bạn có quyền truy cập cần thiết để thực hiện các tác vụ dự định của mình. Dưới đây là hướng dẫn từng bước để thiết lập kết nối phù hợp cho cả phương thức truy cập được ủy quyền và chỉ dùng ứng dụng.
Kết nối truy cập được ủy quyền
- Xác định các quyền cần thiết: Sử dụng lệnh ghép ngắn
Find-MgGraphPermissionhoặcFind-MgGraphCommandđể xác định các quyền cần thiết cho tác vụ của bạn. Phạm vi phổ biến để quản lý người dùng bao gồmUser.Read.Allđể đọc hồ sơ người dùng vàAuditLog.Read.Allđể truy cập nhật ký kiểm tra. - Kết nối với Microsoft Graph: Thực thi
Connect-MgGraph -Scopes "User.Read.All", "AuditLog.Read.All"trong PowerShell. - Xác minh kết nối: Chạy lệnh kiểm tra
Get-MgUserđể xác nhận kết nối thành công và quyền truy cập vào tài khoản người dùng trong đối tượng thuê của bạn. - Nếu đây là lần đầu tiên bạn kết nối, một cửa sổ yêu cầu cấp phép sẽ nhắc. Cấp cho quản trị viên sự đồng ý để tiếp tục.
Kết nối truy cập chỉ ứng dụng bằng ID ứng dụng Azure
Để kết nối với Microsoft Graph bằng Kết nối truy cập chỉ ứng dụng, Bạn cần đăng ký ứng dụng trên trung tâm quản trị Microsoft Entra và liên kết bí mật ứng dụng khách (mật khẩu ứng dụng), chứng chỉ hoặc thông tin xác thực nhận dạng liên kết. Và sau đó đặt cấu hình quyền ứng dụng Microsoft Graph trên ứng dụng. Xem thêm tại đây: Làm cách nào để kết nối với Microsoft Graph bằng PowerShell?
Với quyền truy cập chỉ dành cho ứng dụng, bạn có thể thực hiện các thao tác mà không cần người dùng đăng nhập, điều này lý tưởng cho các tập lệnh tự động và dịch vụ phụ trợ.
Mẹo bổ sung:
- Chuyển đổi phiên bản API: Để truy cập các tính năng hoặc lệnh beta mới nhất, hãy chuyển sang phiên bản Beta bằng cách sử dụng
Select-MgProfile -Name Beta. - Phạm vi quyền: Luôn xác minh phạm vi quyền được yêu cầu (
User.Read.All,Group.ReadWrite.All) cho hoạt động của bạn. Các quyền này thường yêu cầu tài khoản có vai trò Quản trị viên ứng dụng, Quản trị viên ứng dụng đám mây hoặc Quản trị viên toàn cầu. - Ngắt kết nối: Hãy nhớ ngắt kết nối phiên của bạn sau khi nhiệm vụ của bạn hoàn tất, sử dụng
Disconnect-MgGraphđể duy trì tính bảo mật.
Bằng cách làm theo các bước và mẹo này, bạn có thể kết nối hiệu quả với Microsoft Graph bằng PowerShell, cho phép bạn quản lý dữ liệu và dịch vụ Microsoft 365 một cách chính xác và hiệu quả. Cho dù bạn đang sử dụng quyền truy cập được ủy quyền cho các hoạt động dành riêng cho người dùng hay quyền truy cập chỉ dành cho ứng dụng cho các tác vụ rộng hơn, do ứng dụng điều khiển thì việc hiểu rõ quy trình kết nối và các quyền bắt buộc là chìa khóa để tận dụng toàn bộ sức mạnh của Microsoft Graph.
Bây giờ chúng ta đã hiểu cơ bản về Get-MgUser, hãy xem xét một số ví dụ thực tế về cách sử dụng lệnh này để truy xuất thông tin người dùng một cách hiệu quả.
Truy xuất một chi tiết người dùng bằng lệnh ghép ngắn Get-MgUser
Truy xuất thông tin chi tiết về một người dùng trong Microsoft Graph bằng lệnh ghép ngắn Get-MgUser là một quy trình đơn giản có thể được điều chỉnh để trích xuất thông tin người dùng cụ thể dựa trên yêu cầu của bạn. Đây là cách bạn có thể sử dụng lệnh ghép ngắn này một cách hiệu quả để thu thập thông tin chi tiết về từng người dùng:
Truy xuất người dùng cơ bản
Để nhận thông tin cơ bản về một người dùng, bạn có thể sử dụng tham số -UserId với ID của người dùng hoặc UserPrincipalName. Ví dụ:
Get-MgUser -UserId john.doe@Crescent.com
Lệnh này tìm nạp các chi tiết cơ bản của người dùng, chẳng hạn như ID, tên hiển thị, địa chỉ email và tên chính của người dùng. Bạn cũng có thể chuyển ID đối tượng của người dùng vào lệnh ghép ngắn này.
Mở rộng thông tin người dùng
Bạn có thể sử dụng tham số -ExpandProperty để biết thêm thông tin chi tiết, bao gồm các mối quan hệ như người quản lý của người dùng hoặc cấp dưới trực tiếp. Ví dụ: Để truy xuất thông tin chi tiết về người quản lý của người dùng, hãy thực thi:
Get-MgUser -UserId "michael.brown@Crescent.com" -ExpandProperty Manager | Select-Object @{Name = 'Manager'; Expression = {$_.Manager.AdditionalProperties.mail}}
Tương tự, để lấy danh sách báo cáo trực tiếp của người dùng:
Get-MgUser -UserId AdeleV@Crescent.com -ExpandProperty directReports | Select-Object @{Name = 'DirectReports'; Expression = {$_.directReports.AdditionalProperties.mail}}
Tùy chỉnh truy xuất dữ liệu
Lệnh ghép ngắn Get-MgUser mang đến sự linh hoạt về dữ liệu bạn có thể truy xuất. Bằng cách sử dụng các tham số như -Property và -Filter, bạn có thể điều chỉnh đầu ra theo nhu cầu cụ thể của mình.
Chọn thuộc tính cụ thể:
Theo mặc định, Get-MgUser truy xuất một tập hợp thuộc tính giới hạn cho mỗi người dùng. Tuy nhiên, có thể có những trường hợp bạn cần quyền truy cập vào các thuộc tính bổ sung. May mắn thay, Get-MgUser cho phép bạn mở rộng kết quả để bao gồm tất cả các thuộc tính có sẵn. Để truy xuất tất cả thuộc tính cho mỗi người dùng, bạn có thể sử dụng tham số -Property. Ví dụ:
Để biết vị trí phòng ban và văn phòng của người dùng, bạn sẽ sử dụng:
Get-MgUser -UserId Steve@Crescent.com -Property DisplayName, mail,department | Select-Object DisplayName, Mail, Department
Để có được tất cả các thuộc tính có sẵn của đối tượng người dùng, bạn có thể sử dụng lệnh ghép ngắn get-member:
Get-Mguser | Get-Member -MemberType Property
Lệnh này sẽ trả về tất cả các thuộc tính có sẵn cho mọi người dùng trong môi trường Microsoft 365 của bạn.
Lọc người dùng: Tham số -Filter cho phép bạn tìm người dùng dựa trên các tiêu chí cụ thể như bộ phận hoặc chức danh công việc. Mặc dù điều này thường được sử dụng để liệt kê nhiều người dùng nhưng nó cũng có thể hữu ích khi bạn biết một phần thông tin của người dùng. Ví dụ: để tìm người dùng từ một bộ phận cụ thể:
Get-MgUser -Filter "department eq 'Sales'" -All
Chọn Thuộc tính Cụ thể: Không phải lúc nào bạn cũng cần tất cả thông tin được cung cấp theo mặc định. Để chỉ truy xuất các thuộc tính cụ thể như Tên hiển thị và thư, hãy sử dụng lệnh ghép ngắn Select-Object. Ví dụ:
Get-MgUser | Select-Object DisplayName, Mail
Lệnh này lọc đầu ra để chỉ bao gồm tên hiển thị và địa chỉ email của người dùng.
Các lệnh và tham số của lệnh ghép ngắn Get-MgUser không chỉ tạo điều kiện thuận lợi cho việc truy xuất nhiều loại thông tin người dùng từ Azure Active Directory (Azure AD) mà còn nhấn mạnh tính linh hoạt của lệnh ghép ngắn trong việc xử lý các tác vụ quản lý người dùng khác nhau. Bằng cách hiểu và sử dụng các tùy chọn này, bạn có thể quản lý dữ liệu người dùng trong môi trường Microsoft 365 một cách hiệu quả, đảm bảo bạn có quyền truy nhập vào thông tin cập nhật và phù hợp nhất theo yêu cầu.
Nhận danh sách tất cả người dùng Microsoft 365
Truy xuất thông tin về tất cả người dùng trong môi trường Microsoft Entra ID và Microsoft 365 của bạn là một nhiệm vụ quan trọng đối với quản trị viên. Lệnh ghép ngắn Get-MgUser, một thành phần của Microsoft Graph PowerShell SDK, đơn giản hóa quy trình này bằng cách cung cấp một loạt tham số được điều chỉnh để quản lý người dùng toàn diện. Dưới đây là cách tận dụng Get-MgUser để truy xuất thông tin của tất cả người dùng một cách hiệu quả:
Lệnh cơ bản để truy xuất tất cả người dùng
Theo mặc định, lệnh ghép ngắn Get-MgUser chỉ trả về 100 kết quả đầu tiên. Để liệt kê mọi người dùng trong Azure Active Directory của bạn, hãy sử dụng tham số -All với lệnh ghép ngắn Get-MgUser. Lệnh này sẽ phân trang qua tất cả người dùng, đảm bảo bạn truy xuất mọi tài khoản:
Get-MgUser -All
Lệnh này sẽ trả về danh sách tất cả người dùng trong đối tượng thuê của bạn, cùng với các thuộc tính cơ bản của họ.
Để có chế độ xem chi tiết hơn, bao gồm ID, DisplayName, Mail và UserPrincipalName, bạn có thể định dạng đầu ra:
Get-MgUser -All | Format-List ID, DisplayName, Mail, UserPrincipalName
Lọc và sắp xếp người dùng dựa trên thuộc tính
Mặc dù các tùy chọn lọc cơ bản của Get-MgUser rất mạnh mẽ nhưng có thể có những trường hợp bạn cần các khả năng lọc nâng cao hơn. Rất may, Get-MgUser cung cấp các tham số bổ sung để giúp bạn tinh chỉnh các truy vấn của mình. Bạn có thể áp dụng tham số -Filter với các toán tử như eq (bằng), ne (không bằng), gt (lớn hơn), ge (lớn hơn hoặc bằng), lt (nhỏ hơn) và le (nhỏ hơn hoặc bằng) và startedWith để thu hẹp danh sách người dùng của bạn dựa trên tiêu chí cụ thể.
Giả sử bạn chỉ muốn truy xuất một tập hợp con người dùng cụ thể dựa trên các thuộc tính nhất định, chẳng hạn như bộ phận mà họ thuộc về. Bạn có thể sử dụng tham số -Filter để đạt được điều này. Ví dụ:
Get-MgUser -Filter "Department eq 'Marketing'"
Lệnh này sẽ trả về tất cả người dùng có bộ phận được đặt thành “Tiếp thị”.
Hãy xem thêm một số ví dụ về cách lọc người dùng từ Azure Active Directory:
Để liệt kê tất cả người dùng đám mây ngoại trừ khách, bạn có thể áp dụng bộ lọc dưới dạng:
Get-MgUser -Filter "UserType eq 'Member'" -All
Để truy xuất người dùng đã đồng bộ hóa tại chỗ và sắp xếp họ theo tên hiển thị:
Get-MgUser -Filter "OnPremisesSyncEnabled eq true" -All | Sort-Object DisplayName
Hãy lọc tất cả người dùng đã tạo trong 30 ngày qua:
Get-MgUser -Filter "CreatedDateTime ge $((Get-Date).AddDays(-30).ToString("s"))Z" -All
Bạn có thể kết hợp nhiều điều kiện với các toán tử logic AND, OR:
Get-MgUser -Filter "Country eq 'Canada' and Department eq 'Sales'"
Đây là một ví dụ khác về cách sử dụng toán tử AND trong truy vấn nâng cao:
Get-MgUser -Filter "(accountEnabled eq true) and (startswith(Department,'Sales'))"
Các toán tử so sánh khác StartsWith, EndsWith và NE cũng được hỗ trợ:
Get-MgUser -Filter "startsWith(mail,'steve')" -All -ConsistencyLevel Eventual
Ngoài việc sử dụng tham số Filter, Bạn cũng có thể sử dụng lệnh ghép ngắn Where-Object để lọc hồ sơ người dùng (nhân tiện, cách này kém hiệu quả hơn!):
Get-MgUser -All | Where-Object {$_.DisplayName -like "*sam*"}
Bạn có thể xây dựng các tìm kiếm chi tiết và cụ thể để trích xuất chính xác tập hợp con thông tin người dùng mà bạn yêu cầu từ thư mục. Điều này đặc biệt hữu ích để tạo báo cáo, tự động hóa các tác vụ quản lý người dùng hoặc tích hợp với các tập lệnh và dịch vụ khác.
Lọc theo tên chính của người dùng
Nếu muốn lọc người dùng dựa trên UserPrincipalName của họ, bạn có thể sử dụng tham số -Filter cùng với thuộc tính UserPrincipalName. Ví dụ:
Get-MgUser -Filter "UserPrincipalName eq 'john.doe@Crescent.com'"
Lệnh này sẽ trả về người dùng với UserPrincipalName được chỉ định.
Lọc người dùng theo trạng thái tài khoản
Để quản lý hiệu quả tài khoản người dùng trong môi trường Microsoft 365 của bạn, đặc biệt là về trạng thái tài khoản, lệnh ghép ngắn Get-MgUser cung cấp khả năng lọc mạnh mẽ. Dưới đây là cách bạn có thể sử dụng các tính năng này để lọc và truy xuất trạng thái tài khoản người dùng:
Truy xuất trạng thái tài khoản:
Bắt đầu bằng cách bao gồm thuộc tính AccountEnabled bằng tham số -Property. Hành động này cho phép bạn xem tài khoản được bật hay tắt.
Get-MgUser -all -Property Id, DisplayName, UserPrincipalName, AccountEnabled | Select-Object Id, DisplayName, UserPrincipalName, AccountEnabled
Lọc dựa trên trạng thái tài khoản:
Tham số -Filter đóng vai trò quan trọng khi bạn muốn liệt kê người dùng dựa trên trạng thái tài khoản của họ. Cho dù bạn đang tìm cách xác định các tài khoản đã bật hay bị vô hiệu hóa thì tham số này, kết hợp với thuộc tính accountEnabled, sẽ giúp việc này trở nên đơn giản. Ví dụ: để chỉ truy xuất những người dùng đã bật:
Get-MgUser -Filter "accountEnabled eq true" -All
Để liệt kê người dùng bị vô hiệu hóa:
Get-MgUser -Filter "accountEnabled eq false"
Hãy nhớ sử dụng các toán tử như eq (bằng), và, hoặc và startswith cho các truy vấn phức tạp hơn, đảm bảo truy vấn bộ lọc được gói trong dấu ngoặc kép và các giá trị chuỗi trong dấu ngoặc đơn.
Để kiểm tra trạng thái tài khoản của một người dùng cụ thể, hãy sử dụng:
Get-MgUser -UserId "Steve@Crescent.com" -Property DisplayName, UserPrincipalName, AccountEnabled | Select-Object DisplayName, UserPrincipalName, AccountEnabled
Tìm kiếm Azure AD với tham số -Search của Get-MgUser
Tham số -Search có thể đặc biệt hữu ích cho việc tìm kiếm người dùng theo từ khóa, nâng cao tính cụ thể cho các truy vấn của bạn.
Để tìm kiếm nhiều sắc thái hơn, tham số -Search có thể được sử dụng kết hợp với tùy chọn ConsistencyLevel cuối cùng. Cách tiếp cận này có lợi khi bạn đang tìm kiếm người dùng dựa trên các thuộc tính cụ thể mà không thể truy cập trực tiếp thông qua thông số -Filter.
Get-MgUser -Search "DisplayName:sam" -ConsistencyLevel Eventual
Bằng cách tận dụng các lệnh và tham số này, bạn sẽ hiểu rõ và kiểm soát được các trạng thái tài khoản người dùng trong tổ chức của mình. Khả năng này rất cần thiết cho việc kiểm tra định kỳ, đảm bảo tuân thủ và quản lý quyền truy cập của người dùng một cách hiệu quả.
Lấy thông tin người quản lý
Để lấy thông tin người quản lý cho người dùng trong môi trường Microsoft 365 của bạn, bằng cách tận dụng lệnh ghép ngắn Get-MgUser, bạn có thể mở rộng thuộc tính “Trình quản lý”. Lệnh ghép ngắn này cho phép bạn tìm nạp thông tin chi tiết về người quản lý của người dùng, bao gồm tên, tên hiển thị và địa chỉ email, những thông tin này có thể đóng vai trò then chốt trong cấu trúc tổ chức và phân tích luồng giao tiếp. Dưới đây là cách sử dụng lệnh ghép ngắn này một cách hiệu quả:
Sử dụng tham số -UserId để chỉ định người dùng. Ví dụ:
Get-MgUser -UserId "Steve@Crescent.com" -ExpandProperty Manager | Select-Object @{Name = 'Manager'; Expression = { $_.Manager.AdditionalProperties.displayName} }
Lệnh này tìm nạp thông tin chi tiết của người quản lý được chỉ định cho người dùng được chỉ định bởi -UserId.
Truy xuất người quản lý cho tất cả người dùng
Để có được thông tin người quản lý cho tất cả người dùng, bạn có thể xâu chuỗi các lệnh lại với nhau. Bắt đầu với Get-MgUser -All để liệt kê tất cả người dùng, sau đó chuyển kết quả sang Select-Object bằng biểu thức tùy chỉnh để trích xuất thông tin chi tiết về người quản lý. Ví dụ:
Get-MgUser -All -ExpandProperty Manager | Select-Object Id, UserPrincipalName, @{Name = 'Manager'; Expression = { $_.Manager.AdditionalProperties.mail } }
Lệnh này liệt kê tất cả người dùng cùng với email của người quản lý một cách hiệu quả, thể hiện sức mạnh của PowerShell trong việc xử lý các hoạt động dữ liệu hàng loạt.
Bằng cách sử dụng tập lệnh trên, bạn có thể quản lý và phân tích một cách thành thạo mối quan hệ giữa người quản lý và người dùng trong tổ chức của mình, nâng cao cả hiệu quả giám sát và hoạt động.
Liệt kê người dùng được cấp phép và không có giấy phép
Get-MgUser cũng cho phép bạn nhận giấy phép cho người dùng trong môi trường Microsoft 365 của mình. Ví dụ: nếu bạn muốn truy xuất danh sách người dùng đã được chỉ định giấy phép, bạn có thể lọc bằng thuộc tính AssignedLicens. Đây là một ví dụ:
Get-MgUser -Filter 'assignedLicenses/$count ne 0' -ConsistencyLevel eventual -CountVariable licensedUserCount -All -Property UserPrincipalName, DisplayName,AssignedLicenses | Format-Table -Property UserPrincipalName,DisplayName,AssignedLicenses
Xác định và quản lý người dùng được cấp phép và không được cấp phép trong môi trường Microsoft 365 của bạn là một khía cạnh quan trọng của quản trị. Lệnh ghép ngắn Get-MgUser cung cấp khả năng lọc mạnh mẽ để phân biệt giữa các loại người dùng này. Dưới đây là cách liệt kê tất cả người dùng không có giấy phép một cách hiệu quả:
Get-MgUser -Filter 'assignedLicenses/$count eq 0' -ConsistencyLevel eventual -CountVariable unlicensedUserCount -All
Điều này nhắm mục tiêu đến những người dùng chưa được cấp bất kỳ giấy phép nào.
Nhận giấy phép được chỉ định cho một Người dùng cụ thể:
Để biết chi tiết giấy phép cụ thể của người dùng, lệnh ghép ngắn Get-MgUserLicenDetail có thể được sử dụng cùng với ID của người dùng để tìm nạp thông tin cấp phép toàn diện.
Get-MgUserLicenseDetail -UserId "steve@Crescent.com"
Bằng cách sử dụng các lệnh này, quản trị viên có thể quản lý giấy phép người dùng một cách hiệu quả trong môi trường Microsoft 365 của họ, đảm bảo rằng các tài nguyên được phân bổ phù hợp và đáp ứng các yêu cầu tuân thủ. Quá trình này hỗ trợ việc kiểm tra và lập kế hoạch mua sắm giấy phép và các chiến lược tối ưu hóa.
Xác định hoạt động đăng nhập của người dùng
Xác định hoạt động đăng nhập của người dùng là một khía cạnh quan trọng trong việc giám sát và bảo mật môi trường Microsoft 365 của bạn. Thuộc tính SignInActivity, có thể truy cập được thông qua API Microsoft Graph Beta, cung cấp thông tin chuyên sâu có giá trị về lần đăng nhập tương tác thành công gần đây nhất vào Azure AD. Đây là cách bạn có thể tận dụng thuộc tính này bằng PowerShell:
Chuyển sang API Beta:
Thuộc tính SignInActivity không có sẵn trong API v1.0, cần phải chuyển sang phiên bản Beta. Bạn có thể thực hiện việc này bằng cách sử dụng lệnh ghép ngắn “Select-MgProfile” để đặt phiên PowerShell của bạn sử dụng API Beta, đảm bảo bạn có quyền truy cập vào các tính năng và thuộc tính mới nhất, bao gồm SignInActivity.
Truy xuất hoạt động đăng nhập
Sử dụng Lệnh ghép ngắn Get-MgUser: Để tìm nạp SignInActivity cho một người dùng cụ thể, -UserId Tham số phải được cung cấp cùng với GUID Azure AD của người dùng. Lệnh trông giống như thế này:
Connect-MgGraph -Scopes "User.Read.All", "AuditLog.Read.All"
#Switch the Microsoft Graph profile to BETA
Select-MgProfile -Name "beta"
#Get the User
$User = Get-MgUser -UserId "steve@crescent.com"
#Get the sign in Activity of the user
Get-MgUser -UserId $User.ID -Property SignInActivity | Select-Object -ExpandProperty SignInActivity
Truy cập các thuộc tính bổ sung:
Khi bạn đã truy xuất đối tượng người dùng bao gồm thuộc tính SignInActivity, hoạt động đăng nhập có thể được truy cập thông qua các thuộc tính bổ sung. Phương pháp này cho phép hiểu biết sâu sắc hơn về hành vi của người dùng:
$UserSigninActivity = Get-MgUser -UserId $User.ID -Property SignInActivity,LastPasswordChangeDateTime
#Get the Signin Acvivity: LastSignInDateTime, LastNonInteractiveSignInDateTime
$UserSigninActivity.SignInActivity
#Get the past passwor change date
$UserSigninActivity.LastPasswordChangeDateTime
Điều quan trọng cần lưu ý là thuộc tính LastSignInDateTime, nêu chi tiết về thời gian đăng nhập thành công gần đây nhất, chỉ khả dụng thông qua API Beta. Tính khả dụng của thuộc tính này luôn ổn định vì vấn đề liên quan đến việc hiển thị của thuộc tính này đã được giải quyết vào ngày 3 tháng 3 năm 2021.
Nhận ngày đăng nhập cuối cùng của tất cả người dùng
Get-MgUser -All -Property Id, UserPrincipalName, DisplayName, SignInActivity | Select-Object Id, UserPrincipalName, DisplayName, @{Name = 'LastSignInDateTime'; Expression = { $_.SignInActivity.LastSignInDateTime }}, @{Name = 'LastNonInteractiveSignInDateTime'; Expression = { $_.SignInActivity.LastNonInteractiveSignInDateTime } } | Out-GridView -Title "Sign-in Logs"
Bằng cách làm theo các bước này, bạn có thể giám sát hiệu quả các hoạt động đăng nhập của người dùng trong môi trường Microsoft 365 của mình. Quá trình này không chỉ tăng cường bảo mật bằng cách cho phép xác định các kiểu đăng nhập bất thường mà còn hỗ trợ các nhiệm vụ kiểm tra và tuân thủ bằng cách cung cấp dữ liệu truy cập chính xác và kịp thời của người dùng.
Xuất thông tin người dùng sang CSV
Việc xuất thông tin người dùng sang tệp CSV thật đơn giản bằng lệnh Export-CSV. Chức năng này rất có giá trị cho mục đích báo cáo hoặc kiểm toán. Sau khi truy xuất tất cả người dùng bằng Get-MgUser -All, chuyển đầu ra sang Export-CSV:
Get-MgUser -All | Export-CSV -Path "AzureADUsers.csv"
Để bao gồm các thuộc tính tùy chỉnh hoặc dữ liệu tiện ích mở rộng, hãy sử dụng tùy chọn truy vấn OData $select để chỉ định các thuộc tính bổ sung trước khi xuất:
Get-MgUser -All -Property displayName,mail,jobTitle | Select displayName,mail,jobTitle | Export-CSV -Path "CustomAzureADUsers.csv"
Các bước này phác thảo quy trình quản lý và xuất thông tin người dùng từ Azure AD một cách hiệu quả bằng cách sử dụng lệnh ghép ngắn Get-MgUser trong PowerShell. Bằng cách sử dụng tham số -All, cùng với các tùy chọn lọc và xuất, quản trị viên có thể giám sát tài khoản người dùng một cách hiệu quả trong môi trường Microsoft 365 của họ.
Để hợp lý hóa quy trình xuất chi tiết người dùng sang tệp CSV, đặc biệt là khi xử lý các nhóm người dùng cụ thể trong môi trường Microsoft 365 của bạn, việc kết hợp các tập lệnh PowerShell sẽ nâng cao hiệu quả khả năng quản lý dữ liệu của bạn. Đây là một cách tiếp cận có cấu trúc để đạt được điều này:
Kết hợp các tập lệnh để xuất có mục tiêu:
- Bắt đầu bằng cách sử dụng lệnh ghép ngắn
Get-MgUserđể tìm nạp thông tin chi tiết người dùng cần thiết. Lệnh ghép ngắn này rất linh hoạt, cho phép bạn chỉ định ngữ cảnh (được ủy quyền hoặc ứng dụng) và đảm bảo bạn có các quyền thích hợp cho thao tác.
- Bắt đầu bằng cách sử dụng lệnh ghép ngắn
- Tiếp theo, áp dụng các bộ lọc để thu hẹp người dùng dựa trên các tiêu chí như chức danh công việc và phòng ban. Bước này rất quan trọng để tập trung vào các nhóm người dùng đáp ứng các điều kiện đã chỉ định của bạn.
- Xuất sang CSV: Sau khi dữ liệu người dùng mong muốn được lọc và biên soạn, bước cuối cùng bao gồm xuất thông tin này sang tệp CSV. Sử dụng lệnh ghép ngắn
Export-CSV, chỉ định đường dẫn nơi bạn muốn lưu tệp CSV.
Get-MgUser -Filter "jobTitle eq 'Director' and department eq 'Operations'" -Property DisplayName, UserPrincipalName, JobTitle, Department, AssignedLicenses, LastPasswordChangeDateTime | Select-Object DisplayName, UserPrincipalName, JobTitle, Department, AssignedLicenses, LastPasswordChangeDateTime | Export-CSV -Path "FilteredUsers.csv" -NoTypeInformation
Lệnh này lọc người dùng một cách hiệu quả theo chức danh và bộ phận công việc, chọn các thuộc tính cụ thể để đưa vào đầu ra và xuất dữ liệu sang tệp CSV có tên “FilteredUsers.csv”.
Nhận cờ mật khẩu không bao giờ hết hạn cho tất cả người dùng và xuất sang tệp CSV
Để lấy cờ mật khẩu không bao giờ hết hạn cho tất cả người dùng và xuất nó sang tệp CSV bằng Microsoft Graph PowerShell, bạn có thể sử dụng tập lệnh bên dưới:
- Kết nối với Microsoft Graph bằng lệnh ghép ngắn
Connect-MgGraphvà cung cấp phạm vi được yêu cầu. - Truy xuất tất cả người dùng bằng lệnh ghép ngắn
Get-MgUservà chọn các thuộc tínhDisplayName,UserPrincipalNamevàPasswordPolicies. - Lọc những người dùng có chính sách mật khẩu chứa giá trị
DisablePasswordExpiration. - Xuất người dùng đã lọc sang tệp CSV bằng lệnh ghép ngắn
Export-Csv.
#Connect to Microsoft Graph
Connect-MgGraph -Scopes "User.Read.All"
#Get Password Never Expire flag for all users
$PasswordNeverExpire = Get-MgUser -All -Property DisplayName, UserPrincipalName, PasswordPolicies | Select-Object DisplayName, UserprincipalName, @{
Name = "PasswordNeverExpires"; Expression = { $_.PasswordPolicies -contains "DisablePasswordExpiration"}
}
$PasswordNeverExpire
#Export the data to CSV file
$PasswordNeverExpire | Export-CSV -Path "C:\Temp\PasswordNeverExpire.csv" -NoTypeInformation
Bằng cách làm theo cách tiếp cận có cấu trúc này, bạn có thể quản lý và xuất thông tin người dùng chi tiết từ môi trường Microsoft 365 một cách hiệu quả, được điều chỉnh cho phù hợp với yêu cầu cụ thể của bạn. Quá trình này không chỉ hỗ trợ kiểm toán tổ chức mà còn hỗ trợ các chiến lược quản lý người dùng chủ động.
Khắc phục sự cố thường gặp với Get-MgUser
Mặc dù Get-MgUser là một công cụ mạnh mẽ nhưng bạn có thể gặp phải một số vấn đề thường gặp khi sử dụng nó. Hãy cùng khám phá một số vấn đề này và các giải pháp tiềm năng của chúng.
Không đủ đặc quyền để hoàn thành thao tác
Nếu bạn nhận được thông báo lỗi cho biết “Không đủ đặc quyền để hoàn thành thao tác”, điều đó có nghĩa là tài khoản bạn đang sử dụng để chạy lệnh Get-MgUser không có các quyền cần thiết. Để giải quyết vấn đề này, hãy đảm bảo rằng tài khoản có đặc quyền quản trị phù hợp trong môi trường Microsoft 365 của bạn. Quản trị viên nên cấp các quyền thích hợp (như User.Read.All để đọc tất cả hồ sơ người dùng) trong trung tâm quản trị Azure AD dưới quyền API để đăng ký ứng dụng được liên kết với PowerShell.
Get-MgUser không được nhận dạng là tên của lệnh ghép ngắn
Nếu bạn gặp thông báo lỗi cho biết “Get-MgUser không được nhận dạng là tên của lệnh ghép ngắn”, điều đó có nghĩa là mô-đun PowerShell dành cho Microsoft Graph chưa được cài đặt trên hệ thống của bạn. Để cài đặt mô-đun, hãy chạy “Install-Module Microsoft.Graph”. Thông tin thêm có tại đây: cài đặt mô-đun Microsoft Graph.
Các vấn đề về lọc và truy vấn
Nếu bạn gặp lỗi Cú pháp hoặc không có kết quả khi sử dụng tùy chọn -Filter, hãy đảm bảo cú pháp truy vấn OData của bạn là chính xác. Các lỗi phổ biến bao gồm việc sử dụng dấu ngoặc đơn (') không chính xác xung quanh các giá trị chuỗi hoặc sử dụng các thao tác lọc không được hỗ trợ.
Lỗi lựa chọn thuộc tính
Gặp lỗi hoặc kết quả không mong muốn khi sử dụng tùy chọn -Property để chỉ định thuộc tính? Xác minh tên thuộc tính bạn yêu cầu là chính xác và được hỗ trợ. Không phải tất cả thuộc tính người dùng đều có sẵn theo mặc định; một số yêu cầu quyền cụ thể hoặc tham số truy vấn bổ sung để truy cập.
Phần kết luận
Khi bạn cần truy xuất thông tin về người dùng trong môi trường Microsoft 365, lệnh ghép ngắn PowerShell Get-MgUser là công cụ bạn nên sử dụng. Nó cho phép bạn thực hiện cả truy vấn cơ bản và nâng cao để tìm nạp thông tin chi tiết về người dùng, điều chỉnh dữ liệu trả về theo yêu cầu của bạn. Trong suốt bài viết này, chúng tôi đã đi sâu vào các khả năng toàn diện của lệnh ghép ngắn Get-MgUser và vai trò then chốt của nó trong việc lấy dữ liệu người dùng trong Microsoft Graph thông qua PowerShell. Từ các bước ban đầu khi cài đặt Mô-đun Microsoft Graph PowerShell đến các kỹ thuật nâng cao để trích xuất và xuất thông tin người dùng, các chiến lược được đặt ra đã làm sáng tỏ tính linh hoạt của lệnh ghép ngắn trong việc truy cập và xử lý chi tiết người dùng một cách hiệu quả.
Tiềm năng của lệnh ghép ngắn PowerShell này trong việc hỗ trợ phân tích chi tiết người dùng, cùng với khả năng thích ứng với các nhu cầu quản trị khác nhau, nhấn mạnh tầm quan trọng của nó trong hệ sinh thái CNTT hiện đại. Bằng cách hiểu lệnh và các tham số khác nhau của nó, bạn có thể giải phóng sức mạnh hiệu quả và hợp lý hóa các nhiệm vụ quản trị của mình. Cho dù bạn cần lọc người dùng, khám phá tất cả các thuộc tính, khắc phục sự cố hay mở rộng chức năng, Get-MgUser đều có thể giúp bạn. Vì vậy, hãy bắt đầu khám phá các khả năng và tận dụng tối đa Get-MgUser ngay hôm nay!
Các câu hỏi thường gặp:
Mục đích của lệnh ghép ngắn Get-MgUser trong PowerShell là gì?
Lệnh ghép ngắn Get-MgUser PowerShell truy xuất thông tin người dùng trong môi trường Microsoft 365. Nó cho phép bạn liệt kê tất cả người dùng, có được thông tin chi tiết toàn diện về một người dùng cụ thể hoặc định vị người dùng dựa trên các thuộc tính cụ thể như bộ phận hoặc chức danh công việc của họ.
Các bước để kết nối với Microsoft Graph API qua PowerShell là gì?
Để gọi API Đồ thị trong PowerShell, hãy bắt đầu bằng cách thực thi lệnh Connect-MgGraph để đăng nhập và chỉ định phạm vi cần thiết. Sau khi thiết lập kết nối, bạn có thể thoải mái gọi bất kỳ phương thức API Đồ thị nào có sẵn.
Điều kiện tiên quyết để sử dụng Get-MgUser là gì?
Để sử dụng Get-MgUser, bạn cần cài đặt mô-đun Microsoft Graph PowerShell. Bạn có thể cài đặt nó bằng cách chạy lệnh “Install-Module Microsoft.Graph” trong PowerShell. Ngoài ra, bạn phải có quyền “User.Read.All” để truy cập thông tin người dùng trong môi trường Microsoft 365 của mình.
Làm cách nào để truy xuất thông tin của một người dùng cụ thể bằng Get-MgUser?
Để truy xuất thông tin của một người dùng cụ thể, bạn có thể sử dụng tham số “-UserId” theo sau là ID của người dùng hoặc tên chính của người dùng (UPN). Ví dụ:
Get-MgUser -UserId "john.doe@crescent.com".Làm cách nào tôi có thể lọc các thuộc tính người dùng được Get-MgUser trả về?
Bạn có thể sử dụng tham số “-Property” để chỉ định các thuộc tính cụ thể mà bạn muốn truy xuất, sau đó chuyển vào lệnh ghép ngắn Chọn. Ví dụ:
Get-MgUser -UserId "steve@crescent.com" -Property ID, Mail | Select ID, MailCó thể truy xuất người dùng dựa trên giá trị thuộc tính cụ thể không?
Có, bạn có thể sử dụng tham số “-Filter” để truy xuất người dùng dựa trên giá trị thuộc tính cụ thể. Ví dụ: để truy xuất người dùng của một bộ phận cụ thể:
Get-MgUser -Filter "Department eq 'Marketing'"Làm cách nào tôi có thể xuất thông tin người dùng được Get-MgUser truy xuất sang một tệp?
Bạn có thể xuất thông tin người dùng sang một tệp bằng lệnh ghép ngắn “Export-Csv”. Ví dụ:
Get-MgUser -Filter "jobTitle eq 'Director'" | Export-Csv -Path "C:\Temp\Directors.csv" -NoTypeInformationLàm cách nào để truy xuất danh sách tất cả người dùng trong tổ chức của tôi bằng Get-MgUser?
Để truy xuất thông tin về tất cả người dùng trong tổ chức của bạn bằng Get-MgUser, bạn có thể sử dụng tham số -All. Ví dụ: Get-MgUser -All
Làm cách nào để tìm kiếm một người dùng cụ thể bằng Get-MgUser?
Để tìm kiếm một người dùng cụ thể bằng Get-MgUser, bạn có thể sử dụng tham số -Search để chỉ định truy vấn tìm kiếm. Ví dụ: để tìm kiếm tất cả người dùng có tên hiển thị chứa “sam”, bạn có thể sử dụng lệnh sau:
Get-MgUser -All -Search "DisplayName:sam" -ConsistencyLevel eventual



