PowerShell Powershell - ServiceNotification oder DefaultDesktopOnly

Captium

Cadet 4th Year
Registriert
Apr. 2017
Beiträge
81
Hallo zusammen ,

wir haben ein Remote monitoring and management Tool mit welchen wir Geräte verwalten können, sowie über PS-Skripte direkt auf den Rechnern pushen können.

Ich will bevor eine installation ansteht den User warnen mit einem kleinen Windows Form Fenster:
PowerShell:
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
# [Windows.Forms.MessageBoxOptions]::ServiceNotification --> Das hat leider nicht geklappt
$objForm = New-Object System.Windows.Forms.Form
$objForm.Size = New-Object System.Drawing.Size(300,300)
$objForm.BackgroundImageLayout = 2
$objForm.BackgroundImage =[System.Drawing.Image]::FromFile('C:\Logo_180x180px_facebook.png')
$objForm.StartPosition = "CenterScreen"
$objForm.Text = "Test"

$objLabel = New-Object System.Windows.Forms.Label
$objLabel.Location = New-Object System.Drawing.Size(1,1)
$objLabel.Size = New-Object System.Drawing.Size(300,40)
$objLabel.Text = "Teams wird installiert"
$objForm.Controls.Add($objLabel)
[void] $objForm.ShowDialog()

Lokal ausgeführt funkt es tip top, jedoch per RMM ausgeführt bekomme ich folgende Fehlermeldung:
PowerShell:
Ausnahme beim Aufrufen von "ShowDialog" mit 0 Argument(en):  "Das Anzeigen eines modalen Dialogfelds oder eines
Formulars ist ein ungültiger Vorgang, wenn die Anwendung nicht im UserInteractive-Modus ausgeführt wird. Geben Sie das
Format ServiceNotification oder DefaultDesktopOnly an, um Benachrichtigungen einer Dienstanwendung anzuzeigen."
In C:\ProgramData\CentraStage\Packages\416b85f5-ec50-4dd3-bed9-79cf2ec7db10#\command.ps1:17 Zeichen:1
+ [void] $objForm.ShowDialog()
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : InvalidOperationException

Ich habe etwas rumgegoogelt, aber ich finde bzw. es ist nichts, auch wenn funktioniert es nicht.

Wenn mir jemand helfen kann wäre das Mega.
Beste Grüße
 
kannst du dir da was abgucken?: https://gallery.technet.microsoft.com/scriptcenter/Send-NetMessage-Net-Send-0459d235
Alternativ quasi das alte "NET SEND" per Powershell
PowerShell:
$name = read-host "Enter computer name "
$msg = read-host "Enter your message "
Invoke-WmiMethod -Path Win32_Process -Name Create -ArgumentList "msg * $msg" -ComputerName $name

Ach so, ich vermute, dass dein eigentliches Problem nicht mit RMM zusammenhängt, sondern dass du keine Forms in einer fremden Session (ist ja wohl ein anderer User auf dem Remote-PC) ausführen kannst.
 
Die Powershell läuft im "NonInteractive" Modus da sind Userinteraktionen nicht möglich.
 
Ich stelle mir hier sowieso die Frage, warum du sowas nicht im Visual Studio mit z.B. C# machst. Da kannst dir dein UI zusammenklicken und musst es net Mühsam ausprogrammieren und den ganzen Käse wie das Laden der Assemblies per Reflection kannst du dir dann auch sparen.

greetz
hroessler
 
Streß sparen und die Warnung in einen eigenen Prozeß auslagern und dem eigentlichen Vorgang vorschalten. :)

Und bedenken, daß "remote" weder Benutzerinteraktion noch -Präsentation möglich ist. Die Remote-Session kommt auf dem Ziel-PC dazu - sie verbindet sich NICHT mit einer bereits angemeldeten Sitzung. Show() oder ShowDialog() funktionieren - völlig fehlerfrei -- aber sie zeichen die Form auf eine Oberfläche, die niemand zu sehen bekommt.

Entsprechend auch die zitierte Meldung oben. Per Servicenotification kann man den Nutzer noch informieren - dann gibts einen Balloon Tip und/oder eine Nachricht in der Notification-Leiste. Die ist dann delegiert. Interaktion ist aber dennoch nicht möglich: der Benutzer am PC kann nicht mit dem Serviceprozeß interagieren, er kann nur in einem neuen Prozeß etwas anderes tun.

Wenn ihr bereits ein Kommunikationsframework habt, dann nutz das. Evtl reicht auch eine automatische Mail. Ist definitiv unkomplizierter, als irgendwie sessionübergreifend mit jemandem kommunizieren zu wollen.
 

Ähnliche Themen

Zurück
Oben