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

PowerShell无法触发Windows通知及LoadXml报错问题求助

错误根因

  • 错误代码0xC00CE558属于XML格式无效错误,你代码里的逻辑错误是:你已经将$ToastTemplate变量通过here-string赋值为纯字符串格式的XML内容,调用LoadXml时却错误引用了只有XML对象才有的OuterXml属性,字符串不存在该属性,传入的实际是空值导致解析失败。
  • 第一段代码运行无报错不弹通知,大概率是没有使用合法的应用标识符,或者系统版本不兼容旧版Toast模板。

修复方案

直接修改代码中LoadXml的入参,同时补充必要的运行时加载逻辑,修复后的可用代码如下:

function Test-ToastNotification {
    # 加载WinRT运行时依赖
    Add-Type -AssemblyName System.Runtime.WindowsRuntime
    $null = [Windows.UI.Notifications.ToastNotificationManager, Windows.UI.Notifications, ContentType = WindowsRuntime]
    $null = [Windows.Data.Xml.Dom.XmlDocument, Windows.Data.Xml.Dom, ContentType = WindowsRuntime]

    # 使用PowerShell合法应用ID
    $appId = 'Windows PowerShell'

    # 自定义Toast内容XML
    $ToastXmlContent = @"
<toast launch="app-defined-string">
  <visual>
    <binding template="ToastGeneric">
      <text>预防用眼疲劳</text>
      <text>休息20秒</text>
    </binding>
  </visual>
</toast>
"@

    # 加载XML
    $ToastXml = New-Object -TypeName Windows.Data.Xml.Dom.XmlDocument
    $ToastXml.LoadXml($ToastXmlContent)

    # 发送通知
    $notifier = [Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier($appId)
    $notification = New-Object -TypeName Windows.UI.Notifications.ToastNotification($ToastXml)
    $notifier.Show($notification)
}

# 调用测试
Test-ToastNotification

注意事项

  • 仅支持Windows 10 1709及以上版本、Windows 11系统使用
  • 需确保系统设置中「Windows PowerShell」的通知权限已开启,且专注助手处于关闭状态
  • 若使用PowerShell 7+,将$appId改为对应版本的应用标识符即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 10:54:01