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

如何将AnyDesk CMD脚本转换为可在Intune运行的PS1脚本?

将获取AnyDesk ID的CMD脚本转换为PowerShell并适配Intune运行的解决方案

先给你能直接用的PowerShell脚本,适配Intune运行场景,同时包含错误处理:

# 指定AnyDesk程序路径
$anyDeskExe = "C:\Program Files (x86)\AnyDeskMSI\AnyDeskMSI.exe"

# 先检查程序是否存在,避免无意义执行
if (Test-Path -Path $anyDeskExe) {
    # 调用AnyDesk获取ID,清理输出内容
    $anyDeskID = & $anyDeskExe --get-id | Out-String | Trim
    
    # 验证获取到的ID是否有效
    if ($anyDeskID) {
        Write-Host "AnyDesk ID: $anyDeskID"
        # 在这里添加你的后续操作,比如:
        # 1. 将ID写入注册表供Intune收集
        # Set-ItemProperty -Path "HKLM:\SOFTWARE\YourCompany\DeviceInfo" -Name "AnyDeskID" -Value $anyDeskID
        # 2. 将ID上传到你的管理平台API
        # Invoke-RestMethod -Uri "https://your-api-endpoint" -Method Post -Body @{DeviceID=$env:COMPUTERNAME; AnyDeskID=$anyDeskID}
    }
    else {
        Write-Error "获取AnyDesk ID失败,命令返回为空"
        exit 1
    }
}
else {
    Write-Error "未找到AnyDesk程序,路径:$anyDeskExe"
    exit 1
}

转换失败的常见原因及解决思路

  • 路径问题:原CMD脚本直接硬编码路径,但Intune部署的设备可能存在AnyDesk未安装、路径变更的情况,PowerShell里加入Test-Path检查能提前定位问题。
  • 输出处理不当:CMD用for/f捕获输出,PowerShell中直接用&调用外部程序,再通过Out-String和Trim清理多余的换行、空格,确保ID是纯净的文本内容,避免后续操作出错。
  • Intune运行环境限制:
    • 执行策略:Intune运行脚本时,要在脚本配置里勾选"绕过执行策略",防止PowerShell阻止脚本运行。
    • 权限:确保脚本以系统身份运行(Intune脚本默认选项),避免普通用户权限无法读取AnyDesk相关信息。
    • 输出可见性:Intune中Write-Host的内容不会在本地显示,如果你需要验证结果,可将ID写入注册表或本地日志文件,再通过Intune的硬件/软件清单收集。
  • 错误处理缺失:原CMD脚本没有错误判断逻辑,PowerShell里加入存在性检查、非空验证,能快速定位是程序未安装还是ID获取失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 12:45:37