管理裝置

Microsoft Entra PowerShell 提供強大的指令檔來管理裝置身份及監控相關事件。 有效的裝置管理對於維護安全、確保合規,以及支持組織內順暢運作至關重要。

使用 Microsoft Entra PowerShell,您可以依需求新增、更新及移除裝置,並取得裝置資訊、查看詳細裝置資料及管理裝置設定。 本文提供使用 Microsoft Entra PowerShell 管理裝置的完整指南。

在本文中,您將學習如何有效使用 Microsoft Entra PowerShell 管理裝置識別碼與設定。 它涵蓋了檢視、過濾、啟用、停用及刪除裝置,以及匯出裝置資料等任務。

先決條件

要用 Microsoft Entra PowerShell 管理裝置,你需要:

檢視和篩選裝置

使用 Microsoft Entra PowerShell 以以下屬性篩選裝置清單:

裝置 ID、顯示名稱、啟用狀態、合規狀態、加入類型、活動時間戳記、作業系統類型、作業系統版本、裝置類型、MDM、自動駕駛、擴充屬性、管理單元、擁有者、製造商、型號及序號。

查看所有裝置

要查看所有裝置,請使用以下 cmdlet:

Connect-Entra -Scopes 'Device.Read.All'  
Get-EntraDevice -All | Select-Object AccountEnabled, DeviceId, OperatingSystem, ApproximateLastSignInDateTime, DisplayName | ft
AccountEnabled DeviceId                             OperatingSystem ApproximateLastSignInDateTime DisplayName
-------------- --------                             --------------- ----------------------------- -----------
          True aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb Windows         10/16/2024 4:53:46 PM         devicesTest2
          True bbbbbbbb-1111-2222-3333-cccccccccccc Windows         10/15/2024 4:11:33 PM         LAPTOP-2222
          True cccccccc-4444-5555-6666-dddddddddddd Windows         9/13/2024 5:46:08 PM          AdminTest
          True dddddddd-5555-6666-7777-eeeeeeeeeeee Windows         10/15/2024 8:28:18 PM         DESKTOP-1111

依 ID 取得裝置

若要依照裝置的 ID 檢索特定裝置,請使用:

Connect-Entra -Scopes 'Device.Read.All'  
Get-EntraDevice -ObjectId 'bbbbbbbb-1111-2222-3333-cccccccccccc'  

DeletedDateTime Id                                   AccountEnabled ApproximateLastSignInDateTime ComplianceExpirationDateTime DeviceCategory DeviceId                             DeviceMetadata DeviceOwnership
--------------- --                                   -------------- ----------------------------- ---------------------------- -------------- --------                             -------------- --------------
                aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb False          10/2/2024 10:26:38 AM                                                     eeeeeeee-5555-6666-7777-ffffffffffff

用顯示名稱取得裝置

要依顯示名稱查找裝置,請使用:

Connect-Entra -Scopes 'Device.Read.All'  
Get-EntraDevice -Filter "startsWith(DisplayName,'Woodgrove')"  
DeletedDateTime Id                                   AccountEnabled ApproximateLastSignInDateTime ComplianceExpirationDateTime DeviceCategory DeviceId                             DeviceMetadata DeviceOwnershi
                                                                                                                                                                                                  p
--------------- --                                   -------------- ----------------------------- ---------------------------- -------------- --------                             -------------- --------------
                aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb True           10/1/2024 4:11:35 PM                                                      gggggggg-6666-7777-8888-hhhhhhhhhhhh
                bbbbbbbb-1111-2222-3333-cccccccccccc False          10/2/2024 10:26:38 AM                                                     hhhhhhhh-7777-8888-9999-iiiiiiiiiiii

此範例示範如何檢索所有顯示名稱以「Woodgrove」開頭的裝置。

取得按加入類型分組的裝置數量

要查詢使用 Microsoft Entra PowerShell 加入你目錄的所有裝置類型,你可以使用 Get-EntraDevice cmdlet 並將結果依屬性TrustType分組。

Connect-Entra -Scopes 'Device.Read.All'  
Get-EntraDevice -All | Group-Object -Property TrustType | Select-Object Name, Count  
  • Get-EntraDevice -All: 會取回你目錄中的所有裝置。
  • Group-Object -Property TrustType:根據 TrustType 屬性將裝置分組,此屬性表示加入類型,例如 Microsoft Entra 已加入 和 混合式 Microsoft Entra 已加入。
  • Select-Object Name, Count: 選擇每個群組名稱(連接類型)及群組中裝置數量。
  • Join type指的是裝置的連接方式,例如 Microsoft Entra joined、Hybrid Microsoft Entra joined 以及其他類型。

