powershell не удается найти тип [Windows.UI.Notification]

#powershell

#powershell

Вопрос:

Я пытаюсь сгенерировать уведомление Windows 10 с помощью powershell. Код выглядит следующим образом:

 function Show-Notification {
    [cmdletbinding()]
    Param (
        [string]
        $ToastTitle,
        [string]
        [parameter(ValueFromPipeline)]
        $ToastText
    )

    [Windows.UI.Notifications.ToastNotificationManager, Windows.UI.Notifications, ContentType = WindowsRuntime] > $null
    $Template = [Windows.UI.Notifications.ToastNotificationManager]::GetTemplateContent([Windows.UI.Notifications.ToastTemplateType]::ToastText02)

    $RawXml = [xml] $Template.GetXml()
    ($RawXml.toast.visual.binding.text|where {$_.id -eq "1"}).AppendChild($RawXml.CreateTextNode($ToastTitle)) > $null
    ($RawXml.toast.visual.binding.text|where {$_.id -eq "2"}).AppendChild($RawXml.CreateTextNode($ToastText)) > $null

    $SerializedXml = New-Object Windows.Data.Xml.Dom.XmlDocument
    $SerializedXml.LoadXml($RawXml.OuterXml)

    $Toast = [Windows.UI.Notifications.ToastNotification]::new($SerializedXml)
    $Toast.Tag = "PowerShell"
    $Toast.Group = "PowerShell"
    $Toast.ExpirationTime = [DateTimeOffset]::Now.AddMinutes(1)

    $Notifier = [Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier("PowerShell")
    $Notifier.Show($Toast);
}
 

Когда я запускаю функцию, она выдает исключение, подобное этому: «Не удается найти тип [Windows.UI.Notificaiotn ….»
Я думаю, что это класс UWP, но почему я не могу получить доступ к этому классу в powershell?

Комментарии:

1. Работает для меня. Для этого вам нужна как минимум Windows 10 сборки 10240 (я использую версию 2004, сборка 19041)

2. Он работает на моем компьютере с Windows 10. Можете ли вы попробовать другой компьютер с Windows 10?

3. Какой PS вы используете? Необходимо использовать Windows PowerShell (powershell.exe / 5.1-), а не ядро PowerShell (pwsh.exe / 6.0 ).

4. Да, ядро powershell 7.1 не поддерживает это. Я должен добавить WinRT вручную.

5. @Takiya, не могли бы вы пояснить, что вы подразумеваете под «я должен добавить WinRT вручную»? Является ли это обходным путем для работы под PS 7.1? Спасибо.