当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何使用 PowerShell 在 Intune 中同步批量设备

作者:精品下载站 日期:2024-12-14 06:47:15 浏览:16 分类:玩电脑

如何使用 PowerShell 在 Intune 中同步批量设备


Microsoft Intune 中的批量设备功能是跨 Intune 中注册的多个设备执行单个操作的便捷方法。然而,使用管理门户的一个问题是没有“添加设备”选项,或者至少没有使用现有的设备过滤器,您需要手动选择每台计算机。

在本教程中,我将向您展示如何在租户中的所有注册设备上执行批量设备同步(包括其他操作)。

先决条件

要完成本教程中的必要操作,您必须分配 Intune 管理员 角色,或者也可以使用全局管理员 帐户。

您还必须确保已安装 Microsoft Graph PowerShell SDK,您可以按照我的教程完成以下步骤:如何安装 Microsoft Graph PowerShell 模块

从 Intune 门户启动批量设备同步

Intune 管理门户也提供批量设备操作功能。请按照以下步骤使用管理门户启动批量设备同步。

1. 使用您的 Intune 管理员或全局管理员帐户登录 https://endpoint.microsoft.com/。

2. 从左侧菜单中选择设备

[玩转系统] 如何使用 PowerShell 在 Intune 中同步批量设备

2. 选择所有设备

[玩转系统] 如何使用 PowerShell 在 Intune 中同步批量设备

3. 选择批量设备操作

[玩转系统] 如何使用 PowerShell 在 Intune 中同步批量设备

4. 从下拉列表中选择操作系统类型和设备操作,然后单击下一步。我选择了Windows同步

[玩转系统] 如何使用 PowerShell 在 Intune 中同步批量设备

5. 单击选择要包含的设备并添加您想要操作的所有设备。

[玩转系统] 如何使用 PowerShell 在 Intune 中同步批量设备

6. 最后,单击下一步,然后单击创建

单击创建后,您将看到右上角出现一条通知,表明同步请求已成功。

[玩转系统] 如何使用 PowerShell 在 Intune 中同步批量设备

在 Intune 中与 PowerShell 同步批量设备

让我们看看如何使用 PowerShell 以编程方式自动向所有 Windows 设备发送同步请求。

下面我演示了两种实现相同结果的方法。

方法 1:使用 Sync-MgDeviceManagementManagedDevice

下面我使用了 Sync-MgDeviceManagementMangedDevice cmdlet 和循环来循环访问每个设备并发送同步请求。

Import-Module Microsoft.Graph.DeviceManagement.Actions

Select-MgProfile -Name beta

Connect-Mggraph -scopes DeviceManagementManagedDevices.ReadWrite.All, DeviceManagementManagedDevices.PrivilegedOperations.All

$alldevices = get-MgDeviceManagementManagedDevice | Where-Object {$_.OperatingSystem -eq "Windows"}

Foreach ($device in $alldevices) {
    Sync-MgDeviceManagementManagedDevice -ManagedDeviceId $device.id
    write-host "Sending device sync request to" $device.DeviceName -ForegroundColor yellow
}

方法2:使用Invoke-MgGraphRequest

在这里,我使用 Invoke-MgGraphRequest 向 Microsoft Graph 发出 POST 请求,并提供同步我们设备所需的信息。我首先循环访问每个设备并收集 ID,然后将此信息格式化为有效负载并发送请求。

Import-Module Microsoft.Graph.DeviceManagement.Enrolment

Select-MgProfile -Name beta

Connect-Mggraph -scopes DeviceManagementManagedDevices.ReadWrite.All

$alldevices = get-MgDeviceManagementManagedDevice | Where-Object {$_.OperatingSystem -eq "Windows"}
$SyncDevices = @()

Foreach ($device in $alldevices) {
$string = $null
$string = @"
"$($device.id)"
"@
$SyncDevices = $SyncDevices + $string
}

$deviceString = $SyncDevices -join ","

$uri = "https://graph.microsoft.com/beta/deviceManagement/managedDevices/executeAction"

$json = @{
action = "syncDevice"
platform = "windows"
deviceIds = @("string")
realAction = "syncDevice"
actionName = "syncDevice"
} | ConvertTo-Json

$json = $json.Replace('"string"', $deviceString)

Invoke-MgGraphRequest -Uri $uri -Body $json -method POST -ContentType "Application/Json"

对于每个脚本,如果您想要修改要定位的设备,您可以修改 Where-Object 过滤器以包含您选择的过滤器。

其他行为

发送同步请求并不是可以使用 PowerShell 执行的唯一操作,其他批量设备操作包括:

  • 删除 - 删除设备。
  • 退役 - 下次签入时删除设备并在设备上留下个人数据。
  • 收集诊断 - 发起诊断日志收集请求。
  • 擦除 - 擦除整个设备。
  • 自动驾驶仪重置 - 启动自动驾驶仪设备重置。
  • 重新启动 - 重新启动设备。
  • 重命名 - 重命名设备。

您可以修改方法 2 中的脚本,通过替换 actionrealAction actionName 字段,将上述操作发送到您的设备。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