Messagebox - Variable nicht gespeichert

Guten Morgen zusammen,

ich bin leicht am verzweifeln. Ich habe mir eine Messagebox gemacht in der wegen einem ausstehenden Neustart gewarnt wird.
Bei Klick auf nein soll eine Variable gespeichert werden. Dies passiert aber nicht. Der Switch funktioniert wohl,
da wenn ich write-host nutze alles richtig ausgegeben wird. Hier erstmal der Code.

Dieser ist für die Messagebox.
Hier der für die Anzeige der Messagebox:

Beide Varianten $Day2 = 'OK' als auch Set-Variable -Name "Day2" -Value 'OK' funktionieren nicht.
Hat vielleicht einer ne Idee warum das so ist?

Danke schonmal und Viele Grüße
gfritz74

Content-Key: 1258073130

Url: https://administrator.de/contentid/1258073130

Ausgedruckt am: 25.09.2021 um 16:09 Uhr

Mitglied: gfritz74
Lösung gfritz74 14.09.2021 um 09:15:53 Uhr
Goto Top
Hat sich erledigt. Ich musste die Variablen als Global setzen. Jetzt gehts.
Mitglied: BirdyB
BirdyB 14.09.2021 um 09:25:56 Uhr
Goto Top
Zitat von @gfritz74:

Hat sich erledigt. Ich musste die Variablen als Global setzen. Jetzt gehts.

Und das ist die schlechteste Lösung… Normalerweise arbeitet man bei Funktionen mit Rückgabewerten.
Mitglied: gfritz74
gfritz74 14.09.2021 um 09:42:57 Uhr
Goto Top
Ok. Und wie mach ich das?
Wäre echt nett wenn du mir da helfen würdest.
Mitglied: BirdyB
BirdyB 14.09.2021 um 10:11:08 Uhr
Goto Top
Zitat von @gfritz74:
Dieser ist für die Messagebox.
Hier der für die Anzeige der Messagebox:
Du verwendest einfach in der Funktion das Return-Statement und gibst damit die Variable $Day2 zurück (siehe oben)
Dann weist du den Rückgabewert einfach deiner Variable zu:

Und dann arbeitest du damit weiter... Siehe auch hier: https://theitbros.com/powershell-function-return/

VG
Mitglied: gfritz74
gfritz74 14.09.2021 um 10:35:27 Uhr
Goto Top
Klasse. Vielen Dank.
Will jetzt nicht nerven aber ich hätte noch 2 andere Dinge.
Es wäre echt klasse wenn Du da mal drüber schauen kannst.
Zum einem kommt noch eine Messagebox mit OkOnly.


Wie kann ich den Ok Klick abfangen und auch in einer Variable mit "OK" bei Klick ansonsten $null speichern?

Zum anderen mach ich eine Prüfung mit 2 Bedingungen die aber sehr lang wird.
Hintergrund ist das geprüft wird wann die Rechner neu gestartet worden sind.
Es soll also zum Beispiel Geprüft ob:
msgBox1 = OK und und $global:DayValue.Days = 2 usw. siehe Code


Wenn ich den Befehl alleine für 50 Tage schreibe wird da ja ellenlang.
Gibt ess ne Chance das zu verkürzen?

Muss aber auch ein Lob aussprechen für das Forum hier.
Hier wird einem sehr gut und schnell geholfen. Hat man echt selten.

Viele Grüße
gfritz74
Mitglied: BirdyB
BirdyB 14.09.2021 um 10:43:45 Uhr
Goto Top
Moin,

Zu Frage 1:

Wenn du den Rückgabewert aus Zeile 22 auch weiter zurückgeben würdest, könntest du dir anschauen, was dort hinterlegt ist. Da findet sich bestimmt etwas...

zu Frage 2:
Wie wäre es mit einem:
?

VG
Mitglied: gfritz74
gfritz74 14.09.2021 um 10:55:04 Uhr
Goto Top
Hi,

zu 1 : das schau ich mir an.
zu2 : hatte ich auch gedacht. das geht aber nicht da 3 verschiedene Messageboxen aufkommen.
es muss also genau mit -eq geprüft werden.
$msgBox1 -eq "OK" -eq 1 -and $msgBox1 -eq "OK"-eq 4 -and $msgBox1 -eq "OK" eq - 7 usw. Box 1
$msgBox2 -eq "OK" -eq 2 -and $msgBox2 -eq "OK"-eq 5 -and $msgBox2 -eq "OK"-eq - 8 usw. Box 2
$msgBox3 -eq "OK" -eq 3 -and $msgBox3 -eq "OK"-eq 3 -and $msgBox3 -eq "OK"-eq - 9 usw. Box 3

