Alle Beiträge von Don Matteo

lebt in der Schweiz, ist System Engineer MCP bei A-Enterprise GmbH. Mitglied des UNBLOG Knowledge Network. Author und Blogger zu den Themen, Tutorials für Linux und Open Source.

Visual Basic Script Windows Logon mit MsgBox Nachricht

Visual Basic Script Message-Box Pop-up Fenster

Visual Basic Script erzeugt ein Pop-up Fenster mit Information, durch die MsgBox-Funktion

IT-Administratoren haben die Möglichkeit, den Benutzern bei der Anmeldung am Arbeitsplatz Informationen anzeigen zu lassen.

Es eignet sich zu diesem zweck die Visual Basic Script MsgBox-Funktion. Dazu die folgenden 3 Zeilen in ein Editor (Notepad) einfügen und den Inhalt zum Beispiel als Datei „logon.bat“ speichern.

echo msgbox("Guten Morgen Mitarbeiter. Bitte Kaffee bei mir nehmen. Vielen Dank und ein schönen Tag"),vbInformation ,"Nachricht"> %temp%\msg.vbs
%temp%\msg.vbs
erase %temp%\msg.vbs

Der VB-Script erzeugt ein Pop-up Fenster mit Information, durch die MsgBox-Funktion. Die Datei msg.vbs wird im Pfad %temp% gespeichert, und nach der ausführung wieder gelöscht.

Der Benutzer kann das geöffnete Fenster mit Klick auf OK schliessen.

In der AD Benutzerverwaltung (dsa.msc) bei den Benutzern im Tab Profile bei Logon script den Dateinamen (logon.bat) eintragen.

Bei Windows Domäne die Datei unter \\server\netlogon speichern.

  Die Freigabe netlogon befindet sich auf dem Server unter %systemroot%\SYSVOL\sysvol\[domain]\scripts. Wird bereits ein Logon Script verwendet, können die Code Zeilen in diesen Script eingefügt werden.

Microsoft Visual Basic Scripting Edition

VBScript („Microsoft Visual Basic Scripting Edition“) is an Active Scripting language developed by Microsoft that is modeled on Visual Basic. It allows Microsoft Windows system administrators to generate powerful tools for managing computers without error handling and with subroutines and other advanced programming constructs. It can give the user complete control over many aspects of their computing environment.

VBScript uses the Component Object Model to access elements of the environment within which it is running; for example, the FileSystemObject (FSO) is used to create, read, update and delete files. VBScript has been installed by default in every desktop release of Microsoft Windows since Windows 98; in Windows Server since Windows NT 4.0 Option Pack; and optionally with Windows CE (depending on the device it is installed on).

A VBScript script must be executed within a host environment, of which there are several provided with Microsoft Windows, including: Windows Script Host (WSH), Internet Explorer (IE), and Internet Information Services (IIS). Additionally, the VBScript hosting environment is embeddable in other programs, through technologies such as the Microsoft Script Control (msscript.ocx).

E-Mail in Postfix Queue zu Empfänger umleiten mit postsuper

Postfix E-Mail bleibt in der Warteschlange (queue) hängen, die E-Mail soll nun mit postsuper und postcat an einen anderen Empfänger umgeleitet werden.

Dieses Szenario kann in Erscheinung treten, wenn zum ursprünglichen Empfänger keine E-Mails zugestellt werden können, zum Beispiel mit Erreichen der Mailbox Speicher Limite, oder der Server mit Fehler antwortet.

Hier kann es hilfreich sein, die E-Mail vorübergehend an einen anderen Empfänger zu senden. Der Beitrag zeigt die Schritte, um eine in der Postfix Queue verbleibende E-Mail an einen alternativen Empfänger zu senden.

E-Mail auf on-hold mit postqueue postsuper

Zuerst sucht man in der Postfix Queue die Queue-ID der betreffenden E-Mail, diese man an eine andere Empfänger Adresse senden möchte.

$ postqueue -p | grep 'john@example.org' -B 2

  Der Parameter -B 2 gibt zusätzlich zwei Zeilen vor gesuchter Parse aus.

Die Ausgabe kann in etwa wie die folgende aussehen.

BCD2C3035D31!   37023 Thu Feb 17 08:59:55  suite102@mailings.daydeal.net
        (connect to 12.34.56.78[12.34.56.78]:25: Connection timed out)
                             john@example.org

Hier wurde eine E-Mail an john@example.org gesendet, die ich nun an eine andere Adresse zustellen möchte. Die Queue-ID ist BCD2C3035D31 die wir im weiteren Verlauf benötigen.

Alternativ lassen sich auch alle E-Mails jeder Postfix Queue auflisten.

$ mailq

Um zu verhindern dass Postfix versucht die E-Mail in der Zwischenzeit auszuliefern, setzen wir diese in Wartestellung mit -h auf on hold.

$ postsuper -h BCD2C3035D31
postsuper: BCD2C3035D31: placed on hold
postsuper: Placed on hold: 1 message

  Die E-Mails werden mit on hold nicht gelöscht. Das Ausrufezeichen (!) gibt an, das die Nachricht in Wartestellung ist.

Nun extrahiert man die E-Mail und speichert sie in eine temporäre Datei.

$ postcat -qbh BCD2C3035D31 > /tmp/email.eml

E-Mail aus Postfix Queue senden

Nachdem die E-Mail nun extrahiert ist, kann man diese aus der queue an einen anderen Empfänger senden, mit Postfix postsuper und sendmail.

$ sendmail -f john@example.org mike@domain.org < /tmp/email.eml

Die E-Mail wird von john@example.org an mike@domain.org gesendet.

Die Postfix Deffered Queue nach aufgeschoben E-Mails durchsuchen.

$ postqueue -vp

Nachdem die Zustellung mit postsuper und sendmail an die neue E-Mail-Adresse bestätigt wurde, kann die E-Mail aus der Postfix queue gelöscht werden.

$ postsuper -d BCD2C3035D31
postsuper: BCD2C3035D31: removed
postsuper: Deleted: 1 message

Die temporäre Datei /tmp/email.eml löschen.

$ rm -f /tmp/email.eml

Hilfreiche Postfix Kommandos

  In die E-Mail schauen mit postcat.

$ postcat -vq BCD2C3035D31

E-Mails freigeben, die in die Warteschleife gelegt wurden.

$ postsuper -H BCD2C3035D31
postsuper: BCD2C3035D31: released from hold
postsuper: Released from hold: 1 message

Warteschlange leeren, es wird versucht alle in der Warteschlange befindlichen E-Mails zuzustellen.

$ postqueue -f

Alle E-Mails in der Postfix deffered queue löschen.

$ postsuper -d ALL deferred

Conclusion

Wie in diesem Beitrag aufgezeigt wird, ist es möglich E-Mails aus der Postfix Warteschlange nach auf Hold setzen, diese temporär an andere Empfänger zu senden. Ebenfalls werden verbleibende E-Mails aus der Postfix Queue zur System Hygiene wieder gelöscht.