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

如何将Node+TypeScript开发的REST API与SCCM集成供ServiceNow调用?

解决方案:自建Node/TS API集成SCCM与ServiceNow实现自主软件部署

一、可行性确认

完全可以实现你需要的场景:通过自建API衔接SCCM和ServiceNow,让员工在ServiceNow自主选择免费软件并触发SCCM推送安装。

二、SCCM与自建API的集成方式

SCCM提供两种主流方式供外部系统调用,你的Node/TS API可以任选一种对接:

  • CM REST API(官方推荐)
    1. 先在SCCM控制台启用CM REST API:进入「Administration > Site Configuration > Sites」,选中站点后在「Site Properties > Ports」里开启REST API端口(默认443)。
    2. 用SCCM服务账户(需具备软件包读取、应用部署、集合管理权限)在你的API中调用CM REST接口:
      • 获取免费软件列表:调用GET /AdminService/v1/SMS_Application,通过过滤条件(比如自定义属性IsFreeSoftware=true)筛选出免费授权的软件。
      • 触发软件部署:调用POST /AdminService/v1/SMS_Application({AppID})/AdminService.Deploy,传递目标设备ID/集合ID、部署设置(比如允许用户安装、无需审批)。
  • PowerShell脚本调用
    如果CM REST API无法满足特定需求,可在你的Node API中通过child_process模块执行SCCM PowerShell cmdlets:
    • 示例代码片段:
      import { exec } from 'child_process';
      
      // 获取免费软件列表
      exec('Get-CMApplication -Fast | Where-Object {$_.CustomProperty1 -eq "Free"}', {
        env: { ...process.env, PSModulePath: 'SCCM模块路径' }
      }, (error, stdout) => {
        if (error) throw error;
        const apps = JSON.parse(stdout);
        // 处理软件列表
      });
      
      // 触发部署到指定设备
      exec(`New-CMApplicationDeployment -ApplicationName "软件名" -CollectionName "单台设备临时集合" -AvailableDateTime (Get-Date) -UserNotification DisplayAll`, (error) => {
        if (error) throw error;
        // 部署成功逻辑
      });
      
    注意:需在API服务器上安装SCCM控制台或远程管理工具,确保PowerShell能调用SCCM cmdlets。

三、ServiceNow侧配置(基于Start集成中心)

  1. 创建自定义UI页面/表单:在ServiceNow中新建一个面向员工的自助页面,添加「免费软件」下拉列表,下拉列表的数据源配置为调用你的自建API,实时拉取免费软件列表。
  2. 配置REST消息集成:在Start集成中心创建新的REST集成,填写你的API地址、认证方式(比如API密钥、OAuth2),关联表单的「提交」事件。当用户选择软件提交后,ServiceNow自动向你的API发送请求,携带用户ID、设备名称/ID、选中的软件ID等信息。
  3. 状态同步:在ServiceNow中添加状态字段,通过定时调用你的API查询SCCM部署进度,更新给用户。

四、自建API的核心逻辑

  1. 请求校验:接收ServiceNow的请求后,先验证请求合法性(比如API密钥校验),并确认用户设备已在SCCM中注册。
  2. 软件权限校验:调用SCCM接口确认该软件为免费授权,避免非法软件部署。
  3. 触发SCCM部署:根据用户设备信息,将设备添加到临时部署集合(或直接指定单台设备),调用SCCM接口触发安装任务。
  4. 结果反馈:向ServiceNow返回部署请求的状态(成功/失败),并提供后续查询部署进度的接口。

五、关键注意事项

  • 权限管控:严格限制SCCM服务账户的权限,仅授予必要的软件部署、集合管理权限;ServiceNow调用API需通过认证,禁止匿名访问。
  • 错误处理:捕获SCCM接口调用失败、设备未注册、软件不存在等异常,返回结构化错误信息给ServiceNow,方便用户理解问题。
  • 部署状态跟踪:定期轮询SCCM的部署状态接口,同步到ServiceNow,让员工能看到安装进度(比如「部署中」「已完成」「失败」)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 13:27:53