Danke dir schonmal
Mitglied: BirdyB
BirdyB 14.09.2021 um 11:04:24 Uhr
Goto Top
Sorry, aber jetzt verstehe ich garnichts mehr...
Was soll dein Script denn genau tun? Ich habe bisher nur irgendetwas von letztem Reboot und Messagebox verstanden.
Mitglied: gfritz74
gfritz74 14.09.2021 um 11:15:48 Uhr
Goto Top
Ok prüft ob ein Update einen Neustart benötigt.
Falls Ja wird das aktuelle Datum und der letzte Neustart in eine Text Datei geschrieben.
Daraus errechne ich die Differenz.
Und anhand dessen sollen die Nachrichten angezeigt werden. Jetzt wird's kompliziert.
Bei Tag 1 wird die Box 1 angezeigt,
bei 2 die Box2,
und bei 3 die Box3. Diese ist ein Timer der nicht zu schließen ist.
Wenn also der Rechner also bei mehr als 3 Tagen nicht neu gestartet worden ist, soll der Anwender der sich nach z. Beispiel 20 Tagen einloggt, nicht direkt die Box 3 bekommen, sondern ab da sollen die 3 Tage laufen. Am Tag 1die Box 1. Am Nächsten Tag die Box 2 und erst am 3 Tag die dritte.

Das kriege ich bisher mit -eq hin.
Mitglied: gfritz74
Lösung gfritz74 14.09.2021 um 12:00:06 Uhr
Goto Top
Habs geschafft.
Habe mir alle Tage in 3 Arrays geschrieben und die Prüfung mit -contains gemacht.
Jetzt läuft es so wie es soll.
Fehlt mir nur noch das mit dem Button. Aber das kriege ich auch noch hin
Heiß diskutierte Beiträge
general
DSL-Modems am F-Buchse statt N-Buchse - warum?Windows10GegnerVor 22 StundenAllgemeinDSL, VDSL19 Kommentare

Hallo zusammen, es sind jetzt hier die Fernmeldetechniker gefragt. Normalerweise wird ja ein DSL-Modem mit der F-Buchse einer TAE-NFN-Dose verbunden. Was ist der genau Grund ...

general
Außergewöhnliche hohe Spamaktivitäten und Angriffe per E-Mail gelöst beidermachtvongreyscullVor 1 TagAllgemeinE-Mail5 Kommentare

Tach Kollegen, liegt das an den bevorstehenden Wahlen? Ich beobachte seit Tagen auf unserer Firewall, dass wir massiven Spamwellen ausgesetzt sind. Bisher kommt zum Glück ...

question
Einrichtung Unify Security Gateway gelöst markaurelVor 18 StundenFrageLAN, WAN, Wireless9 Kommentare

Hallo zusammen und bitte um eure Hilfe! Wie der Titel schon sagt Folgende Situation: Ich hab ein Netzwerk in folgenden IP-Bereich: 192.168.10.x. Als Gateway dient ...

question
Backup-Server, welcher sich selber sichertludakuVor 1 TagFrageBackup6 Kommentare

Moin Zusammen Stellen wir uns kurz folgendes Konstrukt vor: 1x Hypervisor mit 3 VMs: - DC & Fileserver - Webserver - Acronis Backup-Server Ist es ...

question
Sysprep nachträglich virtualisierenalf008Vor 1 TagFrageVmware6 Kommentare

Hallo, ich habe diverse physikalische Server virtualisiert und später sollten diese in eine neue Domäne aufgenommen werden. Leider habe ich beim Virtualisieren erst später (zu ...

question
Wlanprobleme nach Providerwechsel gelöst amsti70Vor 1 TagFrageRouter & Routing8 Kommentare

Hallo alle zusammen! Ich bin neu auf dieser Seite und komme gleich mit einem Problem. Habe jetzt von A1 auf Drei Festnetz gewechselt. Mein System ...

question
Exchange Autodiscover ExternredhorseVor 1 TagFrageExchange Server5 Kommentare

Guten Morgen, bei Heise wird aktuell über eine Problematik berichtet, bei der es bei einem nicht nach Microsoft-Vorgaben konfiguriertem Autodiscover zu einem Sicherheitsproblem kommt: Konkret ...

question
Microsoft 365 und Authenticator gelöst pc-schubserVor 1 TagFrageMicrosoft Office10 Kommentare

Hallo zusammen, für einen kleinen Firmenkunden, den ich auch als Admin betreue, habe ich vor einiger Zeit Microsoft 365 Business Standard CSP Lizenzen verkauft. Jetzt ...