You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Intune定时自动注销用户脚本运行异常问题求助

解决Intune Remediation脚本未按预设时间执行的问题

首先明确:Intune的Proactive Remediations脚本本身不是定时任务,它的执行触发依赖于设备的合规性评估周期(默认90分钟到24小时随机偏移),所以会出现随机执行的情况——这是设计特性,不是故障。要实现指定时间注销用户,得换正确的实现方式,以下是几种可行方案:

方案一:本地任务计划 + Intune PowerShell脚本部署

这是最精准的方式,直接在设备上创建定时任务,摆脱Intune评估周期的限制:

  • 编写核心注销脚本(示例逻辑,可根据需求调整):
    # 获取所有在线用户会话并注销
    $activeSessions = quser | Select-Object -Skip 1 | ForEach-Object {
        $fields = $_ -split '\s+' | Where-Object { $_ -ne '' }
        [PSCustomObject]@{
            Username = $fields[0]
            SessionId = $fields[2]
        }
    }
    foreach ($session in $activeSessions) {
        logoff $session.SessionId
    }
    
  • 编写部署脚本,用来在目标设备上创建定时任务:
    # 创建脚本存放目录(确保SYSTEM权限可访问)
    $scriptPath = "C:\ProgramData\IntuneScripts"
    if (-not (Test-Path $scriptPath)) {
        New-Item -Path $scriptPath -ItemType Directory -Force | Out-Null
    }
    # 复制核心脚本到目标路径
    $logoffScript = Join-Path $scriptPath "LogoffUsers.ps1"
    @"
    # 核心注销脚本内容(粘贴上面的注销代码)
    "@ | Out-File $logoffScript -Encoding utf8
    
    # 创建每日18:00执行的定时任务,以SYSTEM权限运行
    schtasks /create `
        /tn "Intune_Scheduled_Logoff" `
        /tr "powershell.exe -ExecutionPolicy Bypass -File $logoffScript" `
        /sc daily `
        /st 18:00 `
        /ru SYSTEM `
        /f
    
  • 在Intune中创建PowerShell脚本部署策略:
    • 上传部署脚本,设置"运行脚本的账户"为系统
    • 勾选"强制执行脚本签名检查"为否,"运行64位PowerShell"为是
    • 分配到目标设备组,确保设备能接收并执行脚本创建任务计划

方案二:Proactive Remediations脚本添加时间判断逻辑

如果必须使用Proactive Remediations(比如需要结合合规状态监控),可以在脚本中加入时间校验,只有在指定时间窗口内才执行注销:

  • 评估脚本(Detect):始终返回"非合规",确保触发 remediation
    # 触发remediation脚本执行
    exit 1
    
  • 修复脚本(Remediate):添加时间判断,仅在目标时间窗口内执行注销:
    $targetTime = Get-Date "18:00:00"
    $currentTime = Get-Date
    # 设置15分钟的时间窗口,兼容Intune评估的随机偏移
    $timeWindow = New-TimeSpan -Minutes 15
    
    if ($currentTime -ge $targetTime -and $currentTime -le $targetTime.Add($timeWindow)) {
        # 执行注销逻辑
        $activeSessions = quser | Select-Object -Skip 1 | ForEach-Object {
            $fields = $_ -split '\s+' | Where-Object { $_ -ne '' }
            logoff $fields[2]
        }
    }
    exit 0
    
  • 调整Proactive Remediations的评估频率:在策略设置中,将"评估频率"改为最短的1小时,缩小时间窗口的误差范围

关键注意事项

  • 权限:所有操作必须以SYSTEM权限执行,否则无法注销其他用户或创建系统级任务计划
  • 设备在线性:Intune部署脚本需要设备与服务通信,若设备离线,任务计划创建或脚本执行会延迟
  • 测试验证:先在单台测试设备上验证脚本逻辑和任务计划触发,确认正常后再批量部署

内容的提问来源于stack exchange,提问作者fefe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.02 06:42:29