此範例示範如何取得每種裝置類型的裝置數量。

Name      Count
----      -----
             14
EntraID      66
ServerAd     18
Workplace   393

列出重複裝置

Connect-Entra -Scopes 'Device.Read.All'  
Get-EntraDevice -All -Select DisplayName, OperatingSystem |
Group-Object DisplayName |
Where-Object { $_.Count -gt 1 } |
Select-Object Name, @{Name = "OperatingSystem"; Expression = { ($_.Group | Select-Object -First 1).OperatingSystem } }, Count | Sort-Object Count -Descending |
Format-Table Name, OperatingSystem, Count -AutoSize 

輸出會依顯示名稱、作業系統和數量列出重複裝置。

Name                       OperatingSystem Count
----                       --------------- -----
iPhone                     iOS               175
samsungSM-S928B            Android            15
woodgrove-win11-client     Windows             2

搜尋裝置

  1. 使用特定裝置擷取 DeviceId

    Connect-Entra -Scopes 'Device.Read.All'  
    Get-EntraDevice -Filter "DeviceId eq 'dddddddd-5555-6666-7777-eeeeeeeeeeee'" | Select-Object Id, AccountEnabled,DeviceId, DisplayName
    

    輸出會根據 DeviceId 搜尋顯示裝置詳細資料。

    Id                                   AccountEnabled DeviceId                             DisplayName
    --                                   -------------- --------                             -----------
    aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb           True dddddddd-5555-6666-7777-eeeeeeeeeeee ADFS Device
    
  2. 列出不合規設備

    Connect-Entra -Scopes 'Device.Read.All'
    Get-EntraDevice -Filter "isCompliant eq false" | Select-Object Id, isCompliant,DeviceId, DisplayName
    

    輸出會列出不符合規範的裝置。

    Id                                   IsCompliant DeviceId                             DisplayName
    --                                   ----------- --------                             -----------
    aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb       False gggggggg-6666-7777-8888-hhhhhhhhhhhh ADFS Device
    bbbbbbbb-1111-2222-3333-cccccccccccc       False hhhhhhhh-7777-8888-9999-iiiiiiiiiiii Woodgrove Device
    
  3. 列出已越獄的裝置

    Connect-Entra -Scopes 'Device.Read.All'
    Get-EntraDevice -All | Where-Object { $_.isRooted -eq $true } | Select-Object Id, IsRooted,DeviceId, DisplayName
    

    輸出會列出已越獄的裝置。

    Id                                   IsRooted DeviceId                             DisplayName   
    --                                   -------- --------                             -----------   
    aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb     True gggggggg-6666-7777-8888-hhhhhhhhhhhh ADFS Device
    
  4. 列出受管理裝置

    Connect-Entra -Scopes 'Device.Read.All'
    Get-EntraDevice -Filter "isManaged eq true" | Select-Object Id, isManaged,DeviceId, DisplayName
    

    輸出會列出受管理裝置。

    Id                                   IsManaged DeviceId                             DisplayName
    --                                   --------- --------                             -----------
    aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb      True gggggggg-6666-7777-8888-hhhhhhhhhhhh ADFS Device
    bbbbbbbb-1111-2222-3333-cccccccccccc      True hhhhhhhh-7777-8888-9999-iiiiiiiiiiii Woodgrove Device
    
  5. 已啟用的裝置清單

    Connect-Entra -Scopes 'Device.Read.All'
    Get-EntraDevice -Filter "accountEnabled eq true" -All | Select-Object Id, AccountEnabled,DeviceId, DisplayName
    

    輸出結果會列出已啟用的裝置。

    Id                                   AccountEnabled DeviceId                             DisplayName
    --                                   -------------- --------                             -----------
    aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb           True gggggggg-6666-7777-8888-hhhhhhhhhhhh ADFS Device
    bbbbbbbb-1111-2222-3333-cccccccccccc           True hhhhhhhh-7777-8888-9999-iiiiiiiiiiii Woodgrove Device
    
  6. 列出特定作業系統與版本的裝置

    Connect-Entra -Scopes 'Device.Read.All'
    Get-EntraDevice -Filter "operatingSystem eq 'Windows Server' and operatingSystemVersion eq '10.0.20348.3091'" | 
        Select-Object Id, AccountEnabled,DeviceId, DisplayName, operatingSystem, operatingSystemVersion | Format-Table -AutoSize
    

    輸出會根據 operatingSystemoperatingSystemVersion 搜尋顯示使用者詳細資料。

    Id                                   AccountEnabled DeviceId                             DisplayName       OperatingSystem  OperatingSystemVersion
    --                                   -------------- --------                             -----------       ---------------  ----------------------
    aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb           True gggggggg-6666-7777-8888-hhhhhhhhhhhh ADFS Device       Windows Server   10.0.20348.3091
    bbbbbbbb-1111-2222-3333-cccccccccccc           True hhhhhhhh-7777-8888-9999-iiiiiiiiiiii Woodgrove Device  Windows Server   10.0.20348.3091
    

