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

[玩转系统] 使用 Microsoft Intune 执行批量按需修复

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

使用 Microsoft Intune 执行批量按需修复


Microsoft Intune 和脚本包(包含 2 个 PowerShell 脚本)中的补救措施可以检测问题并按定义的计划进行补救。然后,Intune 提供有关所有设备的修复情况的报告,建议是否检测到问题以及问题是否已得到修复。

补救措施的任何问题是它们按计划运行,并且它们不会动态地对问题做出反应,仅在配置为运行时才做出反应。因此,最终用户有可能在问题被自动修复之前发现问题。在这种情况下,要求用户等待修复任务运行可能会很不方便。相反,最好按需运行修复任务。

按需修复任务当前一次只能在一台计算机上运行。在本教程中,我将向您展示如何使用 Microsoft Graph PowerShell 在使用 Intune 管理的多个或所有设备上批量运行修复任务。

要求

要使用 PowerShell 运行按需修复任务,我们将使用 Microsoft Graph PowerShell SDK,特别是以下模块:

  • Microsoft.Graph.Authentication
  • Microsoft.Graph.Beta.DeviceManagement

全局管理员用户还需要能够同意以下权限:

  • DeviceManagementConfiguration.Read.All(读取修复包)
  • DeviceManagementManagedDevices.Read.All(读取设备信息)
  • DeviceManagementManagedDevices.PrivilegedOperations.All(启动修复任务)

有关安装 Microsoft Graph PowerShell 模块和查找可用权限的更多信息,请参阅我的帖子:

  • 如何安装 Microsoft Graph PowerShell 模块 (ourcloudnetwork.com)
  • 如何查找 Microsoft Graph PowerShell (ourcloudnetwork.com) 的权限

批量 Intune 按需修复脚本

该脚本相当简单。简而言之,它将根据您定义的过滤器收集所有目标设备,然后在循环中的每个设备上启动修复包,这也是您需要定义的。

<#
    Script by Daniel Bradley
    https://www.linkedin.com/in/danielbradley2/   
    https://ourcloudnetwork.com/
#>

###EDIT THESE VALUES###
$ScriptPackageName = "" #Define the exact remediation package name here
$DeviceFilter = "" #Define the exact device filter here, for example: OwnerType eq 'Company'

#Connect to Microsoft Graph
Connect-MgGraph -scopes DeviceManagementConfiguration.Read.All, DeviceManagementManagedDevices.Read.All, DeviceManagementManagedDevices.PrivilegedOperations.All

#Get Script package
$RemediationPackage = Get-MgBetaDeviceManagementDeviceHealthScript -Filter "DisplayName eq '$ScriptPackageName'"

#Create request body
$body = @{
    "ScriptPolicyId" = "$($RemediationPackage.id)"
} | ConvertTo-Json

#Store target devices
$TargetDevices = Get-MgBetaDeviceManagementManagedDevice -filter "$DeviceFilter"

#Loop through each device
Foreach ($device in $TargetDevices){
    Write-Host "Initiating remediation package $ScriptPackageName for $($Device.DeviceName)" -ForegroundColor Cyan
    $uri = "https://graph.microsoft.com/beta/deviceManagement/managedDevices('$($device.id)')/initiateOnDemandProactiveRemediation"
    Invoke-MgGraphRequest -Uri $uri -Method POST -Body $body -ContentType  "application/json"
}

包起来

创建此脚本是为了帮助加快修复包的初始部署。在大多数情况下,修复包不会旨在解决眼前的问题,而是帮助维护 Intune 中无法直接提供受支持的设置的设备的配置和合规性。不幸的是,由于时间紧迫,可能需要加快部署速度,特别是在现有修复包的性质已被修改的情况下,此脚本有助于实现该要求。

我绝不是说这个脚本已经可以用于生产,而是它是一个概念证明,您应该在实施之前进行测试和修改。

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

取消回复欢迎 发表评论:

关灯