2016-09-06 54 views
1

次のpowershellスクリプトは通知を正常に作成しますが、少しポップアップした後は通知センターに表示されず、通知センターに表示されませんそれを却下する?powershellスクリプトはWindows 10の通知を作成し、ポップアップ後に消えます

param([String]$prodName)  
[Windows.UI.Notifications.ToastNotificationManager, Windows.UI.Notifications, ContentType = WindowsRuntime] > $null 
[Windows.UI.Notifications.ToastNotification, Windows.UI.Notifications, ContentType = WindowsRuntime] > $null 
[Windows.Data.Xml.Dom.XmlDocument, Windows.Data.Xml.Dom.XmlDocument, ContentType = WindowsRuntime] > $null 

$ToastTemplate = ' 
<toast launch="app-defined-string"> 
    <visual> 
     <binding template="ToastGeneric"> 
      <text>'+$prodName+'</text> 
     </binding> 
    </visual> 
</toast>' 

Write-Output $ToastTemplate; 

$currTime = (Get-Date).AddSeconds(10); 
"currTime : " + $currTime 

$xml = New-Object Windows.Data.Xml.Dom.XmlDocument 
$xml.LoadXml($toastXml.OuterXml) 

$schedNotification = New-Object Windows.UI.Notifications.ToastNotification($xml) 
$schedNotification.SuppressPopup = $True 
$notifier = [Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier($prodName) 
$notifier.Show($schedNotification) 

$schedNotification = New-Object Windows.UI.Notifications.ScheduledToastNotification($xml, $currTime) 
$notifier.AddToSchedule($schedNotification) 

答えて

0

あなたはこのようなあなたの通知を表示する場合: "PowerShellAppId" という名前の新しいアプリをそこに登録する必要があり、あなたの "設定\システム\通知&アクション" に続いて

CreateToastNotifier("PowerShellAppId") 

編集し、[アクションセンターで通知を表示する]オプションを選択します。スクリプトを再実行すると、通知パネルにメッセージが残るはずです。あなたがのAppIDとして$prodNameを持っているあなたの例では


。したがって、毎回異なるprodNameでスクリプトを実行すると、Windowsはそれを別個のエントリとして登録し、レジストリフラグ(「アクションセンターで通知を表示する」)を再度設定する必要があります。あなたはこのようにPowerShellを使用してそれを行うことができます

Set-ItemProperty "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Notifications\Settings\$prodName" -Name "ShowInActionCenter" -Type Dword -Value "1" 

は物事を単純化するために、NotificationManagerのようなものを一定のアプリ名を使用することを検討してください。

関連する問題