Nachricht über Powershell schicken
Hallo zusammen,
und zwar benötige Ich mal eure Hilfe.
Folgende Situation:
Wir haben ein Monitoring Programm worüber wir Powershell-Befehle/Skripte absetzen können an jeden Rechner, soweit so gut. Nun suche Ich nach einer Möglichkeit, den User über ein kommendes Update zu informieren per Popup/Nachricht/whatever. Mir wäre wichtig dass die Nachricht gestaltbar wäre (mehrere Zeilen, mit Logo) und dass diese nicht verschwendet, bis der User sie bestätigt hat.
Probiert habe Ich:
1.
=> Erfüllt den Zweck, optisch aber echt grauenhaft. Jedoch kann man kein Logo einfügen und keine Zeilenumbrüche wie es aussieht.
2. (Vom Internet rauskopiert, das war soziemlich das beste was Ich gefunden hab)
=> Erfüllt den Zweck, Logo kann man einbinden ( Funktioniert aber irg. wie nur über den Buchstaben und nicht über die IP wenns im NLW liegt).
Jedoch ist die Nachricht viel zu kurz da, vielleicht mal 5 Sekunden und alles was über die 2 Zeilen hinausgeht verschwindet und ist nicht lesbar.
Hat da jemand eine Idee wie man das umsetzen kann?
Ziel: Eine sehr gute, lesbare Nachricht mit unserem Firmenlogo drauf die den User vorwarnt dass ein Update zu Zeit XYZ ansteht und wenn das Update durch ist, dass die dann Programm XYZ neustarten sollen.
Danke schonmal!
(Bin kein Programmierer und das eig. mein erster tiefergehender Kontakt mit Powershell. Desto weniger Ich am Skript machen muss desto besser wäre es :D )
und zwar benötige Ich mal eure Hilfe.
Folgende Situation:
Wir haben ein Monitoring Programm worüber wir Powershell-Befehle/Skripte absetzen können an jeden Rechner, soweit so gut. Nun suche Ich nach einer Möglichkeit, den User über ein kommendes Update zu informieren per Popup/Nachricht/whatever. Mir wäre wichtig dass die Nachricht gestaltbar wäre (mehrere Zeilen, mit Logo) und dass diese nicht verschwendet, bis der User sie bestätigt hat.
Probiert habe Ich:
1.
Msg * Sehr geehrte Damen und Herren, ein Update steht an. Bitte......... - Firma XYZ
2. (Vom Internet rauskopiert, das war soziemlich das beste was Ich gefunden hab)
#Specify Launcher App ID
$LauncherID = "{1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\WindowsPowerShell\v1.0\powershell.exe"
#Load Assemblies
[Windows.UI.Notifications.ToastNotificationManager, Windows.UI.Notifications, ContentType = WindowsRuntime] | Out-Null
[Windows.Data.Xml.Dom.XmlDocument, Windows.Data.Xml.Dom.XmlDocument, ContentType = WindowsRuntime] | Out-Null
#Build XML Template
[xml]$ToastTemplate = @"
<toast>
<visual>
<binding template="ToastImageAndText03">
<text id="1">Nachricht von Firma XYZ</text>
<text id="2">Wir werden den Server updaten. Bitte Programm XYZ neustarten!
MfG Firma XYZ</text>
#<image id="1" src="Q:\Skript\Firmenlogojpg" />
</binding>
</visual>
</toast>
"@
#Prepare XML
$ToastXml = [Windows.Data.Xml.Dom.XmlDocument]::New()
$ToastXml.LoadXml($ToastTemplate.OuterXml)
#Prepare and Create Toast
$ToastMessage = [Windows.UI.Notifications.ToastNotification]::New($ToastXML)
[Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier($LauncherID).Show($ToastMessage)
=> Erfüllt den Zweck, Logo kann man einbinden ( Funktioniert aber irg. wie nur über den Buchstaben und nicht über die IP wenns im NLW liegt).
Jedoch ist die Nachricht viel zu kurz da, vielleicht mal 5 Sekunden und alles was über die 2 Zeilen hinausgeht verschwindet und ist nicht lesbar.
Hat da jemand eine Idee wie man das umsetzen kann?
Ziel: Eine sehr gute, lesbare Nachricht mit unserem Firmenlogo drauf die den User vorwarnt dass ein Update zu Zeit XYZ ansteht und wenn das Update durch ist, dass die dann Programm XYZ neustarten sollen.
Danke schonmal!
(Bin kein Programmierer und das eig. mein erster tiefergehender Kontakt mit Powershell. Desto weniger Ich am Skript machen muss desto besser wäre es :D )
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 3257672770
Url: https://administrator.de/contentid/3257672770
Ausgedruckt am: 19.11.2024 um 05:11 Uhr
7 Kommentare
Neuester Kommentar
Tach!
Soweit ich das gelesen habe, muss man via GPPs dann die Registry umbauen damit das Toast > 5 Sekunden angezeigt wird.
Ich persönlich würde ich mich für einen Alarm entscheiden mit BurntToast.
Weitere Befehle findest Du hier:
Github BurntToast
Vielleicht hilft es Dir.
VG
Edita hat etwas den Code aufgeräumt und paar Infos ergänzt. Wenn ich Sie nicht hätte ...
Soweit ich das gelesen habe, muss man via GPPs dann die Registry umbauen damit das Toast > 5 Sekunden angezeigt wird.
Ich persönlich würde ich mich für einen Alarm entscheiden mit BurntToast.
### CONFIG ###
$logo = "P:\logo.png"
$ersteUeberschrift = "Eine Nachricht vom IT-Administrator"
$ueberschriftNebenLogo = "Geöffnete Dateien bitte abspeichern!"
$infoText = "Der Server XYZ wird demnächst neugestartet."
### ENDE ###
### AB HIER NICHTS MEHR ÄNDERN ###
$konfig = New-BTHeader -Id 1 -Title $ersteUeberschrift
$psmodule = "BurntToast"
$ProgressPreference = "SilentlyContinue"
Write-Warning "Pruefe notwendige Module .. (BurntToast)"
Write-Host ""
if (Get-Module -ListAvailable -Name $psmodule) {
New-BurntToastNotification -AppLogo $logo -Text $ueberschriftNebenLogo,
$infoText -SnoozeAndDismiss -Sound 'Alarm2' -Header $konfig
}
else {
Write-Host "BurntToast nicht gefunden! Installiere Modul fuer den aktuellen Benutzer..." -F Red
Install-Module -Name BurntToast -Scope CurrentUser -Force
Write-Host ""
cls
Write-Host "erfolgreich installiert!" -F Green
New-BurntToastNotification -AppLogo $logo -Text $ueberschriftNebenLogo,
$infoText -SnoozeAndDismiss -Sound 'Alarm2' -Header $konfig
}
Weitere Befehle findest Du hier:
Github BurntToast
Vielleicht hilft es Dir.
VG
Bin kein Programmierer
This.Edita hat etwas den Code aufgeräumt und paar Infos ergänzt. Wenn ich Sie nicht hätte ...
Heyhu,
habe den Code nochmals etwas vereinfacht
könnte klappen. Habs allerdings noch nicht getestet.
VG
habe den Code nochmals etwas vereinfacht
ist es möglich BurnToast im Hintergrund zu installieren
powershell.exe -ExecutionPolicy Bypass
VG
Moin,
Gruß Thomas
Zitat von @truustyy:
Ich hätte da bloß noch eine Frage und zwar ist es möglich BurnToast im Hintergrund zu installieren, damit die User nix bestätigen müssen?
einfach mit Parameter -Force installieren, so wird die Bestätigungsmeldung unterdrückt. Sofern auch der Installationsprozess unsichtbar stattfinden soll, muss zudem $ProgressPreference auf "SilentlyContinue" gesetzt werden.Ich hätte da bloß noch eine Frage und zwar ist es möglich BurnToast im Hintergrund zu installieren, damit die User nix bestätigen müssen?
$ProgressPreference = "SilentlyContinue"
Install-Module -Scope CurrentUser BurntToast -Force
Gruß Thomas
Zitat von @TK1987:
Moin,
Gruß Thomas
Moin,
Zitat von @truustyy:
Ich hätte da bloß noch eine Frage und zwar ist es möglich BurnToast im Hintergrund zu installieren, damit die User nix bestätigen müssen?
einfach mit Parameter -Force installieren, so wird die Bestätigungsmeldung unterdrückt. Sofern auch der Installationsprozess unsichtbar stattfinden soll, muss zudem $ProgressPreference auf "SilentlyContinue" gesetzt werden.Ich hätte da bloß noch eine Frage und zwar ist es möglich BurnToast im Hintergrund zu installieren, damit die User nix bestätigen müssen?
$ProgressPreference = "SilentlyContinue"
Install-Module -Scope CurrentUser BurntToast -Force
Gruß Thomas
Danke Dir - habe ich im Code oben ergänzt.
VG