啟用或停用 Microsoft Entra 裝置

要啟用或停用裝置,請使用 Set-EntraDevice 指令長並將屬性設定 -AccountEnabledtrue (啟用)或 false (停用)。

Important

  • 要啟用或停用裝置,您必須是 "Intune 管理員" 或 "雲端裝置管理員"。
  • 停用裝置會阻止其透過 Microsoft Entra ID 進行驗證、存取由裝置基礎條件存取保護的資源,以及使用 Windows Hello 企業版 的憑證。
  • 停用裝置會撤銷主要重新整理權杖(PRT)及裝置上的任何重新整理權杖。
  • 印表機無法在 Microsoft Entra ID 中啟用或停用。

要啟用裝置,請執行以下指令碼:

Connect-Entra -Scopes 'Device.ReadWrite.All'  
Set-EntraDevice -ObjectId 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb' -AccountEnabled $true  

刪除 Microsoft Entra 裝置

為了維持乾淨且安全的環境,請刪除不再使用的裝置。 如果裝置由其他系統管理,例如 Microsoft Intune,請務必先將其抹除或淘汰,再刪除。 在刪除裝置之前,請參閱如何管理過時裝置

Important

  • 您必須是雲端裝置管理員、Intune 管理員或 Windows 365 管理員才能刪除裝置。
  • 印表機在從 通用列印 刪除前無法被刪除。
  • 在從 Intune 被刪除之前,Windows Autopilot 裝置無法被刪除。
  • 刪除裝置:
    • 防止其存取您的 Microsoft Entra 資源。
    • 移除所有附加於裝置上的細節,例如 Windows 裝置的 BitLocker 金鑰。
    • 這是一項無法恢復的活動。 除非必要,否則不建議使用。
Connect-Entra -Scopes 'Device.ReadWrite.All'  
$Device = Get-EntraDevice -Filter "DisplayName eq 'Woodgrove Desktop'"  
Remove-EntraDevice -ObjectId $Device.ObjectId  

匯出裝置

雲端裝置管理員和 Intune 管理員可以匯出 CSV 檔案,列出裝置。 你可以套用篩選器來精細裝置清單。 若未使用濾波器,所有裝置皆包含在內。 匯出任務可能需要長達一小時才能完成,視你的選擇而定。 如果匯出任務超過 1 小時,就會失敗,且沒有檔案輸出。

匯出的清單包含這些裝置身分識別屬性:

displayName,accountEnabled,operatingSystem,operatingSystemVersion,joinType (trustType),registeredOwners,userNames,mdmDisplayName,isCompliant,registrationTime,approximateLastSignInDateTime,deviceId,isManaged,objectId,profileType,systemLabels,model

下列篩選條件可套用到匯出工作:

  • 已啟用狀態
  • 符合規範的狀態
  • 聯結類型
  • 活動時間戳記
  • OS 類型
  • 裝置類型

匯出所有裝置

要取得所有裝置並將資料儲存為 CSV 檔案,請使用以下 cmdlet:

Get-EntraDevice -All `
| Select-Object -Property AccountEnabled, DeviceId, OperatingSystem, OperatingSystemVersion, DisplayName, TrustType, ApproximateLastSignInDateTime `
| Export-Csv "$env:UserProfile\Downloads\deviceList.csv" -NoTypeInformation 

請根據您的環境,將 $env:UserProfile 替換為您想要儲存檔案的路徑。 這個範例會直接將 CSV 檔案儲存到你的 Downloads 資料夾。

[管理過時裝置][陳舊裝置]