Einleitung

Windows Server 2008 Help

v2008.0.3

Übersicht

Diese Hilfedatei soll einen kurzen Überblick über die wichtigsten Funktionen Ihres Windows 2008 Servers liefern. Sie erhebt keinen Anspruch auf Vollständigkeit, sondern soll häufige Fragen und Probleme ansprechen um den Einstieg zu erleichtern.

Zu vielen Themen gibt es zusätzlich "i Hinweise" zur generellen Fehlervermeidung oder mit zusätzlichen Informationen für spezielle Anwendungsfälle.

Erfahrungsgemäß kritische Informationen sind mit einem ~ gekennzeichnet, wenn sie auf die Vermeidung von Datenverlust oder Missbrauch hinweisen.

Da verschiedene Images angeboten werden, kann es sein, dass ein Feature in Ihrem Image nicht enthalten oder nachinstalliert werden muss.

Über die Suchfunktion können Sie nach Stichwörtern in allen Themenbereichen suchen.

iHinweis: Die aktuelle Hilfedatei finden Sie unter http://update.onlinehome-server.info/local-updates/windows/Server 2008 Help.chm
Dieser Link funktioniert nur von Ihrem Server aus und ist von extern nicht erreichbar !
Aufgrund der Windows Sicherheitsrichtlinien muss die Datei lokal auf dem Server gespeichert werden.


Welche Einschränkungen gelten auf dem Windows Web Server 2008

Der Kunde verpflichtet sich, urheberrechtlich geschützte Inhalte unberechtigt weder anzubieten noch zu verbreiten.

Das Betreiben von so genannten P2P-Tauschbörsen, Download-Services, IRC-Server oder Streaming-Diensten, über die eventuell urheberrechtlich geschützte Inhalte unberechtigt verbreitet werden können, ist nicht gestattet.

Darüber hinaus ist es untersagt entsprechende Links, die auf P2P-Tauschbörsen, Download-Services, Streaming-Dienste oder deren Inhalte verweisen, zur Verfügung zu stellen.

Bei Verstößen behält sich 1&1 das Recht vor, den Server ohne Vorankündigung vom Netz zu trennen und den Vertrag fristlos zu kündigen.

Folgende Software darf nicht auf dem Windows Server installiert bzw. verwendet werden:

  • Active-Directory (aus Lizenzrechtlichen Gründen)
  • P2P-Tauschörsen
  • Streaming-Dienste
  • IRC-Server


Rescue System

Rescue System - Notfall Betriebssystem

Das Rescue System ermöglicht Ihnen Zugang zu Ihrem Server, auch wenn dieser über das Netz nicht mehr erreichbar ist. Das System ist ein stark minimalisiertes, nicht optimiertes Windows. Mit dem Rescue System können Sie Ihren Server u.U. reparieren oder wichtige Dateien sichern.

Damit Sie das Rescue System über das Netz erreichen können, benötigen Sie lediglich einen VNC Client z.B. Real VNC (Freeware), Ultra VNC (Freeware)

Falls Sie sich hinter einer Firewall befinden, stellen Sie sicher, dass ausgehende Verbindungen über Port 5900 erlaubt sind, andernfalls kann keine Verbindung zum Rescue System hergestellt werden.

Es empfiehlt sich, diese Hilfe-Datei herunterzuladen, damit Sie auf die hier enthaltenen Informationen auch dann Zugriff haben, wenn Sie sich nicht mit dem Rescue System verbinden können. Sie finden die Anleitung unter C:\Install auf Ihrem Server oder http://update.onlinehome-server.info/local-updates/windows/Server 2008 Help.chm

Einrichten eines Zugangs

Nachdem Sie über das 1&1 Control-Center Ihren Root-Server in das Rescue System gebootet haben, wir Ihnen aus Sicherheitsgründen ein temporäres Passwort zugewiesen.

Dieses Passwort wird nur einmalig im Control Center angezeigt, Sie sollten es also notieren.
Danch starten Sie Ihren VNC Client und geben im Server-Feld die IP Ihres Servers ein.
Bitte beachten Sie: Bis ein Root-Server ins Rescue Sytem gebootet hat, können bis zu 10 Minuten vergehen.
Nun sollte folgendes Fenster erscheinen:

Mit dem temporären Passwort Ihres Root-Servers können Sie sich nun anmelden.
Nach erfolgreichem Login sollten Sie folgendes Fenster zu sehen bekommen:

>>>> Das gezeigte Rescue System kann ggf. abweichen! <<<<

Was man mit dem Rescue System machen kann:

  • Dienste aktivieren/deaktivieren
  • Personal Firewall deaktivieren
  • Dateien löschen/kopieren/editieren
  • "DOS-Fenster" starten
  • Registry editieren
  • Server nach Absturz Debuggen (Bluescreens Debuggen)
  • CheckDisk beaufsichtigt starten (um ein korruptes FileSystem zu reparieren)
  • Daten sichern und z.B. per FTP auf Ihren Backupserver kopieren

Die Möglichkeiten des Rescue System möchten wir Ihnen an einigen Beispielen erläutern:

● ... Dienste aktivieren/deaktivieren

Dienste können leider nicht wie gewohnt über ein MMC SnapIn aktiviert/deaktiviert werden, sondern müssen über die Registry editiert werden. Das folgende Beispiel erklärt dies anhand des "Lokale Sicherheitsrichtlinien"-Dienstes:

  • Öffnen Sie RegEdit

  • Klicken Sie auf "HKEY_LOCAL_MACHINE"
  • Klicken Sie anschließend im "File"-Menü auf "Load Hive"
  • Wählen Sie die zu ladende Datei aus -> C:\Windows\system32\config -> System auswählen
  • Geben Sie einen temporären Namen an (z.B. "RegTemp")
  • Bestätigen Sie mit "OK" um die Datei zu laden
  • Der Teilbaum der Registry steht nun unter "HKEY_LOCAL_MACHINE\RegTemp" zur Verfügung
  • Öffnen Sie HKEY_LOCAL_MACHINE\RegTemp\ControlSet001\Services\PolicyAgent
  • Setzen Sie den Registry Key "Start" auf 3 (manuell)

  • Klicken Sie nun wieder auf "RegTemp"
  • Klicken Sie im "File"-Menü auf "Unload Hive"
  • Abschließend Registry schließen

Sollten Sie einmal die lokalen Sicherheitsrichtlinien falsch konfiguriert haben, können Sie somit sicherstellen, dass nach erneutem Booten des Servers - bitte denken Sie daran, den Bootmodus wieder auf lokal zu stellen - der Dienst "Lokale Sicherheitsrichtlinien" nicht gestartet wird. Ihr Server sollte nun wieder erreichbar sein.

Das eben erläuterte Beispiel kann im Prinzip auf jeden Dienst Ihres Windows-Servers angewendet werden. Sie müssen lediglich den Dienstnamen in der Registry kennen.
So deaktivieren Sie z.B. die Personal Firewall "Zone Alarm":

  • Öffnen Sie RegEdit
  • Klicken Sie auf "HKEY_LOCAL_MACHINE"
  • Klicken Sie anschließemd im "File"-Menü auf "Load Hive"
  • Wählen Sie die zu ladende Datei aus -> C:\Windows\system32\config
    Tipp: Kopieren Sie den Pfad und bestätigen Sie Ihre Eingabe mit 'Enter' -> System auswählen fertig
  • Geben Sie einen temporären Namen an
  • Bestätigen Sie mit "OK" um die Datei zu laden
  • Der Teilbaum der Registry steht unter "HKEY_LOCAL_MACHINE\-TemporärerName-" zur Verfügung
  • Öffnen Sie HKEY_LOCAL_MACHINE\-TemporärerName-\ControlSet001\Services\vsdata
  • Setzen Sie den Registry Key "Start" auf 4 (manuell)
  • Öffnen Sie HKEY_LOCAL_MACHINE\-TemporärerName-\ControlSet001\Services\vsdatant
  • Setzen Sie den Registry Key "Start" auf 4 (manuell)
  • Klicken Sie nun wieder auf "-TemporärerName-"
  • Klicken Sie im "File"-Menü auf "Unload Hive"
  • Abschließend Registry schließen

Nach einem erneuten Reboot sollte Ihr Windows-Server wieder erreichbar sein. Nach dem nächsten Login empfehlen wir Ihnen, ZoneAlarm zu deinstallieren.

ZoneAlarm ist - wie die meisten kostenlosen Firewall-Anwendungen - nicht für Server geeignet! Lesen Sie dazu bitte auch den Abschnitt Firewalls. Verwenden Sie stattdessen besser die Lokale Sicherheitsrichtlinien.

● ... Dateien löschen/kopieren/editieren

Das Rescue System bietet Ihnen die Möglichkeit Dateien zu löschen, zu kopieren und zu editieren. Der A43 FileManager ist ähnlich wie der Windows Explorer aufgebaut und bietet ebenfalls viele Möglichkeiten des Windows Explorers (z.B. ZIP Funktionalität). Mit dem integrierten Notepad ist somit auch ein Text-Editor enthalten.

● ... Bluescreen auswerten

Treiberfehler, defekter Arbeitsspeicher oder Konfigurationsprobleme führen häufig zu einem sogenannten Bluescreen. Sollte Ihr Windows-Server nicht erreichbar sein, so kann dies ein Anzeichen für einen Bluescreen sein. Bei einem Bluescreen wird immer ein Abbild des zuletzt benutzten Speichers gesichert. Dieses sogenannte Memory Dump File befindet sich unter C:\Windows\MEMORY.DMP. Das Rescue System beinhaltet ein Analyse Tool, um MEMORY.DMP Files auszuwerten. Sie finden das Analyse Tool unter X:\i386\ntsd.exe. Folgender Aufruf startet eine Auswertung:
X:\i386\ntsd.exe -z C:\Windows\MEMORY.DMP
Die Analyse zeigt Ihnen – falls es sich um einen Treiberdefekt als Ursache des Bluescreens handelt – welcher Treiber für den Absturz verantwortlich ist. Der Treiber ist die im Output zu findende .sys Datei. Falls Ihnen diese Auswertung nicht weiterhelfen sollte, wenden Sie sich bitte mit dem Ergebnis der Auswertung zur weiteren Analyse an den Microsoft Support.

● ... beschädigtes Dateisystem reparieren

Bei einem beschädigten Dateisystem (Dirty Filesystem) wird das sogenannte Dirty Bit gesetzt. Einfach gesagt bedeutet dies, dass Ihr Dateisystem in einem inkonsistenten Zustand ist. Dies passiert immer dann, wenn z.B. noch Änderungen am Volume ausstehen, der Server aber rebootet wird bevor diese Änderungen übernommen werden können.
Folgendes Bild zeigt Ihnen wie man das DirtyBit abfragt:

Ein gesetztes Dirty Bit führt nach einem Reboot immer dazu, dass das Programm "checkdisk" ausgeführt wird. Checkdisk kann zwar ein beschädigtes Dateisystem reparieren, ein Checkdisk direkt nach einem Reboot kann jedoch von Ihnen nicht beaufsichtigt werden. Deshalb empfehlen wir Ihnen durch folgenden Befehl den automatischen Start von Checkdisk nach dem nächsten Reboot zu unterbinden:

Booten Sie stattdessen Ihr System in das Rescue Sytem, um dort Checkdisk auszuführen. Bevor Sie Checkdisk starten, sollten Sie ein komplettes Backup Ihrer Daten vornehmen.

Nach einem erfolgreich beendeten Checkdisk sollte die nächste Überprüfung des Filesystems folgendes ergeben:

Ihr Dateisystem befindet sich nun wieder in einem konsistenten Zustand.

● ... Dateien sichern

Eine weitere Möglichkeit des Rescue System ist es Dateien zu sichern und z.B. per FTP auf Ihren Backup-Server zu laden. Dies wird anhand des folgenden Beispiels erläutert:

  • Öffnen Sie im Menü den A43 FileManager
  • Nachdem sich der A43 FileManager geöffnet hat, wählen Sie bitte den zu sichernden Ordner aus
  • Wählen Sie nun "File" > "Zip..."
  • Wäheln Sie den Pfad aus und vergeben Sie einen Namen, z.B.: D:\MyData.zip und bestätigen Sie mit "Save"

  • Bei sehr großen Dateien (>1GB) empfehlen wir, die zu sichernde Datei vor dem Übertragen mit FTP mit dem im Rescue System ebenfalls enthaltenen HJSplit in kleinere Dateien aufzuteilen (z.B. 200MB). Aufgeteilte Dateien können Sie entweder im Rescue System oder nach erfolgreicher Neuinstallation Ihres Servers zusammensetzen (HJSplit finden Sie unter C:\Install)
  • Nach dem Speichern des Zip Files können Sie dieses mit dem ebenfalls im Rescue System enthaltenen FileZilla FTP Programm auf Ihren Backup-Server sichern.

  • Nach der Eingabe des Benutzernamen und Passworts sind Sie mit Ihrem Backup-Server verbunden
  • Dateien können nun per Drag&Drop auf den Backup-Server übertragen werden
  • Beenden Sie die FTP-Sitzung über "File" > "Disconnect"


Unterschiede in den Images

Wir bieten derzeit 3 verschiedene Windows 2008 Images an:

Windows 2008 Minimal Image

Das Minimal Image beinhaltet nur die Grundinstallation von Windows 2008.
Es ist für Kunden gedacht, die ihr System individuell nach eigenen Wünschen konfigurieren
wollen. Das Image beinhaltet:

  • Windows Web Server 2008 mit Service Pack 1
  • Aktuellstes Patch Level
  • Powershell
  • Language Pack
Zusätzliche Tools:
  • BGInfo
  • Perl und PHP werden als Installationsdateien beigefügt

Windows 2008 Image

Dieses Image beinhaltet eine umfassende Installation, mit der der Server direkt in Betrieb genommen werden kann.

  • Windows Web Server 2008 mit Service Pack 1
  • Aktuellstes Patch Level
  • IIS 7
  • Microsoft SQL Express Edition 2008 mit Tools
    • .
  • NET Framework 3.51 mit SP 1
  • Powershell
  • Language Pack
Zusätzliche Tools:
  • BGInfo
  • Perl und PHP werden als Installationsdateien beigefügt

Windows 2008 Image mit Plesk

Das Plesk Image ist ähnlich aufgebaut wie das Windows 2008 Image.
Der große Vorteil hierbei ist, dass die Verwaltungssoftware Plesk schon für Sie vorinstalliert ist.

  • Windows Web Server 2008 mit Service Pack 1
  • Aktuellstes Patch Level
  • IIS 7
  • Plesk 8.6
  • Plesk APS
  • Microsoft SQL Express Edition 2005 mit Tools
    • .
  • NET Framework 3.0
  • Powershell
  • Language Pack
Zusätzliche Tools:
  • BGInfo
  • Perl und PHP werden als Installationsdateien beigefügt


Allgemein

Allgemeine Hinweise

Firewalls

Firewalls sollen die offenen Ports eines Servers auf ein notwendiges Mindestmaß beschränken, um so die Angriffsfläche gering zu halten. Leider sind die meisten Firewall-Programme für Server nicht geeignet. Nach der Installation werden alle Verbindungen gesperrt - auch die Remote Desktop-Verbindung.
Installieren Sie keine Firewall-Programme auf Ihrem Server wenn Sie sich nicht 100%ig sicher sind, dass Sie sich dadurch nicht selbst aussperren. Auch das Einschalten der mitgelieferten Windows-Firewall kann ein Aussperren zur Folge haben.

Besser: Verwenden Sie stattdessen die vorkonfigurierten IP-Filter (siehe "IPSec - IP Filter")

DHCP

Ihr Server bekommt bei der Einrichtung eine funktionierende Netzwerkkonfiguration zugewiesen. Die benötigten Netzwerkparameter werden statisch eingetragen.
~Versuchen Sie nicht diese Einstellungen zu ändern!
Fehlerhafte Netzwerkparameter können dazu führen, dass Ihr System nicht mehr erreichbar ist. In so einem Fall muss der Server neu aufgesetzt werden, wodurch sämtliche Daten auf Ihrem System unwiderruflich verloren gehen.

IPSec - IP Filter

Eine ausführliche Anleitung finden Sie im entsprechenden Kapitel.

IE Sicherheitseinstellungen

Der "Internet Explorer" auf Windows 2008 Servern ist standardmäßig auf die höchste Sicherheitsstufe eingestellt. Dadurch werden potentiell gefährliche JavaScripte, ActiveX Objekte und andere aktive Inhalte blockiert bzw. nicht geladen. Außerdem können keine EXE-Dateien heruntergeladen werden. Es gibt jedoch die Möglichkeit die Webseiten zu einer Liste vertrauenswürdiger "Sites" hinzuzufügen.

Die Sicherheitseinstellungen befinden sich im Menü "Extras" -> "Internetoptionen" -> "Sicherheit", Zone: "Internet"

Näheres unter IE Security

Windows Update

Windows Update Links finden Sie auf dem Desktop des Servers, im Startmenü und nach einiger Zeit auch in Form eines kleinen Symbols rechts unten im "System-Tray":

Updaten Sie Ihren Server aus Sicherheitsgründen regelmäßig! Bei der Installation werden i.d.R. alle zu dieser Zeit verfügbaren Patches, Hotfixes und ServicePacks installiert. Es kommt jedoch immer einmal vor, dass ein Patch aus verschiedenen Gründen nicht installiert werden konnte, oder über Nacht neue Patches verfügbar geworden sind. Sie sind der Administrator dieses Servers. Halten Sie Ihr System auf dem neusten Stand.

i Hinweis:
Unsere Installationsimages werden monatlich mit den neuesten Microsoft-Updates aktualisiert.
Somit hat ein neu initialisiertes System den aktuellen Stand.

i Hinweis:
Seit Oktober 2003 stellt Microsoft alle neuen Patches nur noch in Abständen von einem Monat zur Verfügung, und zwar jeden 2. Dienstag eines Kalendermonats (MEZ). Ausgenommen hiervon sind kritische Updates.

i Hinweis:
Damit Sie die Windows Update Seite von Ihrem Server aus erreichen können, müssen Sie in den Sicherheitsrichtlinien Port 80 und 443 (SSL) "outgoing" freigeben (Siehe auch IPSec - IPFilter).

E-Mails mit ASP-Seiten verschicken

Es gibt die Möglichkeit über von Windows mitgelieferte Mail-Komponenten "CDOSys" E-Mails von ASP-Seiten oder mit Hilfe von Skripten zu verschicken (Siehe Kapitel CDOSys).
Alternativ gibt es verschiedene Mailer-Komponenten, die sich als COM-Objekte in ASP-Code (oder auch VB(S), WSH etc.) einbinden lassen. Die kostenlose Komponente "SMTPmailFree" gibt es von der Firma "SoftArtisans". Die aktuelle Version mit ausführlicher Dokumentation erhalten Sie auf der Seite http://www.softartisans.com/smtpmail.html unter "Downloads / Evaluation Software".

Für ASP.NET Projekte können Sie auch die SMTP-Komponente des .NET Frameworks benutzen.

Zusätzliche Software

Im Verzeichnis C:\Install auf Ihrem Server finden Sie diverse Programme, die Sie je nach Bedarf installieren können. Unter anderem befinden sich dort Perl- und PHP Komponenten für den IIS, .NET Entwicklungswerkzeuge, Sicherheitstools und Anleitungen, sowie Links auf weiterführende Dokumentation zum Thema "Sicherheit".

~Hinweise

  • Versuchen Sie nicht die Netzwerkkonfiguration Ihres Servers zu ändern. Der Server ist schon bei kleinen Fehlern netzwerktechnisch nicht mehr erreichbar und muss neu installiert werden.
  • Wenn Sie sich den Status Ihrer Netzwerkverbindung anzeigen lassen, achten Sie beim Schließen unbedingt darauf, dass Sie nicht versehentlich auf "Deaktivieren" klicken.
  • Installieren Sie keine Firewall-Software die nicht explizit für Server geeignet ist und probieren Sie eventuelle Kandidaten auf einem Rechner aus, zu dem Sie physikalischen Zugang haben.
  • Machen Sie unbedingt regelmäßige Datensicherungen (Backups).
  • Updaten Sie regelmäßig! Am einfachsten geht das über "Windows Update", z.B. in Ihrem Startmenü.
  • Weitere Hinweise und viele Antworten zu verschieden Fragen (FAQ) finden Sie auch auf unseren Service-Seiten.


Remote Desktop

Remote Desktop / Terminal Server

Der "Remote Desktop" bietet Ihnen eine vertraute graphische Oberfläche zur Verwaltung Ihres Servers.
Windows XP hat bereits einen Remote Desktop Client den Sie, falls Sie XP benutzen, unter
Start -> Programme -> Zubehör -> Kommunikation -> Remotedesktopverbindung
finden (auf Ihrem lokalen Rechner) oder über
Start -> Ausführen -> mstsc

Falls Sie keinen Client haben, können Sie sich die neueste Version kostenlos von Microsoft herunterladen:
Remotedesktopverbindung (Terminaldiensteclient 6.0)

Der Client kann auf folgenden Systemen installiert werden:

  • Microsoft Windows Server 2003 mit Service Pack 1 (SP1)

  • Microsoft Windows Server 2003 mit Service Pack 2 (SP2)

  • Microsoft Windows XP mit Service Pack 2 (SP2)
Nach dem Öffnen geben Sie bei "Computer" die Adresse Ihres Servers ein. Dabei können Sie die IP-Adresse oder den Domainnamen (z.B. "mein-server.de") verwenden. Bevor Sie auf "Verbinden" klicken, können Sie unter "Optionen" noch einige Einstellungen anpassen.

Anzeige

Unter "Anzeige" legen Sie fest, ob der "Remote Desktop" als Vollbild oder als Fenster dargestellt werden soll.
Sie können auch die Anzahl der Farben, die angezeigt werden sollen, ändern. Für langsamere Verbindungen (Modem) empfiehlt es sich, die Farbanzahl zu reduzieren, da so weniger Informationen übertragen werden müssen.

Lokale Laufwerke/Drucker

Unter "Lokale Ressourcen" lassen sich lokale Laufwerke, Drucker und Schnittstellen auf Ihrem Server verfügbar machen.
Sie können dann z.B. einen Text vom Server auf Ihrem lokalen Drucker ausdrucken oder eine Datei von Ihrem Server auf einem lokalen Laufwerk speichern. Außerdem haben Sie die Möglichkeit per "Strg-C / Strg-V" (Copy/Paste) auch einzelne Dateien zwischen Server und lokalem Client hin oder her zu kopieren. Copy und Paste von Text funktioniert generell - auch ohne die Einbindung lokaler Laufwerke.
Die Einbindung lokaler Ressourcen ist für Modem- und ISDN-Verbindungen nicht zu empfehlen.

Passen Sie weitere Einstellungen Ihren Wünschen an und klicken Sie abschließend auf "Verbinden".

Auf Ihrem Server wird für jede Verbindung eine so genannte "Session" mit eigener Umgebung (eigenem Desktop) erstellt. Eine Session wird nur beendet, wenn Sie sich auf dem Server auch wieder abmelden. Sie haben die Möglichkeit einfach das Remote-Desktop-Fenster zu schließen, jedoch bleibt dann auch die Session und alle darin laufenden Programme erhalten.
Es können maximal zwei gleichzeitige Sessions existieren. Weitere Verbindungsversuche werden abgewiesen. Sie sollten nicht benötigte Sessions daher schließen (abmelden).
In der Terminaldiensteverwaltung auf Ihrem Server (Start -> Programme -> Verwaltung -> Terminaldiensteverwaltung) können Sie sehen wie viele Sessions aktuell benutzt werden und diese ggf. auch beenden ("Abmelden").

Console

Es gibt unter Windows 2008 zusätzlich die Möglichkeit sich auf die so genannte "Console" zu verbinden. Die Console entspricht der Session, die Sie hätten, wenn Sie ganz normal mit Monitor und Tastatur mit Ihrem Server verbunden wären (also das was jemand sehen würde, wenn er einen Monitor an Ihren Server anschließen würde).
Um sich mit der Console zu verbinden, muss der Remote Desktop Client mit der Option "/console" aufgerufen werden. Am einfachsten geht das über Start -> Ausführen -> "mstsc /console". Alle weiteren Einstellungen funktionieren wie oben beschrieben.
Wenn Sie mit Windows Vista arbeiten, rufen Sie den Befehl bitte mit "mstsc /admin" auf.

Web Connection

Es gibt ein ActiveX-Plugin für den Internet Explorer (IE) mit dem sich Remote Desktop Verbindungen in einem IE-Fenster herstellen lassen. Das Plugin heisst "Remote Desktop Web Connection" und wird von Microsoft kostenlos bereitgestellt.
Zur Zeit befindet sich die aktuellste Version unter der URL (deutsch):
http://www.microsoft.com/downloads/details.aspx?FamilyID=e2ff8fb5-97ff-47bc-bacc-92283b52b310&displaylang=de

Andere Clients

Für das Remote Desktop Protokoll (RDP) gibt es diverse Client-Software für weitere Betriebssysteme. Microsoft selbst stellt auch Clients für Macintosh-Computer zur Verfügung:
http://www.microsoft.com/mac/products/remote-desktop/default.mspx

Matt Chapman bietet auf seiner Seite http://www.rdesktop.org einen "open source" Client für Unix-Systeme an.


IPSec

IPSec - IP Filter

Windows bietet umfangreiche Möglichkeiten um die Anbindung des Servers an das Internet abzusichern. Eine Möglichkeit ist das Blockieren von Datenpaketen von und zu zuvor definierten Ports (ähnlich einer Firewall).
Nur wenige der verfügbaren Dienste werden auch tatsächlich für den Einsatz im Internet benötigt. Alle übrigen Dienste lassen sich blockieren und sind dadurch von außen nicht mehr angreifbar. Das Internet sollte immer als ein böswilliger und gefährlicher Ort betrachtet werden. Sehen Sie Ihren Server als eine Festung, die neben gutmütigen Besuchern auch Würmern, Hackern, Viren, Trojanern und fehlerhaften Daten ausgesetzt ist. Weniger Verbindungsmöglichkeiten machen potentielle Einbrüche schwieriger und aufwändiger. Eine Festung mit wenigen Türen lässt sich leichter verteidigen als eine mit vielen.
Auf Ihrem Server wurde eine ganze Reihe von IP-Filtern vorinstalliert. Die entsprechenden Einstellungen finden Sie in den "Lokalen Sicherheitsrichtlinien", z.B. über den Link "IP Filter" auf dem Desktop des Servers.
Die dort installierten Filter blockieren zunächst alle Verbindungen (Ports). Anschließend werden einzelne Dienste selektiv wieder freigegeben.
Einige Sicherheitsregeln sind vorinstalliert aber nicht aktiviert (Häkchen nicht gesetzt). Diese Regeln sind als Beispiele gedacht und können bei Bedarf von Ihnen eingeschaltet oder geändert werden.

~Achtung: Deaktivieren Sie niemals die Regel "Open Remote Desktop"! Sie kommen sonst u.U. nicht mehr auf Ihren Server.

Der Umgang mit den IPSec Filterregeln ist nicht gerade einfach - aber sehr effektiv. Es lohnt sich, sich mit diesem Thema auseinanderzusetzen, auch wenn der Anfang mühsam erscheinen mag.

  • Zum erstellen einer neuen Regel, öffnen Sie die Eigenschaften von "Packet Filter"...

  • ... und klicken Sie auf "Hinzufügen".

  • Klicken Sie dann auf "Weiter".
  • Anschliessend stellen Sie "Durch diese Regel wird kein Tunnel festgelegt" ein und klicken wieder auf "Weiter".
  • "Alle Netzwerkverbindungen" auswählen, "Weiter".

Sie sehen jetzt alle vorhandenen Filterlisten. Eine Filterliste kann mehrere Filter enthalten, aber jede Regel kann nur eine Filterliste spezifizieren. Für eine neue Regel brauchen Sie also auch eine neue Filterliste:

  • Klicken Sie auf "Hinzufügen". Es erscheint die Maske der neuen Filterliste:

  • Geben Sie der Liste einen Namen und, wenn Sie möchten, auch eine Beschreibung. Klicken Sie anschliessend wieder auf "Hinzufügen" um einen Filter anzulegen.
  • Es erscheint ein Assistent, klicken Sie dort auf "Weiter". Jetzt können Sie eine Beschreibung für diesen speziellen Filter angeben:

"Gespiegelt" bedeutet, dass Datenpakete auch in entgegengesetzter Richtung dem folgenden Filterkriterium entsprechen. Wenn Sie nicht wissen, ob Sie gespiegelte Filter brauchen, lassen Sie das Häkchen gesetzt.

  • Klicken Sie auf "Weiter" und geben Sie die Quelladresse an.
    Wenn ein Internetbenutzer auf einen bestimmten Dienst auf Ihrem Server zugreifen können soll, verwenden Sie "Beliebige IP-Adresse" (Sie kennen die Adresse ja nicht).
  • "Weiter".
  • Geben Sie die Zieladresse ein, z.B. "Eigene IP-Adresse" und klicken Sie auf "Weiter".
  • Als Protokolltyp stellen Sie "TCP" ein (es sei denn Sie benötigen ein anderes, spezielles Protokoll).
  • Nach "Weiter" können Sie eine Portnummer auswählen.
    Dies ist die wichtigste Eigenschaft Ihres Filters! Hier legen Sie fest, welcher Dienst Ihrem Filter entspricht. Die benötigte(n) Portnummer(n) müssen Sie natürlich kennen. Wenn Sie sie nicht wissen, prüfen Sie mitgelieferte Dokumentation oder fragen Sie den Hersteller. Listen gängiger Ports finden Sie auch im Internet (z.B. Suche nach "port list"). Bei der Einstellung des Quellports können Sie "von jedem Port" auswählen, wenn Sie zuvor "Beliebige IP-Adresse" als Quelladresse angegeben haben, da Sie den vom Client benutzen Port nicht kennen (er wird zufällig gewählt). Wenn Sie als Zielport ebenfalls alle Ports zulassen, ist Ihr Filter nicht mehr spezifisch auf einen Dienst ausgelegt, sondern gilt für alle Dienste und würde alle IPSec-Filter überflüssig machen.
  • Klicken Sie nach der Eingabe der Portnummern dann wieder auf "Weiter" und anschließend auf "Fertigstellen".
  • Danach sollte Ihr neuer Filter in der Filterliste angezeigt werden:

Sie können natürlich mehrere Filter erstellen und diese auch jederzeit an dieser Stelle bearbeiten.

Nachdem Sie auf "OK" geklickt haben, sehen Sie wieder die Liste aller bestehenden Filterlisten - auch Ihre neu erstellten Liste (mit dem von Ihnen vergebenen Namen).

  • Wählen Sie die Filterliste aus, um sie der Regel zuzuweisen und klicken Sie auf "Weiter".

Sie müssen nun die Aktion festlegen die ausgeführt wird, wenn ein Datenpaket einem Filterkriterium entspricht.
Falls Sie am Auslieferungszustand nichts geändert haben, ist eine Regel aktiv, die zunächst alle Verbindungen blockiert. Gleichzeitig sorgen andere Filter wiederum dafür, dass Sie sich eben doch mit Ihrem Server verbinden können (per Remote Desktop). Die Filteraktion "Permit" (Zulassen) überwiegt also "BLOCK" (Blockieren).

  • Wenn Sie also einen Dienst freigeben wollen, wählen Sie "Permit" aus und klicken Sie ein letztes Mal auf "Weiter"...

  • Ihre neu erstellte "FilterListe" oder "Regel" erscheint in der Liste zusammen mit der zugewiesenen Aktion.

Die neue Regel tritt in Kraft, sobald Sie auf "OK" klicken.
Wenn Sie eine Regel mit der Aktion "BLOCK" erstellt haben sollten, ist dies ein guter Zeitpunkt noch mal in sich zu gehen und zu überlegen, ob alle Einstellungen auch wirklich korrekt sind.

~Achten Sie immer darauf, dass die Regel "Open Remote Desktop" aktiviert ist (Häkchen gesetzt), denn diese Regel ermöglicht Ihnen den Zugang per Remote Desktop!


Security

Sicherheit

Stets aktuelle Hotfixes/Patches/Updates garantieren ein höchst mögliches Maß an Sicherheit in Bezug auf Server-Anwendungen und Software. Ebenso wichtig ist der Schutz von sensiblen Daten, allen voran Passwörtern.

Sie sollten nach der ersten Anmeldung zunächst das Passwort des Administrator-Accounts ändern. Die maximale Passwortlänge liegt bei 255 Zeichen. Es können auch Umlaute, Sonderzeichen, Unicode-Zeichen oder ganze Sätze verwendet werden.
Da Ihr Server im Internet steht, kann sich jede Person mit Internetzugang, weltweit und jederzeit mit Ihrem Server verbinden und Passwörter ausprobieren oder raten. Solche "Angriffe" sind keinesfalls selten und leider auch nicht vermeidbar. Sie können Ihre Zugangsdaten aber schützen indem Sie möglichst komplexe Passwörter verwenden und außerdem Kontorichtlinien verwenden.

Die Kontorichtlinien finden Sie auf Ihrem Server im Startmenü, Gruppe "Verwaltung", "Lokale Sicherheitsrichtlinie" oder über die Verknüpfung "IP Filter" auf dem Desktop. Neben den IP-Sicherheitsrichtlinien (ganz unten, siehe auch IPSec) finden Sie dort auch die "Kontorichtlinien" und darunter die "Kennwortrichtlinien" und "Kontosperrungsrichtlinien".

Die Einstellungen sind weitestgehend selbsterklärend. Eine ausführliche Beschreibung zu jedem Punkt finden Sie in der Hilfe (mit Rechtsklick).
Die Kontosperrungsrichtlinien wurden bei der Installation vordefiniert. Normale Benutzerkonten (passwortgeschützte Verzeichnisse, FTP etc.) werden nach 10 falschen Eingaben für 30 Minuten gesperrt. Damit Administratoren weiterhin auf den Rechner kommen, gilt für sie diese Regelung nicht. Jedoch wird die Anmeldung nach 10 Versuchen künstlich verzögert um die Anzahl der Versuche innerhalb einer bestimmten Zeit zu reduzieren. Ein Angreifer kann also nicht, wie sonst mit entsprechenden Programmen, hunderttausende von Passwörtern pro Sekunde durchprobieren.

IPSec

Neben regelmäßiger Softwarepflege (Updates) und komplexen, langen Passwörtern gibt es noch eine dritte Möglichkeit Ihren Server vor Angriffen zu schützen: IP Filter. Weitere Hinweise hierzu finden Sie unter "IPSec - IP Filter".

Ereignisanzeige

Zusätzlich sollten Sie ab und zu die Ereignisanzeige ("Eventlog" in der Computerverwaltung) prüfen. Unter "Sicherheit" werden u.a. alle Anmeldeversuche mitprotokolliert. Dabei sind vor allem die fehlgeschlagenen Versuche interessant. Bei hartnäckigen Attacken helfen meistens auch die Logdateien von betroffenen Diensten zusammen mit dem Eventlog, um den Verursacher ausfindig zu machen. Passwort-Angriffe und sogenannte "Denial-of-Service"-Angriffe lassen sich z.B. mit IPSec-Filtern abwehren, wenn man die Quelladresse kennt. Gegen das Ausprobieren von Passwörtern helfen zusätzlich die voreingestellten Kennwortrichtlinien, sowie lange und komplexe Passwörter.


Welche Ports sind nach der Initialisierung geöffnet

Folgende Ports sind nach der Initialisierung auf Ihrem Windows Server 2008 Standard unter dem Punkt "IP-Sicherheitsrichtlinien" geöffnet:

1723, 1701, 500 | => | VPN
25 | => | SMTP
3389 | => | RDP
110 | => | POP
138 | => | NetBIOS
80 | => | HTTP
443 | => | HTTPS
8098 | => | Admin WebGUI Plesk
20,21 | => | FTP
53 | => | DNS

Um weitere Ports in den "IP-Sicherheitsrichtlinien" freizuschalten, gehen Sie bitte unter IPSec.


IE Security

Sicherheitseinstellungen im IE ändern

Der "Internet Explorer" auf Windows 2008 Servern ist standardmäßig auf die höchste Sicherheitsstufe eingestellt. Dadurch werden diverse, potentiell gefährliche JavaScripte, ActiveX Objekte und andere aktive Inhalte blockiert bzw. nicht geladen. Außerdem können keine EXE-Dateien heruntergeladen werden. Es gibt jedoch die Möglichkeit die Webseiten zu einer Liste vertrauenswürdiger "Sites" hinzuzufügen.

Webseiten zu einer Liste vertrauenswürdiger "Sites" hinzuzufügen

1. Klicken Sie im Internet Explorer im Menü Extras auf Internetoptionen.
2. Klicken Sie in der Registerkarte "Sicherheit" auf das Symbol "Vertrauenswürdige Sites" und anschließend auf "Sites..."

3. Klicken Sie in das Feld "Diese Website zur Zone hinzufügen" und tragen Sie dort die gewünschte URL ein.
4. Klicken Sie auf "Hinzufügen" und anschließend auf "Schließen"

5. Bestätigen Sie nun die Einstellungen mit "OK".

Deaktivieren der verstärkten Sicherheitskonfiguration für Internet Explorer für alle Benutzer

Alternativ können Sie die verstärkte Sicherheitskonfiguration für den IE auch komplett deaktivieren. Gehen Sie dazu bitte wie folgt vor:

1. Schließen Sie alle Internet Explorer-Instanzen.
2. Klicken Sie auf "Start", zeigen Sie auf "Verwaltung", und klicken Sie dann auf "Server-Manager".
3. Klicken Sie unter "Sicherheitsinformationen" auf "Verstärkte Sicherheitskonfiguration für IE konfigurieren".
4. Klicken Sie unter Administratoren auf "Aus" und ggf. unter Benutzer ebenfalls auf "Aus".

5. Klicken Sie abschließend auf "OK", um die verstärkte Sicherheitskonfiguration für IE zu deaktivieren.


Backup

Datensicherungen / Backups

Obwohl jeder Server vor der Installation einer mehrstündigen Prüfung unterzogen wird, kann es immer mal zu Ausfällen kommen. Sie können z.B. die mitgelieferte Backup-Software verwenden um Sicherungen zu erstellen, die sich im Ernstfall zurückspielen lassen.

Neues Backup erstellen

Das mit Windows ausgelieferte Programm finden Sie unter:
Start -> Verwaltung -> "Windows Server-Sicherung"

Für die Erstellung sorgt ein Wizard (Sicherungsassistent); die einzelnen Schritte sind einfach zu verstehen. Sie können Backups auch automatisch ausführen lassen. Im rechten Fenste finden Sie verschiedene Möglichkeiten:

  • Sicherungszeitplan
  • Einmalsicherung
  • Wiederherstellung

Im folgenden Beispiel wird die Sicherung anhand einer "Einmalsicherung" beschrieben:

Im ersten Schritt des Wizards können Sie ohne eine geplante Sicherung nur eine Auswahl treffen.
Danach haben Sie die Auswahl zwischen einer vollständigen oder benutzerdefinierten Sicherung. Eine durchdachte Sicherungsstrategie spart Backupspeicher und Zeit. Daher sollte der Server nicht immer vollständig gesichert werden.

Im nächsten Schritt ist die Auswahl der Systemwiederherstellung nicht zwingend erforderlich, da bei einer Reinitialisierung das Grundsystem von 1&1 installiert wird.

Jetzt kann man auswählen, ob das Backup lokal oder in einem Remoteordner (Backupserver) gespeichert werden soll

In den nachfolgenden Schritten wird das Sicherungsziel und die Optionen ausgewählt und die eigentliche Sicherung gestartet.

Backupserver

Das Backup hilft Ihnen im schlimmsten Fall nicht, wenn Sie es nur auf dem Server liegen haben. Sie sollten deshalb die erstellten Backup-Dateien (*.BKF) auf einen anderen Rechner kopieren. Wenn in Ihrem Vertrag ein Zugang zum Backupsystem enthalten ist oder Sie diese Option zugebucht haben, können Sie den dort zur Verfügung gestellten Platz nutzen. Die Backup-Server sind sowohl per FTP, also auch per NetBIOS (Windows Netzwerk) erreichbar. Sie können die BKF-Dateien also wahlweise per FTP oder NetBIOS kopieren. Damit das funktioniert wurden in den IPSec-Filterregeln die Backupserver bereits berücksichtigt.

Das Kopieren über das Windows Netzwerk geht am einfachsten, wenn der zuständige Backupserver als Netzlaufwerk eingebunden wird:

  • Öffnen Sie einen Windows Explorer auf Ihrem Server
  • Klicken Sie Sie mit der rechten Maustaste auf "Netzwerk" Netzlaufwerk zuordnen..." aus

  • Wählen Sie einen beliebigen Laufwerksbuchstaben aus, unter dem der Backupserver zukünftig erreichbar sein soll, z.B. "B:".
    Als Ordner geben Sie "\\", dann den vollen Namen Ihres Backupservers oder dessen IP-Adresse, sowie den Backup-Benutzernamen ein. Der Pfad sollte dann ungefähr so aussehen:
    "\\backup00.rootmaster.info\bak000" (oder "\\1.23.45.67\bak000") (jeweils ohne Anführungszeichen!)
    Aktivieren Sie außerdem das Kästchen "Verbindung bei Anmeldung wieder herstellen".
    Optional können Sie schon an dieser Stelle Benutzer und Passwort für den Backupserver eingeben, indem Sie auf "anderem Benutzernamen" klicken, ansonsten werden Sie später danach gefragt.
    Alle nötigen Informationen wie Backupserver-Name, Benutzer und Passwort finden Sie in Ihrem Konfigurationsmenü unter "Server-Verwaltung", "Backup".

  • Klicken Sie auf "Fertig stellen" um das Laufwerk zu verbinden.
    Wenn Benutzername und Passwort korrekt sind, erscheint auf dem Server-Arbeitsplatz ein neues virtuelles Laufwerk unter dem Sie Ihren Backup-Speicher erreichen können.
    Das Laufwerk kann wie ein Festplatten-Laufwerk verwendet werden. Die Daten werden aber nicht auf Ihrem Server, sondern auf dem Backup-Server gespeichert.

i Hinweis:
Der Datentransfer zwischen Ihrem Server und dem Backupsystem (Backup-Server) wird in Ihrem monatlichen Traffic-Kontingent nicht berücksichtigt, ist also für Sie kostenlos. Sollten Sie die Backup-Dateien jedoch auf einen anderen Server kopieren, wird Ihnen dieser Traffic angerechnet.


Serielle Konsole

Die Serielle Konsole ermöglicht Ihnen Zugang zu Ihrem Server, auch wenn dieser über das Netz nicht mehr erreichbar ist.

Windows Server 2008 bietet eine einfache, textbasierte Administrationsoberfläche, die sich über die serielle Schnittstelle des Rechners (COM-Port) bedienen lässt. Zur Darstellung und Steuerung werden VT100 kompatible Terminal-Programme verwendet. Damit Sie die serielle Schnittstelle über das Netz erreichen können, werden die Daten über einen SSH-Server verschlüsselt zur Verfügung gestellt. Sie benötigen auf Ihrem PC also einen SSH Client, wie z.B. PuTTY (Freeware), mRemote(Freeware), SecureCRT (Shareware), o.ä.

Sie sollten sich dieses Kapitel der Hilfedatei herunterladen. Wenn Sie diesen Text brauchen, haben Sie vermutlich keinen Zugriff mehr darauf. Sie finden die Anleitung unter C:\Install auf Ihrem Server.

Einrichten eines Zugangs

Nachdem Sie Ihren SSH Client gestartet haben, muss der SSH-Server angegeben werden, mit dem eine Verbindung aufgebaut werden soll. Den für Sie zuständigen Servernamen finden Sie in Ihrem Konfigurationsmenü bei den Serverdaten, die Portnummer ist 22, das Protokoll muss auf SSH eingestellt werden.

Beispiel mit PuTTY:

Starten Sie PuTTY. Es erscheint folgendes Fenster:

>>>> Der gezeigte Host Name kann ggf. abweichen! <<<<

Geben Sie den Host Name (aus dem Konfigurationsmenü) ein und aktivieren Sie den Knopf SSH. Der Port wird dabei automatisch eingestellt.

Klicken Sie im Konfigurationsbaum links auf Translation und stellen Sie dort "UTF-8" ein:

Klicken Sie anschließend auf Session um wieder in die Sessionverwaltung zu gelangen.
Speichern Sie die Einstellungen indem Sie unter Saved Sessions einen Namen vergeben und dann auf den Save-Knopf klicken. Es werden dabei alle Einstellungen (auch "Translation") gespeichert. Sie müssen dann beim nächsten Mal nicht wieder alles einstellen.

Klicken Sie dann auf Open um die Sitzung zu starten.

Beim ersten Login erscheint eine Warnmeldung. Da die Verbindung verschlüsselt werden soll, müssen PuTTY und der SSH-Server Schlüssel austauschen. Da der SSH-Server bisher unbekannt war, liegt PuTTY auch kein bisheriger Schlüssel vor.

(Der Fingerabdruck des Serverschlüssels wurde ausgeblendet)

Klicken Sie auf "Yes" um die Verbindung zu erlauben und den Server-Schlüssel für zukünftige Sitzungen zu speichern.

Sie erhalten eine Login Aufforderung:

Geben Sie Ihren Hauptbenutzernamen und anschließend das Init-Passwort ein. Der Hauptbenutzername fängt mit einem Buchstaben an, gefolgt von sieben oder acht Ziffern, z.B. u1234567 oder p12345678.

Bei erfolgreicher Anmeldung, werden Statusmeldungen des SSH-Servers angezeigt und Sie werden mit Ihrem Server verbunden. Drücken Sie nun die Eingabetaste um die serielle Konsole (SAC) des Windows Servers zu aktivieren:

Windows in anderen Modi booten

Es ist mit der seriellen Konsole auch möglich, Windows z.B. mit der "letzten als funktionierend bekannten Konfiguration" zu booten. Dazu muss beim Bootvorgang normalerweise "F8" gedrückt werden. Das ist bei der Sercon etwas anders.

Beim Bootvorgang muss "ESC" und dann "8" gedrückt werden. Danach erscheint ein Auswahlmenü. Dort wäre "Last Known Good Configuration" auszuwählen.

CMD mit SAC

Umfangreiche Möglichkeiten bietet die Eingabeaufforderung ("DOS-Fenster"), die sich mit der SAC starten und bedienen lässt. Hierzu muss zunächst eine Instanz der Eingabeaufforderung erstellt werden. Da es keine Fenster gibt, die es ermöglichen, zwischen Anwendungen hin und her zu schalten, werden mehrere Instanzen (z.B. die SAC und eine Eingabeaufforderung) über so genannte Channels ("Kanäle") verwaltet. Channel 0 ist immer die SAC selbst.

Zum Erstellen einer Eingabeaufforderung, geben Sie den Befehl cmd ein. Es folgen diese Meldungen:

SAC>cmd
The Command Prompt session was successfully launched.
SAC>
EVENT: A new channel has been created. Use "ch -?" for channel help.
Channel: Cmd0001
SAC>█

Der Befehl ch zeigt Ihnen eine Liste der aktuell benutzten Channels:

SAC>ch
Channel List

(Use "ch -?" for information on using channels)

# Status Channel Name
0 (AV) SAC
1 (AV) Cmd0001
SAC>█

Neben der Channel Nummer wird mit (AV) angezeigt, dass der Kanal aktiv ist (A = aktiv) und das der Kanal über einen virtuellen Terminal zur Verfügung gestellt wird (V = Vir. Term.). Neben der Channel Nummer, lassen sich die Kanäle auch über Ihren Namen eindeutig ansprechen, z.B. Cmd0001.

Es gibt zwei Möglichkeiten um in einen anderen Channel zu springen.

  1. Von der SAC aus mit dem Befehl ch, z.B. ch -si 1 um in den ersten Channel zu springen.
  2. Mit <Esc><Tab> (nacheinander, nicht gleichzeitig gedrückt)

Die 2. Variante funktioniert aus allen Channels heraus und ist einfacher, wenn man nur wenige Channels gleichzeitig verwendet.

Nachdem Sie mit cmd einen neuen Channel mit einer Eingabeaufforderung erstellt haben, drücken Sie also nacheinander die <Esc>- und die <Tab>-Taste. Es erscheint dann die Beschreibung des Channels:

Name: Cmd0001
Description: Command Prompt
Type: VT-UTF8
Channel GUID: 12345678-9abc-11d8-90ba-505054503030
Application Type GUID: 123456789-9a0b-1cde-bccf-00b0d014a2d0

Press <esc><tab> for next channel.
Press <esc><tab>0 to return to the SAC channel.
Use any other key to view this channel.

█

Drücken Sie eine beliebige Taste um in den ausgewählten Channel zu wechseln.

Die Eingabeaufforderung bietet Ihnen vollen Zugang zu Ihrem System. Sie müssen sich daher an Ihrem System anmelden. Die Befehle, die Sie dann in der Eingabeaufforderung eingeben, werden mit den Rechten des angemeldeten Benutzers ausgeführt.

Geben Sie in der gezeigten Aufforderung also den Benutzernamen und das dazugehörige Passwort ein. Beachten Sie dabei bitte folgendes:

i Hinweis:

  • Das Kennwort entspricht dem Passwort, das Sie auf Ihrem Server verwenden und nicht zwingend dem Initialisierungspasswort, welches Ihnen zugeschickt wurde.
  • Die Backspace-Taste funktioniert nicht, auch wenn es u.U. so aussieht.
    Wenn Sie sich bei der Eingabe des Benutzernamens oder dem Passwort vertippen, schlägt die Authentifizierung fehl und der Channel wird geschlossen. Sie müssen dann in der SAC noch einmal eine neue Eingabeaufforderung erstellen.
  • Lassen Sie das Feld "Domäne" leer, wenn Ihr Server nicht Teil einer ActiveDirectory Domäne ist.
    Wenn Sie nicht wissen ob Ihr Server Teil einer Domäne ist, lassen Sie das Feld leer.

Die Verbindung zwischen Ihrem Terminal Programm (PuTTY) und dem SSH Server ist verschlüsselt. Ihre Benutzerdaten werden zu Ihrer Sicherheit also nicht im Klartext übermittelt.

Beispiel:

Geben Sie die Anmeldeinformationen ein.
Benutzername: Administrator
Domäne :
Kennwort : ********█

Ist die Authentifizierung erfolgreich, sehen Sie den gewohnten Prompt der Eingabeaufforderung:

Microsoft Windows [Version 5.2.3790]
(C) Copyright 1985-2003 Microsoft Corp.

C:\WINDOWS\system32>█

Sie haben jetzt die Möglichkeit Dienste zu starten/stoppen, Dateien zu editieren/kopieren/löschen oder umzubenennen, Filterregeln zu deaktivieren uvam. Beachten Sie jedoch, dass Sie keine graphischen Anwendungen verwenden können.

Sie werden vielleicht bemerken, dass die Terminal-Ausgabe auf 24 Zeilen beschränkt ist. Sollten Sie Hilfetexte, Listen o.ä. Abschnittweise darstellen wollen, können Sie Textausgabe mit dem Pipe-Operator ("|") in das Programm more umleiten. z.B:
dir C:\WINDOWS\system32|more █ Das Pipe-Zeichen finden Sie auf einer deutschen Tastatur links unten. Zum Eingeben muss gleichzeitig die AltGr (oder Strg und Alt) gedrückt werden.

Wie kann ich....

● ... Dienste starten/stoppen?

Mit dem Befehl net start lassen sich alle zur Zeit gestarteten Dienste auflisten. (Ggf. mit |more Bildschirmweise ausgeben).
Weitere Dienste lassen sich mit net start Dienstname starten. Dienstnamen mit Leerzeichen müssen in Anführungszeichen eingeschlossen werden, z.B.:
net start "Dienstname mit Leerzeichen"
Das Stoppen von Diensten funktioniert analog dazu mit dem Befehl net stop

● ... Filterregeln deaktivieren?

Beispiel: Sie haben die IPSec Filterregeln editiert und sich dabei versehentlich selbst ausgesperrt. Sie können die Filterregeln deaktivieren, indem Sie den zugehörigen Dienst stoppen. Beachten Sie dabei aber unbedingt, dass dabei alle Filterregeln deaktiviert werden.

Korrigieren Sie den Fehler schnellstmöglich und starten Sie den Dienst wieder. Lassen Sie niemals die Filterregeln über längere Zeit deaktiviert!!

Der Befehl net stop "IPSEC Services" deaktiviert alle Filterregeln Ihres Servers.

Zum erneuten Starten geben Sie net start "IPSEC Services" ein oder benutzen Sie die Diensteverwaltung auf Ihrem Server (über RemoteDesktop).

~Achtung! Ihr Server kann nach Abschaltung der IPSec Filterregeln wesentlich leichter angegriffen werden!
Lassen Sie die Filterregeln niemals über längere Zeit deaktiviert!!

● ... Dateien editieren?

Wie schon erwähnt, können keine graphischen Anwendungen verwendet werden; also auch kein Notepad o.ä. Es gibt aber noch den aus DOS-Zeiten stammenden Edit-Befehl.

Mit dem Befehl Edit C:\Test.txt lässt sich die Textdatei "C:\Test.txt" editieren.
Sollte Ihr Fenster dabei so aussehen, haben Sie eine falsche Kodierung eingestellt:

Wie Sie die richtige Kodierung einstellen, finden Sie unter Einrichten eines Zugangs.

Sonderzeichen:

Das Editieren in einer textbasierten Anwendung über einen Terminal hat ein paar Tücken. Geben Sie mit einer deutschen Tastatur z.B. einen Backslash ein, wird stattdessen hartnäckig ein ß (SZ) erscheinen. Ähnliches Verhalten entsteht bei allen anderen Zeichen, die normalerweise über die AltGr-Taste verfügbar sind, u.a.: ~ [ ] { } @
Das Problem entsteht beim Durchreichen der für die Sonderzeichen nötigen Steuerbefehle über die Terminal-Emulation und die Eingabeaufforderung bis hin zur Anwendung - in diesem Fall "Edit". Das Verhalten wird also auch u.U. bei anderen Editoren/Anwendungen auftreten. In der Eingabeaufforderung direkt sollte es jedoch keine Probleme geben.

Um dennoch z.B. einen Backslash einzugeben, müssen die Steuerbefehle nach unten stehender Tabelle umgesetzt werden. Für einen Backslash drücken Sie normalerweise die Tasten AltGr und ß. In der Terminal Umgebung brauchen Sie dazu die Kombination Alt + ß. Entsprechen der Tabelle bekommen Sie "Alt" durch <Esc> und anschließend <Strg>A. Nur die Tastenfolge unmittelbar nach <Esc> (in diesem Fall "<Strg>A") muss gleichzeitig gedrückt werden (<Esc> vorher loslassen). Danach drücken Sie die Taste mit dem gewünschten Zeichen, also "ß" für den Backslash oder "q" für @.

Zum Verlassen (und Speichern) von Edit muss <Alt>F gedrückt werden, also: "<Esc>", "<Strg>A", dann "F". Damit öffnet sich das Filemenü von Edit, in dem Sie die bearbeitete Datei speichern und/oder Edit schließen können.

Funktion

Escape Sequenz

Pos1

<ESC> h

Ende

<ESC> k

Einfg.

<ESC> +

Entf.

<ESC> -

Bild auf

<ESC> ?

Bild ab

<ESC> /

Alt

<ESC> <Strg>A

Strg

<ESC> <Strg>C

F1

<ESC> 1

F2

<ESC> 2

F3

<ESC> 3

F4

<ESC> 4

F5

<ESC> 5

F6

<ESC> 6

F7

<ESC> 7

F8

<ESC> 8

F9

<ESC> 9

F10

<ESC> 0

F11

<ESC> !

F12

<ESC> @

● ... ZoneAlarm deinstallieren?

ZoneAlarm ist - wie die meisten kostenlosen Firewall-Anwendungen - nicht für Server geeignet! Lesen Sie dazu bitte auch den Abschnitt Firewalls. Verwenden Sie stattdessen besser die IPSec Filter.

Mit folgender Anleitung kann ZoneAlarm (ZA) evtl. deinstalliertet werden. Sollten Sie hiermit keinen Erfolg haben, können Sie den Server nur noch neu aufsetzen lassen (alle Daten gehen verloren).

Um ZA zu deinstallieren, müssen zunächst zwei Dienste gestoppt werden, die eine textbasierte Deinstallation verhindern würden. Hierfür lassen sich die zugehörigen Prozesse beenden (kill). Danach wird ZoneAlarm mit zauninst.exe deinstalliert.

  • Geben Sie in der Eingabeaufforderung folgende Befehle ein:

    TASKKILL  /F /IM zlclient.exe /T
    TASKKILL  /F /IM vsmon.exe /T

  • Wechseln Sie danach in das Verzeichnis "C:\Program Files\Zone Labs\ZoneAlarm"

  • Rufen Sie dann folgenden Befehl auf:

    zauninst.exe /s

  • Warten Sie ca. eine Minute
  • Starten Sie den Rechner neu (von der SAC aus mit restart)

Nach einigen Sekunden sollte der Server wieder erreichbar sein, z.B. mit ping.

i Allgemeine Hinweise:

  • Aus Sicherheitsgründen wird Ihre SSH Sitzung nach ca. 10 Minuten beendet. Sie können sich aber jederzeit erneut anmelden.
  • Es kann nur eine Sitzung gleichzeitig erfolgen. Findet bereits eine Sitzung statt, werden weitere Verbindungen abgelehnt.


Webserver

Windows 2008 bietet einen leistungsstarken, zuverlässigen Webserver. Unter dem Oberbegriff "Internet Information Services" (IIS) finden sich über 40 Komponenten die je nach Einsatzgebiet installiert werden können. Dieses Kapitel beschäftigt sich "nur" mit dem Webserver (Websites) und den dazugehörigen Einstellungen für Anwendungspools und Webdiensteerweiterungen. Dokumentation für SMTP und FTP-Server finden Sie in den jeweiligen Kapiteln.

Die IIS Verwaltung befindet sich unter Start -> Verwaltung -> "Internetinformationsdienste-Manager"

Wenn Sie den Baum "Sites" öffnen sollten Sie ungefähr folgendes sehen:

Jeder Eintrag unter "Websites" entspricht einem eigenständigen virtuellen Webserver (Instanz). In der Übersicht steht u.a. die Beschreibung, der Zustand und der Port, der vom virtuellen Server verwendet wird.

Der Name ist willkürlich und hat keinen Einfluss auf die Funktion

Die ID ist eine eindeutige Nummer, die für die interne Verwaltung verwendet wird; sie wird normalerweise automatisch vergeben und ist nicht änderbar.

In der Spalte Status wird angegeben ob der virtuelle Server gerade ausgeführt wird oder ob die Instanz gestoppt wurde.

Die Bindungen entscheiden, ob ein virtueller Server für eine bestimmte Anfrage in Bezug auf den Domainnamen zuständig ist. Mehr dazu unter Bindungen.Als IP-Adresse ist überall der Wert " * Keine zugewiesen" eingetragen. Jeder virtuelle Server ist damit an "alle" IP-Adressen des Servers gebunden.
Sollten Sie mehrere IP-Adressen haben, können Sie jede Instanz an eine bestimmte Adresse binden.

Pfad gibt an, wo der IIS die Dateien für die Domain sucht (das sog. DocRoot).

In der Liste finden Sie auch einen Eintrag in der Form "Default Web Site" dem Ihre erste Domain und eine Subdomain "s1234.onlinehome-.server.info zugeordnet ist. Die Domain zeigt auf das Verzeichnis "%SystemDrive%\inetpub\wwwroot",

Neue Domain eintragen

Um eine neue Domain einzutragen klicken Sie mit der rechten Maustaste auf "Sites" und wählen "Webseite hinzufügen"

Sitename: Der Sitename wird links in der Baumstruktur angezeigt, hat ansonsten aber keine Funktion.

Anwendungspool auswählen: Hier kann der AppPool der Website angegeben werden. (Näheres siehe Anwendungspools)

Physikalischer Pfad: Hier geben Sie den Ordner an, der die Websiteinhalte enthält, das sog. DocRoot

Typ: Hier haben Sie die Auswahl zwischen http und https. Wählen Sie dort http. Die Einrichtung einer SSL Verbindung (https) ist nachfolgend unter SSL beschrieben.

IP Adresse: Hier sollte "kein zugewiesen" ausgewählt bleiben. Es kann auch eine IP Adresse (V4 und V6) ausgewählt werden.
Informationen zum Thema IPv6 finden Sie unter http://de.wikipedia.org/wiki/Ipv6

Port: Hier sollte für eine Website der Standardport 80 ausgewählt werden.

Hostname: Der Hostname ist der Domainname den Sie einrichten möchten z.B. "www.example.com"

Website sofort starten: Eine Website kann auch deaktiviert bleiben, wenn z.B. noch Einstellungen gemacht werden müssen. Ist dieser Punkt markiert, wird die Site direkt gestartet.

Mit der Bestätigung von "OK" ist die Einrichtung schon abgeschlossen.

Bindungen

Bindungen oder auch HostHeader sind u.a. aus der Knappheit der IPv4 IP-Adressen entstanden und dienen dazu, mehrere Domains mit einer einzigen IP-Adresse zu verwalten. Bei der Anfrage eines Browsers wird neben dem gewünschten Dateinamen auch der dazugehörige Domainname übertragen. Ein einzelner Webserver kann so die Anfragen vieler verschiedener Domains annehmen und bearbeiten. Jede Anfrage wird nachträglich anhand des Domainnamens (mit einem virtuellen Server) dem gewünschten Verzeichnis zugewiesen.

Für dieses Beispiel bedeutet das, dass mehrere virtuelle Server zwar für jeweils unterschiedliche Domains zuständig sein können, gleichzeitig aber die selbe IP-Adresse und den selben Port (80) verwenden. Der übergeordnete Webserver weist die Anfragen anhand der HostHeader den entsprechenden virtuellen Webservern zu. Wenn Sie eine Domain beantragt haben, existieren zwei virtuelle Server mit der eben beschriebenen Konfiguration: einer für Ihre beantragte Domain, ein Zweiter für die Domain in der Form "s1234.rootmaster.info" (oder ähnlich).

Die HostHeader-Konfiguration für Ihren Server finden Sie im Kontextmenü der Domain (Rechtsklick auf den Domainnamen > Bindungen bearbeiten) :

Ihre Domain wurde nur mit "www" im Nameserver registriert, sodass ein Aufruf von http://example.com nicht möglich ist. Damit das funktioniert muss über den Button "Hinzufügen" noch "example.com" eingefügt werden.

Sollten Sie Subdomains beantragt haben, denken Sie beim Einrichten daran, die vollen Domainnamen in den HostHeader einzutragen, z.B. "sub.domain.de".

Zusätzlich können Sie zu Testzwecken die IP-Adresse in einen HostHeader eintragen. Ihr Server wäre dann beispielsweise auch über http://212.123.456.789 erreichbar. (Wenn Ihr Server mit DHCP konfiguriert wurde, sollten Sie sich nicht darauf verlassen, dass die IP-Adresse Ihres Servers dauerhaft unverändert bleibt.)

i Hinweis: Falsch konfigurierte HostHeader sind eine häufige Fehlerursache. Achten Sie darauf, dass die Kombinationen aus IP-Adresse und HostHeader stets eindeutig sind. Gleiche HostHeader in verschiedenen virtuellen Server können u.a. dazu führen, dass einer der beiden Server sich nicht mehr starten lässt.

SSL

Sie können SSL-Zertifikate installieren, um HTTPS-Verbindungen zu ermöglichen. Allerdings kann pro IP-Adresse nur ein Zertifikat verwendet werden. Der Grund hierfür liegt im Konzept des HostHeaders. Da der HostHeader als Teil der Anfrage übertragen wird, ist auch diese Information bei einer SSL-Verbindung verschlüsselt. Der Webserver kann also keinen virtuellen Server zuweisen, da er den HostHeader nicht kennt. Die Zuweisung muss also über IP-Adresse und Port vorgenommen werden.

i Hinweis:
Achten Sie bei der Beantragung eines SSL-Zertifikats auf den korrekten Domainnamen. Dieser ist Teil des Zertifikats. Es gibt eine Fehlermeldung beim Client wenn der aufgerufenen Domainname und der Domainname des Zertifikats nicht 100%ig übereinstimmen. Dies gilt auch für die Erweiterung "www.".

Um ein Zertifikat einzubinden, klicken Sie links auf den Server und dann in der Mitte auf "Serverzertifikate":

Danach klicken Sie links im Fenster auf importieren. Jetzt können Sie die .pfx Datei auswählen und das Passwort eingeben.

Jetzt verfügt der Server über das Zertifikat und es kann einer Domain zugeordnet werden

Anwendungspools

Alle Seiten und Anwendungen, die nicht statisch sind (statisch: reine HTML-Seiten, Grafiken etc.), werden vom Server ausgeführt. Um die Auswirkungen von Code verschiedener virtueller Server möglichst granular verwalten zu können, wurden im IIS 7 Anwendungspools (Application Pools, AppPools) eingeführt.

Jeder Anwendungspool bekommt im System einen eigenen Prozess. Damit können Anwendungen eines Pools niemals Anwendungen eines anderen Pools beeinflussen. Führt eine Anwendung beispielsweise zum Absturz eines Prozesses, ist davon nur der zugehörige Pool betroffen. Webserver und andere Pools funktionieren weiterhin ungestört.

Zusätzlich können Ressourcen wie Speicher (RAM), Prozessorauslastung und benötigte Prozessorzeit für jeden Anwendungspool getrennt beschränkt werden. Pools, die innerhalb eines Zeitraums zu viele Fehler verursachen können automatisch deaktiviert werden.

Anwendungspools können automatisch neu gestartet werden (Recycling), z.B. jede Nacht oder wenn bestimmte Ressourcen überschritten werden. Beachten Sie aber, dass dabei alle aktuellen Sitzungsinformationen (Sessionvariablen) verloren gehen.

Sie können beliebig viele Anwendungspools anlegen. Die Anzahl ist lediglich durch die Ressourcen des Servers beschränkt. Jeder laufende Pool kostet System-Ressourcen für die Verwaltung des Prozesses (Overhead). Ihr System sollte aber mit bis zu ca. 25 Anwendungspools keine Probleme haben. Die genaue Anzahl ist abhängig von

  • der Speicher- und Prozessorausstattung Ihres Servers
  • der Anzahl und Art von Anwendungen in den Pools
  • der Anzahl der Zugriffe auf diese Anwendungen und...
  • dem Ressourcenbedarf anderer Anwendungen/Programme auf dem Server.

Anwendungen lassen sich in den Eigenschaften einem bestimmten Pool zuweisen. Auf der Karte "Basisverzeichnis" (bzw. "Verzeichnis" wenn es sich um eine untergeordnete Anwendung handelt) können Sie unten einen zuständigen Anwendungspool auswählen. Neue Pools können mit einem Rechtsklick auf "Anwendungspools" angelegt werden.

Da jeder Pool auch einer Identität (Benutzer) zugeordnet wird, laufen alle enthaltenen Anwendungen mit diesen Rechten. Anwendungen in einem Pool der als Administrator läuft (nicht empfohlen!), hätten dann also auch administrative Rechte, könnten entsprechende Dateien auslesen, den Server herunterfahren usw.

FrontPage Extensions

Die Frontpage Extentions sind nicht mehr vorinstalliert in den Windows 2008 Images. Sie können aber unter http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1630 die Extention runterladen.

Server–Side Includes (SSI)

Mit Server-Side Includes lassen sich Eigenschaften von Dateien und Inhalte von Variablen auch in statischen HTML-Seiten einbinden. Zudem kann der Quelltext kompletter Dateien eingefügt werden. So lässt sich z.B. eine Kopf- oder Fußzeile erstellen, die dann nicht in jeder Seite verwaltet werden muss.

Im Auslieferungszustand werden SSIs nicht verarbeitet. SSIs sind auch in ASP-Seiten möglich.

Um die SSI Unterstützung zu installieren, wählen Sie im Server Manager (Start > Servermanager ) "Rollen". Im Hauptfenster können Sie dann unter "Rollendienste" "Rollendienste hinzufügen" anklicken und "Serverseitige Includes" auswählen. Danach werden SSI Scripte mit der Endung .shtml ausgeführt. Weitere Dateiendungen lassen sich im IIS unter "Mime-Typ" konfigurieren:

Beachten Sie bitte, dass der Benutzer, unter dessen Namen eine Seite aufgerufen wird ("IUSR"), Ausführberechtigungen auf das Verzeichnis (der Dateien mit den SSI-Direktiven) benötigt. Dies könnte möglicherweise ein Sicherheitsproblem verursachen, wenn dieser Benutzer gleichzeitig Dateien in diesem Verzeichnis erstellen darf.

SSI-Befehle:

  • include - Bindet eine Datei ein, z.B. Kopfzeilen, Logos.
    Beispiel: <!--#include file="/verzeichnis/kopfzeile.htm"-->

  • echo - Gibt den Inhalt einer Variable aus, z.B. das Datum der letzten Änderung der aktuellen Datei oder den Namen aus. Siehe auch SSI-Variablen.
    Beispiel: <!--#echo var="DOCUMENT_NAME"-->
  • flastmod - Gibt das Datum der letzten Änderung der angegebenen Datei aus.
    Beispiel: <!--#flastmod file="datei.txt"-->
  • fsize - Gibt die Größe einer Datei aus, z.B. bei Downloadlinks. Die Ausgabe lässt sich mit config sizefmt formatieren.
    Beispiel: <!--#fsize file="sample.txt"-->
  • config - Konfiguration von Größenausgabe (gültig: "bytes" oder "abbrev") oder Error-Hinweis.
    Beispiel: <!--#config sizefmt="bytes"-->
    Beispiel: <!--#config errmsg="Anzeige nicht möglich!"-->

SSI-Variablen

  • DOCUMENT_NAME - der aktuelle Dateiname
    Beispiel: <!--#echo var="DOCUMENT_NAME" -->
  • DOCUMENT_URI - der relative Dateiname (relativer Pfad und Name der Datei)
    Beispiel: <!--#echo var="DOCUMENT_URI" -->
  • DATE_LOCAL - lokales Datum auf dem Server
    Beispiel: <!--#echo var="DATE_LOCAL" -->
  • DATE_GMT - aktuelles Datum in Greenwich
    Beispiel: <!--#echo var="DATE_GMT" -->
  • LAST_MODIFIED - Datum der letzten Änderungen der aktuellen Datei
    Beispiel: <!--#echo var="LAST_MODIFIED" -->

PHP mit IIS

Wenn Sie PHP-Seiten verwenden möchten, müssen Sie PHP zunächst installieren. Die Installationsdateien der Version 5.2.6 liegen auf Ihrem Server im Verzeichnis C:\Install\PHP oder können von http://www.php.net heruntergeladen werden.
Es gibt zwei Möglichkeiten PHP in den IIS einzubinden: als CGI mit der PHP.exe oder als ISAPI-Filter mit der php5isapi.dll. Die ISAPI-Variante ist wesentlich performanter und ressourcenschonender, wird jedoch vom Hersteller ausdrücklich nicht für den kritischen Produktivbetrieb empfohlen.
Folgende Anleitung beschreibt die Installation von PHP für den IIS 7 mit der ISAPI-Variante. Zusätzlich muss die ISAPI-DLL als Erweiterung ausführbarer Dateien erlaubt werden.

Installieren Sie PHP und wählen Sie bei der Installation "IIS Isapi module" aus.

Danach öffnen Sie den Internetinformationsdienstemanager und klicken auf "Handlerzuordnungen" Danach links auf "Skriptzuordnung hinzufügen".

Hier tragen Sie als Anforderungspfad "*.php" ein und wählen unter Ausführbare Datei "C:\Program Files (x86)\PHP\php5isapi.dll". Der Name kann beliebig gewählt werden z.B. "PHP". "C:\Program Files (x86)\PHP\php5isapi.dll". Der Name kann beliebig gewählt werden z.B. "PHP". Nachdem Sie auf "OK" geklickt haben, kommt eine Abfrage die Sie auch bestätigen müssen.

Zum Testen können Sie eine Datei test.php mit der Zeile <? phpinfo() ?> erstellen. Beim Aufruf in einem Browser sollte die aktuelle PHP-Konfiguration angezeigt werden.

Die Konfiguration von PHP wird in der Datei php.ini gespeichert, die im Windows-Verzeichnis (C:\WINDOWS) liegen muss. Als Vorlage kann die mitgelieferte Datei php.ini-dist oder php.ini-recommended verwendet werden.

  • Kopieren Sie die Datei php.ini-dist (oder php.ini-recommended) und nennen Sie die Kopie php.ini
  • Editieren Sie die Datei. Alle einstellbaren Parameter sind in der Datei beschrieben. Einige sind ggf. mit einem Semikolon auskommentiert.
    Damit PHP funktioniert, sollten Sie auf jeden Fall folgende Parameter setzen:
    • Include_Path=".;c:\php\includes" - ggf. weitere, wenn zusätzliche Module oder PHP-Frameworks vorhanden sind.
    • doc_root="C:\Inetpub\Www_root" - Root-Verzeichnis des virtuellen Webservers
    • cgi.force_redirect=0 - zwingend für den Einsatz mit IIS
    • fastcgi.impersonate=1 - passt den Sicherheitskontext an den im IIS konfigurierten Benutzer an (i.d.R. "IUSR").
  • Konfigurieren Sie die übrigen Parameter entsprechend Ihren Anforderungen.
  • Kopieren Sie die editierte php.ini in das Verzeichnis C:\WINDOWS.

i Hinweise:

  • Beachten Sie bitte, dass falsch konfigurierte PHP Erweiterungen ein Sicherheitsproblem darstellen können. Nehmen Sie sich daher bei der Installation Zeit und lesen Sie die Anleitung vollständig. Lesen Sie auch die Datei install.txt im Verzeichnis C:\PHP.
  • Eine ausführliche deutschsprachige Anleitung zu PHP finden Sie unter http://de2.php.net/manual/de/index.php
    Kapitel 15 behandelt das Thema Sicherheit mit Beispielen.
  • Viele fertige PHP-Skripte wurden für UNIX-basierte Server erstellt. Sie müssen evtl. Änderungen vornehmen (z.B. Pfade anpassen), damit diese Skripte funktionieren.


FTP-Server

Als Teil der "Internet Information Services" (IIS) hier ein paar kurze Hinweise zum FTP-Server.

Der FTP-Dienst ist im Auslieferungszustand eingerichtet und gestartet.

Die Bedeutung des Protokolls schwindet langsam aber sicher. Die Ursachen dafür liegen u.a. in den mangelhaften Sicherheits- und Authentifizierungsmöglichkeiten, sowie an der Funktion des FTP-Protokolls (siehe auch FTP), die Firewall- und Filterkonfigurationen erheblich in der Effizienz einschränkt.

Sollten Sie dennoch auf einen FTP-Server nicht verzichten wollen, können Sie den Dienst "FTP Publishing Service" im Dienste-Manager starten oder den IIS-Manager verwenden (Rechtsklick auf den virtuellen Server und "Starten" wählen).

Wie auch beim Webserver, werden beim FTP-Dienst virtuelle Server verwendet, die an verschiedene IP-Adressen und Ports gebunden werden können. Die Einstellungsmöglichkeiten sind jedoch bei weitem nicht so umfangreich. Im Wesentlichen zeigt ein virtueller FTP-Server auf ein bestimmtes Verzeichnis, dessen Inhalt dann abgerufen werden kann. Zusätzlich lassen sich beliebige Verzeichnisse als "virtuelle Verzeichnisse" in einen virtuellen Server einbinden. Hierbei ist zu beachten, dass virtuelle Verzeichnisse nicht auflistbar sind, bei einem "DIR"-Kommando also nicht angezeigt werden. Dieses Verhalten lässt sich auch nicht ändern.

Sollten Sie einen anderen Port als "21" verwenden, müssen Sie die Filterregeln entsprechend ändern.

Der FTP-Server erlaubt mit den vordefinierten Filterregeln nur "Active FTP". Dagegen lässt sich "Passive FTP" nicht konfigurieren, ohne dabei sämtliche Filterregeln außer Kraft zu setzen, wovor hier ausdrücklich gewarnt wird. Auf der anderen Seite beschränken sich viele Clients auf "Passive FTP" um ihrerseits den Einsatz von Firewalls überhaupt zu ermöglichen (siehe FTP).

Insgesamt betrachtet bleiben nur sehr wenig (bis gar keine) Gründe FTP anzubieten. Fast immer gibt es sinnvollere Alternativen wie z.B. HTTP, WebDav oder NetBIOS über VPN. Wenn Sie lediglich kleinere Datenmengen auf Ihren Server kopieren wollen, können Sie hierfür auch den Remote Desktop Client verwenden. Und Downloads lassen sich mit dem Webserver besser anbieten.

Verzeichnisse für verschiedene Benutzer anlegen

Mit Hilfe virtueller Verzeichnisse (Aliase), lassen sich Benutzerordner anlegen. Virtuelle Verzeichnisse werden logisch in den Verzeichnisbaum des Dateisystems eingehängt, werden aber in der Dateiauflistung (z.B. mit FTP-Befehl "DIR") nicht angezeigt. Die Zugriffsrechte der verschiedenen Benutzer auf Ordner und Dateien werden über deren Sicherheitseigenschaften festgelegt.
Beispiel:

Der Benutzer James Kirk soll ein eigenes Verzeichnis bekommen, in das nur er Zugriff hat.
Auf dem Server muss in der Benutzerverwaltung ein Benutzer für Herrn Kirk angelegt werden, z.B. "JamesK". Da sich Herr Kirk später mit "JamesK" anmeldet, muss das virtuelle Verzeichnis (der Alias) auch "JamesK" genannt werden.

Meldet sich JamesK via FTP an, befindet er sich standardmäßig im Verzeichnis C:\Test, also der Pfad des Aliases "JamesK".

Wenn ausschliesslich James Kirk Zugriff auf das Verzeichnis haben soll, müssen die Berechtigungen entsprechend gesetzt werden. Ggf. müssen Sie dabei unter den erweiterten Einstellungen die Vererbung von übergeordneten Elementen abschalten.

Beachten Sie bitte, dass der Benutzer JamesK auch im FTP-Basisverzeichnis Leserechte braucht, um sich einloggen zu können.

i Hinweise

  • Virtuelle Verzeichnisse können normale Ordner überlagern, wenn die Namen gleich sind: Wenn C:\Inetpub\Ftp_root\ das Basisverzeichnis des FTP-Servers ist und ein virtueller Ordner "Test" auf das Verzeichnis C:\Test verweist, würde er einen normalen Ordner C:\Inetpub\Ftp_root\Test überlagern. Ein Benutzer würde beim Wechsel vom FTP-Basisverzeichnis nach "Test" den Inhalt von C:\Test sehen und nicht den von C:\Inetpub\Ftp_root\Test.
  • Lese- und Schreibberechtigungen müssen sowohl in den Eigenschaften der virtuellen Verzeichnisse, als auch in den Sicherheitseigenschaften des Dateisystems vergeben werden.

~ACHTUNG: Stellen Sie keine sicherheitskritischen Daten über FTP zur Verfügung! Benutzername, Passwort und Daten eines Datentransfers werden unverschlüsselt übertragen und können u.U. von Angreifern mitgelesen werden! (siehe auch FTP)

Mögliche Fehlerursachen:

FTP Server lässt sich nicht starten

  • der HostHeader ist nicht eindeutig oder schon belegt
  • der Heimatpfad existiert nicht
  • der verwendete Port (21) wird von einer anderen Anwendung belegt. Läuft ein anderer FTP Server?

~Hinweise
  • Erlauben Sie keine anonymen Verbindungen, wenn auch gleichzeitig Dateien hochgeladen werden können. Ihr Server wird sonst mit an Sicherheit grenzender Wahrscheinlichkeit zur Tauschbörse.
  • Deaktivieren Sie nicht dauerhaft die Filterregeln um "Passive FTP" zu erlauben. Verwenden Sie besser alternative Protokolle.
  • FTP kennt keine Verschlüsselung. Benutzernamen und Passwörter werden immer im Klartext übertragen. Verwenden Sie deshalb niemals die Zugangsdaten Ihres Administrator-Kontos.


FTP Protokoll

FTP (File Transfer Protocol) ist als Protokoll auf Ihrem Server nur eingeschränkt verfügbar, sofern Sie die IP-Filterregeln nicht deaktiviert haben. Die Hintergründe sollen hier kurz erläutert werden:

Das Protokoll wurde zur Übertragung von größeren Dateien entwickelt. Sicherheit und Schutz vor Angriffen war zur Zeit der Einführung kein Thema. Zwar bietet FTP die Möglichkeit der Authentifizierung durch Benutzername und Passwort, diese Daten werden aber unverschlüsselt übertragen und können mit einfachen Analyseprogrammen mitgeschnitten werden. Der Ausschnitt aus einem kostenlosen Netzwerkanalyse-Programm zeigt den Inhalt eines Datenpaketes nach der Aufforderung, das Passwort einzugeben:

Im Parameter "PASS" wird das Passwort "anon@ymous.com" im Klartext übergeben. Für einen Hobby-Hacker ist es kein Problem aus aufgezeichneten Übertragungen nach dem Wort "PASS" zu suchen und so an Passwörter zu gelangen. Seien Sie sich dessen immer bewusst, wenn Sie wichtige Passwörter im Zusammenhang mit FTP verwenden.

FTP hat eine Besonderheit, die es von den anderen gängigen Protokollen unterscheidet: es werden mehrere Verbindungen aufgebaut. Eine Verbindung dient der Steuerung und Authentifizierung. Diese Steuerverbindung wird immer vom Client initiiert und verwendet serverseitig Port 21.
Für jede Übertragung von Verzeichnislisten und Dateien wird eine neue Verbindung hergestellt. Wie diese weitere Verbindung zustande kommt ist davon abhängig, ob FTP in der Variante "Active" oder "Passive" verwendet wird. Die beiden Varianten werden von fast allen FTP-Programmen und Servern unterstützt, müssen aber über die Steuerverbindung explizit festgelegt werden.

Active FTP

Nachdem der Client die Steuerverbindung über Port 21 mit dem Server hergestellt hat (Schritt 1 u. 2 im Bild), kann er darüber eine Datei anfordern. Dabei schickt er zusätzlich zum Namen der gewünschten Datei auch eine zufällige, bei sich freie Portnummer oberhalb von "1024" (1027 im Bild). Der FTP-Server öffnet anschließend die Datenverbindung (Aktiv) und verwendet dabei als "Absender"-Port die Port-Nummer 20 (FTP Datenport). Zielport der Datenverbindung ist die vom Client angegebene Portnummer (1027, Schritt 3).

Für eine clientseitige Firewall würde "Active FTP" bedeuten, dass alle Ports oberhalb von 1024 geöffnet werden müssten, da der Rückkanalport (hier: 1027) zufällig gewählt wird. Zudem initiiert der Server diese Verbindung, sodass eine Firewall nicht - wie sonst üblich - den speziellen Port nur dann öffnen kann, wenn er vom Client ausgehend benutzt wird.

Serverseitig lassen sich sehr einfach Filter erstellen, da nur die Ports 20 und 21 verwendet werden.

Passive FTP

Auch bei passiven FTP-Verbindungen wird zunächst eine Steuerverbindung über Serverport 21 hergestellt. Für eine benötigte Datenverbindung wählt jetzt jedoch der Server einen freien Port aus und fordert den Client auf, sich über diesen Port zu verbinden. Dabei wird sowohl der Client-Port als auch der Serverport der Datenverbindung zufällig gewählt und kann jeden beliebigen Wert zwischen 1024 und 65535 annehmen.

Clientseitig lässt dieses Verfahren eine Firewall zu, da beide Verbindungen vom Client initiiert werden und die benötigten Ports bei Bedarf von der Firewall-Software geöffnet werden können. Für den Server sieht es da schlechter aus: alle Verbindungen mit Portnummern > 1024 müssen erlaubt werden. Damit sind die Filtermöglichkeiten wesentlich beschränkt. Der Einsatz von IP-Filtern, wie sie auf Ihrem Server verwendet werden, ist damit unmöglich, weil keine Bereiche von Portnummern konfiguriert werden können.

Fazit

"Active FTP" ist aus Sicht eines Administrators besser zu verwalten und deshalb sicherer. "Passive FTP" ist für sicherheitsbewusste Anwender die einzige Wahl. Soll eine Datenverbindung zwischen Client und Server möglich sein, muss entweder der Server oder der Client auf einen erheblichen Anteil von Filter- und Firewallkonfigurationen verzichten.
Schon wegen der Klartextübertragung von Benutzername und Passwort macht ein FTP-Server keinen Sinn, um wirklich sensible Daten bereitzustellen. Zwar kann auch HTTP i.d.R. nicht mit verschlüsselten Passwörtern dienen, es lässt sich aber filtertechnisch vernünftig freigeben. Das Klartextproblem ließe sich zudem mit SSL (HTTPS) auf einfache Weise lösen.


SMTP

SMTP-Server Installieren

Der SMTP-Server ist aus Sicherheitsgründen nicht auf Ihrem Windows 2008 Standard-Server vorinstalliert.

Installation des SMTP-Servers:

1. Gehen Sie unter "Start" => "Verwaltung" auf die Auswahl "Server-Manager" und wählen dort den Punkt "Features"

2. Nun auf die Auswahl "Features hinzufügen" gehen und unter dem Assistent "Feature hinzufügen" den "SMTP-Server" in der Auswahlbox anhacken

3. Hier erscheint ein Hinweis das für den SMTP-Server noch weitere Features benötigt werden.
Diesen Hinweis mit dem Button "Erforderliche Features hinzufügen" bestätigen.

4. Nun das Fenster mit "Weiter" und "Installieren" bestätigen.

5. Nachdem die Installation erfolgreich durchgelaufen ist, bitte das Fenster mit "Schliessen" bestätigen.

Nun sollten Sie den SMTP-Server aus Sicherheitsgründen konfigurieren.


SMTP

SMTP-Server konfigurieren

Ihr Server bietet einen einfachen aber performanten SMTP-Dienst, der nicht nur zum Versenden, sondern auch zum Empfangen von E-Mails verwendet werden kann.

Sofern die Standardregeln ( >> Default Filter Rules , siehe auch "IPSec") aktiviert wurden, kann der SMTP-Server ohne weitere Einstellungen zum Versenden von E-Mails eingesetzt werden.

Der Dienst nimmt zu versendende Mails an, ermittelt den zuständigen Mailserver des Empfängers und verschickt die Nachricht entsprechend. Sie benötigen keinen zusätzlichen Server eines Providers.

In der Regel werden Sie den Dienst mit anderen Programmen/Komponenten benutzen, z.B. um von einer Webseite aus eine E-Mail zu verschicken.
Verwenden Sie dabei als SMTP-Server die Adresse "127.0.0.1" (localhost).

Zur Konfiguration kommen Sie unter "Start" => "Verwaltung" => "Internetinformatiosdienste 6.0-Manager"

Mit einem Rechtsklick auf den "SMTP Virtual Server" unter dem Punkt "Eigenschaften" können Sie folgendes Einstellen:

Allgemein:

Da Ihr Server eine dynamische IP-Adresse (via DHCP) erhält, sollte im Feld "IP-Adresse", "keine zugewiesen" stehen.

Der Dienst wird somit an potentiell "alle" IP-Adressen auf dem Server gebunden (es gibt nur eine).

Bei evtl. Fehlersuche lohnt es sich, die Protokollierung zu aktivieren. Unter "Eigenschaften" lässt sich ein Verzeichnis für die Logdatei angeben (zum Beispiel C:\WINDOWS\System32\LogFiles). In diesem Verzeichnis wird automatisch ein Weiteres angelegt, das dem SMTP-Server entspricht (es kann mehrere geben), in der Regel "SMTPSVC1". Darin wiederum werden die einzelnen Logdateien abgelegt.

Vergessen Sie nicht auf dem Reiter "Erweitert" anzugeben was Sie mitloggen möchten (Datum, IP-Adresse, Methode etc.)

Zugriff:

Über die Zugriffseinstellungen wird bestimmt, wer den Dienst benutzen darf.

Wichtig sind vor allem die Einstellungen "Verbindung" und "Relay (Weitergabe)".

"Verbindung" bezieht sich auf eingehende Verbindungsversuche. Hier ist die IP-Adresse "127.0.0.1" voreingestellt; somit können nur Anwendungen auf dem Server auf den Dienst zugreifen. Ausgehende Verbindungen des Dienstes selbst sind dadurch nicht eingeschränkt.

"Weitergabe" findet immer dann statt, wenn der Server selbst nicht zuständig ist.

Beispiel:

Sie möchten eine E-Mail an mail@adresse.xy verschicken. Ihr SMTP-Server nimmt die Nachricht entgegen und ermittelt den für "adresse.xy" zuständigen Mailserver. Wenn Ihr eigener SMTP-Server nicht für "adresse.xy" zuständig ist, muss er die Nachricht "weitergeben" (Relay).

Die Voreinstellung erlaubt wieder nur lokalen Anwendungen die Weitergabe von E-Mails. Diese Einstellung sollten Sie nicht ändern!

Wenn Sie beliebigen Adressen die Weitergabe erlauben würden, könnten Dritte Ihren SMTP-Server benutzen, um beispielsweise "Spam" (Werbemails) auf Ihre Kosten zu versenden (offenes Relay).

Nachrichten:

Bietet diverse Einstellungen zu den einzelnen Nachrichten, die verschickt werden sollen.

Die Einstellungen sind weitestgehend selbsterklärend.

Im "BadMail"-Verzeichnis werden Nachrichten abgelegt, die aus verschiedenen Gründen nicht zugestellt werden können. Hier sollten Sie ab und zu nachschauen, insbesondere wenn Sie verschickte E-Mails vermissen.

Übermittlung:

Sollten aus irgendwelchen Gründen eine Nachricht nicht (sofort) zugestellt werden können, bestimmen die hier gezeigten Einstellungen das weitere Verhalten.

Für den normalen Betrieb ist eine Änderung der Werte nicht nötig.

Unter "Zustellung > Erweitert" haben Sie die Möglichkeit einen "Smarthost" anzugeben. Ausgehende Nachrichten werden dann immer über diesen Smarthost verschickt, egal ob der zuständig ist oder nicht. Für den normalen Betrieb sollte dieses Feld leer sein.

Die verbleibenden Kategorien "LDAP-Routing" und "Sicherheit" sollten Sie nur in ganz speziellen Fällen ändern.

Verzeichnisse:

Alle Nachrichten, die der SMTP-Server entgegen genommen hat werden sofort als Dateien gespeichert um evtl. Verlust durch einen Reboot zu verhindern.

Die Nachrichten (Dateien) werden dann dem Status entsprechend verschoben, z.B. "angenommen" oder "warten".

Die jeweiligen Ordner befinden sich unterhalb von "C:\Inetpub\mailroot".
"Badmail" dient als Endstation für nicht zustellbare Nachrichten.

In das Verz. "Pickup" können Sie als Textdateien gespeicherte E-Mails ablegen, die dann sofort verschickt werden.

Nutzen Sie diese Funktion bitte nur, wenn Sie mit dem Format einer gültigen E-Mail vertraut sind. Zudem sollten Sie die Dateien zuerst in einem anderen Verzeichnis erstellen, speichern und dann verschieben.

Im Ordner "Drop" werden Nachrichten abgelegt, für die der Server zwar zuständig ist (die eigene Domain), für die es aber keine Mailbox gibt.
Die anderen Verzeichnisse dienen der Funktionalität des SMTP-Dienstes und sollten nicht geändert werden.
Hinweis:

Für die DNS-Auflösung der MX-Einträge benötigt der SMTP-Server den TCP Port 53, nicht wie sonst üblich den UDP Port!

Es existiert bereits eine entsprechende IP-Filterregel, die Sie nicht deaktivieren sollten.


Mail

Mail Server

Microsoft Windows Server 2008 bietet keinen POP3- oder IMAP-Dienst mehr an. Allerdings steht im Image "Windows 2008 mit Plesk" MailEnable als Maildienst zur Verfügung.

MailEnable enthält ein umfangreiches Hilfesystem und gut durchdachte Konfigurationsassistenten. Damit bauen Sie in wenigen Schritten einen Mailserver auf und passen den Mailserver im Handumdrehen an Ihre individuellen Bedürfnisse an. Die Software unterstützt POP3, SMTP sowie SMTP-Authentifizierung. Sperren Sie bestimmte IP-Ränge, legen Sie Mailing-Listen an und verschicken Sie auf Knopfdruck Nachrichten an alle Nutzer Ihres Mail-Dienstes.

Ein spezielles Server-Kontrollzentrum bietet direkten Zugriff auf wichtige Administrator-Funktionen. So schalten Sie bei Bedarf den Mailserver ab, legen neue Konten an, löschen Nachrichten, richten Weiterleitungen ein, vergeben Passwörter und maximalen Speicherplatz für einzelne Nutzer.

Weitere Informationen zu MailEnable finden Sie unter http://www.mailenable.com/


CDOSys

E-Mails mit CDOSYS versenden

CDOSYS ist eine von Microsoft mitgelieferte DLL zum Versenden von E-Mails. Die DLL lässt sich problemlos in z.B. ASP oder VBScript einbinden; es müssen keine weiteren Komponenten installiert werden.

Beispiel für ASP:

<!--METADATA TYPE="typelib"
UUID="CD000000-8B95-11D1-82DB-00C04FB1625D" NAME="CDO for Windows 2000 Type
Library" -->
<!--METADATA TYPE="typelib" UUID="00000205-0000-0010-8000-00AA006D2EA4"
NAME="ADODB Type Library" -->
<html>
<body>
<%
Dim oMessage, oConfig
Dim strTo, strFrom, strSubject, strBody

Set oMessage = CreateObject("CDO.Message")
Set oConfig= CreateObject("CDO.Configuration")

oConfig.Fields(cdoSendUsingMethod) = cdoSendUsingPort
oConfig.Fields(cdoSMTPServer) = "127.0.0.1"
oConfig.Fields(cdoSMTPServerPort) = 25
oConfig.Fields(cdoSMTPConnectionTimeout) = 10
oConfig.Fields(cdoSMTPAuthenticate) = cdoAnonymous
oConfig.Fields.Update

strTo = "Empfänger@domain_de"
strFrom = "AbsenderAdresse@domain_de"
strSubject = "Betreff: Test"
strBody = "Inhalt der E-Mail"

Set oMessage.Configuration = oConfig

oMessage.To = strTo ' Empfaenger
oMessage.From = strFrom ' Absender
oMessage.Subject = strSubject ' Betreff
oMessage.TextBody = strBody ' Nachricht

On Error Resume Next
oMessage.Send

If Err.Number = 0 Then
Response.Write("Nachricht wurde erfolgreich verschickt!")
Else
Response.Write("FEHLER! " & Err.Description)
Err.Clear
End If
On Error Goto 0
%>
</body>
</html>

Erläuterung:

Die beiden ersten Zeilen mit den METADATA - Tags importieren diverse Deklarationen um z.B. Konstanten wie cdoSendUsingPort oder cdoAnonymous bekannt zu machen.
Mit CreateObject wird ein Message- und ein Konfigurations-Objekt erstellt. Die Konfiguration gibt an, wie Nachrichten verschickt werden sollen. Im Beispiel soll der lokale SMTP-Server mit der IP-Adresse "127.0.0.1" auf Port 25 verwendet werden.

Das Objekt oMessage enthält die eigentliche, einzelne E-Mail, die verschickt werden soll, also mindestens Empfänger, Absender, Betreff und Inhalt (Empfänger und Absender entsprechend anpassen). Das zuvor parametrierte Konfigurations-Objekt (oConfig) wird dem Message-Objekt zugewiesen. Danach kann die Nachricht mit oMessage.Send verschickt werden. Um dabei evtl auftretende Fehler abzufangen, wurde im Beispiel die On Error Resume Next-Anweisung benutzt. Der Fehlercode lässt sich dann mit Err.Number bzw. Err.Desription abfragen.

iHinweise:

  • Das Konfigurations-Objekt kann auch in einer Global.asa erstellt und über eine Session-Variable verwendet werden.
  • Wenn Sie den vorinstallierten Microsoft SMTP-Dienst verwenden, können Sie das Konfigurations-Objekt auch weglassen.

Beispiel für VBScript

Analog zu dem ASP-Beispiel funktioniert das Versenden auch mit VBScript; allerdings fehlt hier die Deklaration der Konstanten für das Konfigurations-Objekt. Mit vorinstalliertem Microsoft SMTP-Dienst reduziert sich das Skript aber auf folgende Zeilen:

Set oMessage= CreateObject("CDO.Message")
oMessage.From = "monitor@domain_de"
oMessage.To = "admin@domain_de"
oMessage.Subject = "Betreff"
oMessage.Textbody = "Inhalt der E-Mail"
oMessage.Send

Es wird keine Konfiguration benötigt, wenn der lokale Microsoft SMTP-Dienst genutzt wird. Soll jedoch eine spezifische Konfiguration verwendet werden - etwa ein anderer SMTP-Server -, so müssen die eigentlichen Werte der Konstanten direkt verwendet werden (nicht deren Namen). Alternativ kann auch ein Include-File oder eine Funktion benutzt werden, um die Konstanten zu laden. Eine VBS-Funktion, die die Werte als globale Konstanten deklariert, kann z.B. hier kopiert werden.

Zusätzliche Einstellungen

Mehrere Empfänger

Sie können mehrere Empfänger gleichzeitig angeben, indem Sie die einzelnen Adressen mit einem Komma trennen, z.B.:

oMessage.To = "admin@domain_de, zweiter@empfaenger, dritter@empfaenger"

E-Mail mit Anhang verschicken

Attachments (Anhänge) werden mit oMessage.AddAttachment <Pfad> hinzugefügt. "<Pfad>" kann dabei ein absoluter Pfad auf dem Server oder ein Link (URL) zu einer Datei sein.
Beispiel:

oMessage.AddAttachment "C:\UrlaubsFotos\urlaub.jpg"
oder
oMessage.AddAttachment Server.MapPath("./fotos/urlaub.jpg")
oder
oMessage.AddAttachment "http://eine_domain.de/fotots/urlaub.jpg"

HTML-Mails verschicken

Es können auch HTML-codierte E-Mails verschickt werden. Der Message-Inhalt muss dann mit "<html>" beginnen und ein "<body>"-Tag haben. Statt oMessage.TextBody verwenden Sie dann oMessage.HTMLBody um den Inhalt zuzuweisen, z.B.:

...
oMessage.HTMLBody = "<html><body>HTML-codierter Inhalt der E-Mail</body></html>"
...

Wenn Bilder "inline" mit angezeigt werden sollen, können diese mit oMessage.AddRelatedBodyPart angehängt werden. Dabei muss der relative Pfad angegeben werden, unter dem das Bild im HTML-Code referenziert wird. Im Beispiel wird das Bild C:\abc.gif im HTML-Quelltext mit "imges/xyz.gif" referenziert:

...
Const cdoRefTypeId = 0
Const cdoRefTypeLocation = 1
...
oMessage.HTMLBody = "<html><body>Ein 'Inline'-Bild: <img src=""images/xyz.gif""></body></html>"
oMessage.AddRelatedBodyPart "C:\abc.gif", "images/xyz.gif", cdoRefTypeLocation
...

Das Bild wird an die E-Mail angehängt und kann von Mailprogrammen sofort dargestellt werden. Es muss nicht nachträglich aus dem Internet geladen werden, was inzwischen aus Sicherheitsgründen von vielen Anwendungen, wie z.B. Outlook 2003, unterbunden wird. Der Nachteil ist, dass die Mail dadurch etwas größer wird.


MSSQL

Übersicht MS SQL Express 2005/2008

MS SQL Server Express ist eine Clientdatenbank-Plattform, die dem MSSQL Server 2005/2008 nachgebildet wurde. Zu ihren charakteristischen Features gehören eine einfache Handhabung, eine robuste Clientdatenbank und die Integration mit Microsoft Visual Studio.

Features und Limitierungen:

 | MSDN | MS SQL Express 2005 | MS SQL Express 2008
Kontrolle der gleichzeitigen Arbeitsauslastung (Drosselung) | Ja | Nein | Nein
Einschränkung der Datenbankgröße | 2 GB | 4 GB | 4 GB
RAM-Unterstützung | 2 GB | 1 GB | 1 GB
SMP-Unterstützung | 2 (bzw. 1 bei Ausführen von MSDE unter Windows 98 oder Windows Millennium Edition) | 1 | 1
Mergereplikation | Ja | Ja, aber nur als Abonnent | Ja, aber nur als Abonnent
Transaktionsreplikation | Ja, aber nur als Abonnent | Ja, aber nur als Abonnent | Ja, aber nur als Abonnent
Snapshotreplikation | Ja | Ja, aber nur als Abonnent | Ja, aber nur als Abonnent
SQL Server Profiler | Nein | Ja, aber nur, wenn eine andere Edition von SQL Server 2005 auf demselben Computer installiert ist wie SQL Server Express. Hinweis:SQL Server Profiler wird nicht mit SQL Server Express installiert. | Nein
Optimierungs-Assistent für Database Engine (Datenbankmodul) | Nein | Nein | Nein
SQL Server-Agent | Ja | Nein | Nein
Active Directory-Registrierung | Nein | Ja | Ja

Weitere Informationen zu MSSQL finden Sie unter:

>> MS SQL Express 2005

>> MS SQL Express 2008


MSSQL2005

Microsoft SQL Server 2005 Express Edition

Die "Microsoft SQL Server 2005 Express Edition (SQL Server Express)" ist ein kleiner SQL Server, optimiert für kleinere Anwendungen. Der SQL Server Express wird z.B. von SharePoint verwendet (sofern aktiviert), kann aber auch als leistungsfähige Datenbank für beliebige Web-Anwendungen verwendet werden.
Im Auslieferungszustand ist der SQL Server Express gestoppt. Sie können den Dienst im Dienste Manager ("SQL Server (SQLEXPRESS)") jederzeit starten.

Falls der Dienst bei einem Systemstart "Automatisch" gestartet werden soll, müssen Sie den Starttyp im Dienste-Manager auf "Automatisch" einstellen.

Hinweis: Im "Windows 2008 Image mit Plesk" ist die Microsoft SQL Server 2005 Express Edition installiert,
im "Windows 2008 Standard Image" die Microsoft SQL Server 2008 Express Edition.

Wichtige Information: Um Konfigurationskonflikte zu vermeiden, verändern Sie die Konfiguration des Microsoft SQL Server 2005 Express Edition bitte nur in Ausnahmefällen manuell. Verwalten Sie die Datenbanken stattdessen über Plesk.

Zugriff

Aus Sicherheitsgründen erlaubt der SQL Server Express grundsätzlich nur lokale Verbindungen. Bei vielen Anwendungen, die SQL Server Express verwenden, findet der Datenzugriff ausschließlich auf lokaler Ebene statt, sodass diese Protokolle deaktiviert bleiben können. Um den Zugriff über das Internet zu ermöglichen, müssen Sie das Protokoll "TCP/IP" erlauben. Darüber hinaus müssen Sie den "SQL-Browser-Dienst" starten:

Zugriff über das Internet aktivieren:

  • Start - Programme - Microsoft SQL Server 2005 - Konfigurationstools - SQL Server-Oberflächenkonfiguration
  • In dem nun erscheinenden Fenster klicken Sie auf "Oberflächenkonfiguration für Dienste und Verbindungen"
  • Stellen Sie nun den Starttyp des SQL Server-Browsers auf Automatisch um und bestätigen mit "Anwenden"
  • Durch klicken des "Starten" Buttons wird der Dienst SQL Server-Browser gestartet

    • Aktivieren eines Netzwerkprotokolls:
  • Start - Programme - Microsoft SQL Server 2005 - Konfigurationstools - SQL Server-Konfigurations-Manager
  • Klicken Sie nun auf "SQL Server 2005-Netzwerkkonfiguration" - "Protokolle für 'SQLEXPRESS'"
  • Auf der rechten Seite erscheinen nun die installierten Protokolle. Durch einen Rechtsklick auf "TCP/IP - Aktivieren" wird der externe Zufriff erlaubt.

    • Microsoft SQL Server Management Studio Express

    Microsoft SQL Server Management Studio Express bietet Ihnen eine grafische Oberfläche zur Verwaltung der Microsoft SQL Server 2005 Express Edition. Das Microsoft SQL Server Management Studio Express stellt Ihnen die verschiedensten Werkzeuge zur Verfügung (z.B. Datenbanken erstellen/Sichern/Wiederherstellen/Editieren, Benutzerverwaltung, SQL Query und viele mehr). Nachfolgend möchten wir Ihnen die Wichtigsten erläutern.

    Starten des Microsoft SQL Server Management Studios:
  • Start - Programme - Microsoft SQL Server 2005 - SQL Server Management Studio Express

    • sa-Passwort

    Das Passwort des Datenbank-Administrators "sa" ist das Gleiche wie das Initialisierungspasswort des Windows-Administrators.

    Das "sa"-Passwort können Sie jederzeit mit dem Microsoft SQL Server Management Studio Express ändern. Dazu starten Sie das "Microsoft SQL Server Management Studio Express - Security - Logins - Rechtsklick auf den Benutzer sa - Propertiers". Geben Sie nun in den Feldern "Password" und "Confirm Password" Ihr neues Passwort ein und bestätigen mit "OK".

    SQL Query

    Microsoft SQL Server Management Studio Express stellt Ihnen ebenfalls eine textbasierte SQL-Verwaltung zur Verfügung. Diese können Sie ganz einfach durch einen Klick auf "New Query" starten.

    Sicherungen (Backups)

    Mit dem Management Studio lassen sich auch Sicherungen einzelner Microsoft SQL Server Express-Datenbanken erstellen oder zurückspielen.

    Erstellen einer Datenbank Sicherung:

  • Starten Sie das Management Studio
  • Databases - Rechtsklick auf die zu sichernde Datenbank - Tasks - Back Up...

  • Durch einen Klick auf "OK" wird nun ein Backup nach "C:\Program Files (x86)\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\" mit der Standardkonfiguration erstellt.

    • Wiederherstellen einer Datenbank Sicherung:
  • Starten Sie das Management Studio
  • Databases - Rechtsklick auf Databases - Tasks - Restore Database...
  • Im Feld "To database" wählen Sie nun die Datenbank aus, für die eine Sicherung zurückgespielt werden soll. Handelt es sich um eine Wiederherstellung einer Datenbank die noch nicht angelegt wurde, so geben Sie bitte den gewünschten Namen ein.
  • Wählen Sie nun "From device" aus
  • Klicken Sie nun auf "...". In dem sich nun öffnenden Fenster klicken Sie bitte auf "Add"
  • Bewegen Sie sich mit dem Datei-Explorer zu der Stelle an der Sie Ihre Sicherung gespeichert haben und wählen diese aus
  • Bestätigen Sie nun 2 mal mit "OK"
  • Im Feld "Select the backup sets to restore" wählen Sie nun bitte die zu wiederherstellende Datenbank aus und bestätigen mit "OK"
  • Es wird nun versucht Ihre Sicherung wiederherzustellen

    • i Hinweis:
    Kopieren Sie erstellte Sicherungsdateien regelmäßig auf einen anderen Rechner, um Ihre Daten auch bei Hardware-Verlust zu erhalten.

    Sonstiges

    i Hinweis:
    Die Microsoft SQL Server Express Edition kann nur eine CPU verwenden, in Systemen mit einem Dual Processor wird nur ein Prozessor verwendet. SQL Server Express kann nicht mehr als 1 GB RAM adressieren, zusätzlich ist die maximale Größe einer Datenbank auf 4 GByte beschränkt, die Anzahl der Datenbanken ist jedoch nicht eingeschränkt.


MSSQL2008

Microsoft SQL Server 2008 Express Edition

Die "Microsoft SQL Server 2008 Express Edition (SQL Server Express)" ist ein kleiner SQL Server, optimiert für kleinere Anwendungen. Der SQL Server Express wird z.B. von SharePoint verwendet (sofern aktiviert), kann aber auch als leistungsfähige Datenbank für beliebige Web-Anwendungen verwendet werden.
Im Auslieferungszustand ist der SQL Server Express gestartet. Sie können den Dienst im Dienste-Manager ("SQL Server (SQLEXPRESS)") jederzeit stoppen.

Falls der Dienst bei einem Systemstart nicht automatisch gestartet werden soll, müssen Sie den Starttyp im Dienste-Manager auf "Manuell" einstellen.

Hinweis: Im "Windows 2008 Image mit Plesk" ist die Microsoft SQL Server 2005 Express Edition installiert,
im "Windows 2008 Standard Image" die Microsoft SQL Server 2008 Express Edition.

Zugriff

Aus Sicherheitsgründen erlaubt der SQL Server Express grundsätzlich nur lokale Verbindungen. Bei vielen Anwendungen, die SQL Server Express verwenden, findet der Datenzugriff ausschließlich auf lokaler Ebene statt, sodass diese Protokolle deaktiviert bleiben können. Um den Zugriff über das Internet zu ermöglichen, müssen Sie das Protokoll "TCP/IP" erlauben. Darüber hinaus müssen Sie den "SQL-Browser-Dienst" starten:

Zugriff über das Internet aktivieren:

  • Start - Programme - Microsoft SQL Server 2008 - Konfigurationstools - SQL Server-Konfigurations-Manager
  • In dem nun erscheinenden Fenster klicken Sie auf "SQL Server-Dienste"
  • Stellen Sie nun den Starttyp des SQL Server-Browsers auf Automatisch um und bestätigen Sie diese Einstellung mit "Übernehmen / Ok"

  • Rechtsklicken Sie anschließend auf den SQL Server-Browsers Klicken Sie auf "Starten" um den Dienst SQL Server-Browsers zu starten.

    • Aktivieren eines Netzwerkprotokolls:

  • Start - Programme - Microsoft SQL Server 2008 - Konfigurationstools - SQL Server-Konfigurations-Manager
  • Klicken Sie nun auf "SQL Server-Netzwerkkonfiguration" - "Protokolle für 'P...'"
  • Auf der rechten Seite erscheinen nun die installierten Protokolle. Durch einen Rechtsklick auf "TCP/IP - Aktivieren" wird der externe Zugriff erlaubt.

    • MSSQL Server Management Studio

    Microsoft SQL Server Management Studio bietet Ihnen eine grafische Oberfläche zur Verwaltung der Microsoft SQL Server 2008 Express Edition. Das Microsoft SQL Server Management Studio stellt Ihnen die verschiedensten Werkzeuge zur Verfügung (z.B. Datenbanken erstellen/Sichern/Wiederherstellen/Editieren, Benutzerverwaltung, SQL Query und viele mehr). Nachfolgend möchten wir Ihnen die Wichtigsten erläutern.

    Starten des Microsoft SQL Server Management Studios:
  • Start - Programme - Microsoft SQL Server 2008 - SQL Server Management Studio
  • Das Verbindungsfenster bestätigen Sie bitte mit "Verbinden'"

    • sa-Passwort

    Das Passwort des Datenbank-Administrators "sa" ist das Gleiche wie das Initialisierungspasswort des Windows-Administrators.

    Das "sa"-Passwort können Sie jederzeit mit dem Microsoft SQL Server Management Studio ändern. Dazu starten Sie das "Microsoft SQL Server Management Studio - Sicherheit - Anmeldungen - Rechtsklick auf den Benutzer sa - Eigenschaften". Geben Sie nun in den Feldern "Kennwort" und "Kennwort bestätigen" Ihr neues Passwort ein und bestätigen mit "OK".

    SQL Query

    Microsoft SQL Server Management Studio stellt Ihnen ebenfalls eine textbasierte SQL-Verwaltung zur Verfügung. Diese können Sie ganz einfach durch einen Klick auf "Neue Abfrage" starten.

    Sicherungen (Backups)

    Mit dem Microsoft SQL Server Management Studio lassen sich auch Sicherungen einzelner Microsoft SQL Server Express-Datenbanken erstellen oder zurückspielen.

    Erstellen einer Datenbank Sicherung:

  • Starten Sie das Management Studio
  • Datenbanken - Rechtsklick auf die zu sichernde Datenbank - Tasks - Sichern

  • Durch einen Klick auf "OK" wird nun ein Backup nach "C:\Program Files\Microsoft SQL Server\MSSQL10.P********\MSSQL\Backup\" mit der Standardkonfiguration erstellt.

    • Wiederherstellen einer Datenbank Sicherung:
  • Starten Sie das Microsoft SQL Management Studio
  • Datenbanken - Rechtsklick auf Datenbanken - Datenbank wiederherstellen...

  • Im Feld "In Datenbank" wählen Sie nun die Datenbank aus für die eine Sicherung zurückgespielt werden soll. Handelt es sich um eine Wiederherstellung einer Datenbank die noch nicht angelegt wurde, so geben Sie bitte den gewünschten Namen ein.
  • Wählen Sie nun "Von Medium" aus
  • Klicken Sie nun auf "..." in dem sich nun öffnenden Fenster klicken Sie bitte auf "Hinzufügen"
  • Bewegen Sie sich mit dem Datei-Explorer zu der Stelle an der Sie Ihre Sicherung gespeichert haben und wählen diese aus
  • Bestätigen Sie nun 2 mal mit "OK"
  • Im Feld "Wählen Sie die wiederherzustellenden Sicherungssätze aus" wählen Sie nun bitte die zu wiederherstellende Datenbank aus und bestätigen mit "OK"
  • Es wird nun versucht Ihre Sicherung wiederherzustellen

    • i Hinweis:
    Kopieren Sie erstellte Sicherungsdateien regelmäßig auf einen anderen Rechner, um Ihre Daten auch bei Hardware-Verlust zu erhalten.

    Sonstiges

    i Hinweis:
    Die Microsoft SQL Server Express Edition kann nur eine CPU verwenden, in Systemen mit einem Dual Processor wird nur ein Prozessor verwendet. SQL Server Express kann nicht mehr als 1 GB RAM adressieren, zusätzlich ist die maximale Größe einer Datenbank auf 4 GByte beschränkt, die Anzahl der Datenbanken ist jedoch nicht eingeschränkt.


IPConfig

Zusätzliche IP-Adressen einbinden

Ihr Windows Server 2008 wurde mit einer statischen Netzwerkkonfiguration ausgeliefert.

In dieser Version ist es möglich die Netzwerkeinstellungen direkt über die Netzwerkeigenschaften zu verwalten. Diese finden Sie unter

Start -> Systemsteuerung -> Netzwerk- und Freigabecenter -> Netzwerkverbindungen verwalten

Klicken Sie mit der rechten Maustaste bitte auf die eingebundene Netzwerkkarte und gehen Sie dann auf den Menüpunkt "Eigenschaften".
Hierbei müssen unter "Internetprotokoll Version 4 (TCP/IPv4)" folgende Einstellungen hinterlegt sein:

Subnetzmaske: 255.255.255.255
Gateway: 10.255.255.1
Bevorzugter DNS-Server: Der bevorzugte DNS-Server ist der Segment Nameserver mit der IP 251. Wenn also die erste IP Adresse 212.227.116.117 lauten würde, wäre der Nameserver 212.227.116.251
Alternativer DNS-Server: 195.20.224.234

Um eine weitere IP-Adresse hinzuzufügen, gehen Sie bitte auf den Button "Erweitert..." und danach auf die Registerkarte "IP-Einstellungen"
Nun klicken Sie auf den Button "Hinzufügen" unter IP-Adressen und fügen dort die unter dem >> 1&1 Control-Center zusätzlich bestellte IP-Adresse und als Subnetzmaske die 255.255.255.255 ein.
Um die Aktion zu bestätigen klicken Sie nun noch auf den Button "Hinzufügen".

Die IP-Adressen sind nach dem Eintragen nicht sofort aktiv, sondern werden erst beim nächsten Neustart geladen. Danach können sie frei verwendet werden.

Eine Warnung verhindert, dass Änderungen direkt übernommen werden. Diese kann jedoch mit "Ja" bestätigt werden.

Die Netzwerkmaske ist korrekt, auch wenn Windows fälschlicherweise etwas anderes behauptet.

i Warum werden solche Netzwerkmasken verwendet?

Aus Sicherheits- und Performancegründen befindet sich Ihr Server in seinem ganz eigenen virtuellen LAN. Um von dort kommunizieren zu können, muss zwingend ein Gateway verwendet werden; eine direkte Verbindung zu einem anderen Server ist nicht möglich. Die verwendete Netzwerkmaske spiegelt dieses Konstrukt wieder, indem sie die Server-Adresse und die Netzwerkadresse gleich setzt. Somit ist jeder andere Rechner außerhalb des lokalen logischen Netzwerks und wird über das Gateway angesprochen. Durch das kleine Netz (1 Host) werden die IP-Adressen zudem optimal ausgenutzt.
Diese Konfiguration ist vor allem auf anderen Plattformen keineswegs unüblich und funktioniert auch bei Windows einwandfrei - auch wenn die Eingabemasken etwas anderes behaupten.


Sprache

Spracheinstellungen

Ihr Windows 2008 Server ist ein ursprünglich englisches System mit einem deutschen Sprachpaket ("Language Pack"). Menüpunkte im Startmenü, Dialoge und Anleitungen werden weitgehend in deutscher Sprache dargestellt.

Der Vorteil dieser Konfiguration:

  • Schnellst mögliche Verfügbarkeit von Updates/Service Packs usw.
  • Ändern der Sprache auf "Englisch" oder "Französisch" ist problemlos möglich
  • Höchst mögliche Kompatibilität mit Anwendungen/Spielen usw.

Ändern der Sprache

  • Klicken Sie auf dem Windows Server 2008 Desktop den Link "Regional and Language Options - Shortcut"

  • Auf der Karte "Tastaturen und Sprachen" finden Sie unten ein Auswahlfeld mit den zur Verfügung stehenden Anzeigesprachen.
    Wählen Sie die gewünschte Sprache aus und klicken Sie auf "OK"

Sie müssen sich abmelden (ausloggen) und neu anmelden damit die Änderungen wirksam werden. Ein Neustart (Reboot) ist aber nicht erforderlich.

Die Einstellung gilt nur für den aktuellen Benutzer. Andere Benutzer behalten Ihre Sprache bei. Neue Benutzer erhalten die als Standard installierte Sprache (Deutsch).

Language Packs können unter http://www.microsoft.com/downloads/details.aspx?FamilyID=e9f6f200-cfaf-4516-8e96-e4d4750397ff&DisplayLang=en heruntergeladen werden.


PowerShell

Windows PowerShell

Die Windows PowerShell ist eine Alternative zum Windows-Kommandozeilenprogramm cmd.exe und zum Windows Script Host.

Bei unserer Windows 2008 Standard Installation ist die Windows PowerShell bereits im Lieferumfang des Betriebssystems enthalten.

Die folgende Tabelle stellt eine Auswahl der Cmdlets den vergleichbaren Befehlen anderer Kommandozeileninterpreter gegenüber:

Windows PowerShell (Cmdlet) | Windows PowerShell (Alias) | cmd.exe bzw. command.com | Beschreibung
Get-Location | gl, pwd | cd | Ausgabe des aktuellen Verzeichnisses
Set-Location | sl, cd, chdir | cd, chdir | Wechseln des aktuellen Verzeichnisses
Clear-Host | cls, clear | cls | Löschen des Bildschirms
Copy-Item | cpi, copy, cp | copy | Kopieren einer oder mehrerer Dateien / eines ganzen Verzeichnisbaums
Get-Help | help, man | help | Hilfe zu Befehlen
Remove-Item | ri, del, rmdir, rd, rm | del, rmdir, rd | Löschen einer Datei / eines Verzeichnisses
Rename-Item | rni, ren | ren | Umbenennen einer Datei / eines Verzeichnisses
Move-Item | mi, move, mv | move | Verschieben einer Datei / eines Verzeichnisses
Get-ChildItem | gci, dir, ls | dir | Liste aller Dateien / Verzeichnisse im (aktuellen) Verzeichnis
Write-Output | echo, write | echo | Ausgabe von Zeichenketten, Variablen etc. auf dem Bildschirm
Pop-Location | popd | popd | In Verzeichnis wechseln, welches zuletzt auf dem Stack abgelegt wurde
Push-Location | pushd | pushd | Verzeichnis auf dem Stack ablegen
Set-Variable | sv, set | set | Wert einer Variable setzen / Variable anlegen
Get-Content | gc, type, cat | type | Ausgabe einer Datei
Get-Process | gps, ps | tasklist | Liste aller momentan laufenden Prozesse
Stop-Process | spps, kill | taskkill | Beenden eines laufenden Prozesses
Tee-Object | tee | nicht vorhanden | Standardeingabe in eine Datei oder Variable umleiten und entlang der Pipeline weiterreichen (Standardausgabe)

Policy

Von Haus aus kann man keine eigenen Scripte in der PowerShell ausführen. Das liegt an der Sicherheitspolicy. Es gibt also 2 Möglichkeiten:

  • Die Policy ändern
Das kann man mit Set-ExecutionPolicy RemoteSigned. Allerdings nur temporär wenn man es nicht im Profil speichert.

  • Ein eigenes Zertifikat erstellen
Eine Schritt-für-Schritt Anleitung zum Erstellen eines eigenen Zertifikats finden Sie unter
http://www.microsoft.com/germany/msdn/library/security/SchrittFuerSchrittZurDigitalenCodesignaturTeil1.mspx?mfr=true

Informationen dazu können Sie mit Get-Help About_Signing abrufen.

Beispiele zum Verwenden der Windows PowerShell

  • Beende alle Prozesse, deren Namen mit dem Buchstaben „p“ beginnen:
    PS> get-process p* | stop-process
  • Suche alle Prozesse, die mehr als 10 MB Hauptspeicher verwenden, und beende sie:
    PS> get-process | where { $_.WS -gt 10MB } | stop-process
  • Berechne die Gesamtanzahl der Bytes aller Dateien in einem Verzeichnis:
    PS> get-childitem | measure-object -property length -sum
  • Warte, bis ein bestimmter Prozess beendet wurde:
    PS> $processToWatch = get-process notepad
    PS> $processToWatch.WaitForExit()
  • Ändere eine Zeichenkette von Kleinbuchstaben in Großbuchstaben:
    PS> "hallo welt!".ToUpper()
  • Füge die Zeichenfolge „ABC“ nach dem ersten Buchstaben des Wortes „string“ ein, um als Ergebnis „sABCtring“ zu erhalten:
    PS> "string".Insert(1, "ABC")


CDOSYS Constants

Beispielfunktion (Sub) für die globale Deklaration der CDOSYS-Konstanten (VBScript)

-------------------------------------------------------------------------------------------------

SUB LoadCDOConstants()
  ExecuteGlobal "Const cdoUserReplyAddress = ""http://schemas.microsoft.com/cdo/configuration/smtpuserreplyemailaddress"""

  ExecuteGlobal "Const cdoSendUsingPickup = 1"  'Send message using the local SMTP service pickup directory.
  ExecuteGlobal "Const cdoSendUsingPort = 2"  'Send the message using the network (SMTP over the network).

  ExecuteGlobal "Const cdoPriorityNonUrgent = -1"    'Not urgent
  ExecuteGlobal "Const cdoPriorityNormal = 0"    'Normal priority
  ExecuteGlobal "Const cdoPriorityUrgent = 1"    'Urgent

  ExecuteGlobal "Const cdoAnonymous = 0"  'Do not authenticate.
  ExecuteGlobal "Const cdoBasic = 1"  'Use basic (clear-text) authentication. The configuration sendusername/sendpassword or postusername/postpassword fields are used to specify credentials.
  ExecuteGlobal "Const cdoNTLM = 2"  'Use NTLM authentication (Secure Password Authentication in Microsoft® Outlook® Express). The current process security context is used to authenticate with the service.

  ExecuteGlobal "Const cdoRefTypeId = 0"  'The Reference parameter contains a value for the Content-ID header. The Hypertext Markup Language (HTML) body refers to the resource using this Content-ID header.
  ExecuteGlobal "Const cdoRefTypeLocation = 1"  'The Reference parameter contains a value for the Content-Location MIME header. The HTML body refers to the resource using this message-relative Uniform Resource Locator (URL).

  ExecuteGlobal "Const cdoSensitivityNone = 0"  'Not specified
  ExecuteGlobal "Const cdoPersonal = 1"  'Personal
  ExecuteGlobal "Const cdoPrivate = 2"  'Private
  ExecuteGlobal "Const cdoCompanyConfidential = 3"  'Confidential

  ExecuteGlobal "Const cdoUTC = 0"  'Universal Coordinated Time (UTC)
  ExecuteGlobal "Const cdoGMT = 1"  'Greenwich Mean Time (GMT); Dublin, Edinburgh, London
  ExecuteGlobal "Const cdoLisbon = 2"  'Lisbon, Warsaw (GMT+01:00)
  ExecuteGlobal "Const cdoParis = 3"  'Paris, Madrid (GMT+01:00)
  ExecuteGlobal "Const cdoBerlin = 4"  'Berlin, Stockholm, Rome, Bern, Brussels, Vienna (GMT+01:00)
  ExecuteGlobal "Const cdoEasternEurope = 5"  'Eastern Europe (GMT+02:00)
  ExecuteGlobal "Const cdoPrague = 6"  'Prague (GMT+01:00)
  ExecuteGlobal "Const cdoAthens = 7"  'Athens, Helsinki, Istanbul (GMT+02:00)
  ExecuteGlobal "Const cdoBrasilia = 8"  'Brasilia (GMT-03:00)
  ExecuteGlobal "Const cdoAtlanticCanada = 9"  'Atlantic Time (Canada) (GMT-04:00)
  ExecuteGlobal "Const cdoEastern = 10"  'Eastern Time (US & Canada) (GMT-05:00)
  ExecuteGlobal "Const cdoCentral = 11"  'Central Time (US & Canada) (GMT-06:00)
  ExecuteGlobal "Const cdoMountain = 12"  'Mountain Time (US & Canada) (GMT-07:00)
  ExecuteGlobal "Const cdoPacific = 13"  'Pacific Time (US & Canada); Tijuana (GMT-08:00)
  ExecuteGlobal "Const cdoAlaska = 14"  'Alaska (GMT-09:00)
  ExecuteGlobal "Const cdoHawaii = 15"  'Hawaii (GMT-10:00)
  ExecuteGlobal "Const cdoMidwayIsland = 16"  'Midway Island, Samoa (GMT-11:00)
  ExecuteGlobal "Const cdoWellington = 17"  'Wellington, Auckland (GMT+12:00)
  ExecuteGlobal "Const cdoBrisbane = 18"  'Brisbane, Melbourne, Sydney (GMT+10:00)
  ExecuteGlobal "Const cdoAdelaide = 19"  'Adelaide (GMT+09:30)
  ExecuteGlobal "Const cdoTokyo = 20"  'Tokyo, Osaka, Sapporo, Seoul, Yakutsk (GMT+09:00)
  ExecuteGlobal "Const cdoHongKong = 21"  'Hong Kong SAR, Perth, Singapore, Taipei (GMT+08:00)
  ExecuteGlobal "Const cdoBangkok = 22"  'Bangkok, Jakarta, Hanoi (GMT+07:00)
  ExecuteGlobal "Const cdoBombay = 23"  'Bombay, Calcutta, Madras, New Delhi, Colombo (GMT+05:30)
  ExecuteGlobal "Const cdoAbuDhabi = 24"  'Abu Dhabi, Muscat, Tbilisi, Kazan, Volgograd (GMT+04:00)
  ExecuteGlobal "Const cdoTehran = 25"  'Tehran (GMT+03:30)
  ExecuteGlobal "Const cdoBaghdad = 26"  'Baghdad, Kuwait, Nairobi, Riyadh (GMT+03:00)
  ExecuteGlobal "Const cdoIsrael = 27"  'Israel (GMT+02:00)
  ExecuteGlobal "Const cdoNewfoundland = 28"  'Newfoundland (GMT-03:30)
  ExecuteGlobal "Const cdoAzores = 29"  'Azores, Cape Verde Island (GMT-01:00)
  ExecuteGlobal "Const cdoMidAtlantic = 30"  'Mid-Atlantic (GMT-02:00)
  ExecuteGlobal "Const cdoMonrovia = 31"  'Monrovia, Casablanca (GMT)
  ExecuteGlobal "Const cdoBuenosAires = 32"  'Buenos Aires, Georgetown (GMT-03:00)
  ExecuteGlobal "Const cdoCaracas = 33"  'Caracas, La Paz (GMT-04:00)
  ExecuteGlobal "Const cdoIndiana = 34"  'Indiana (East) (GMT-05:00)
  ExecuteGlobal "Const cdoBogota = 35"  'Bogota, Lima (GMT-05:00)
  ExecuteGlobal "Const cdoSaskatchewan = 36"  'Saskatchewan (GMT-06:00)
  ExecuteGlobal "Const cdoMexicoCity = 37"  'Mexico City, Tegucigalpa (GMT-06:00)
  ExecuteGlobal "Const cdoArizona = 38"  'Arizona (GMT-07:00)
  ExecuteGlobal "Const cdoEniwetok = 39"  'Eniwetok, Kwajalein (GMT-12:00)
  ExecuteGlobal "Const cdoFiji = 40"  'Fiji Islands, Kamchatka, Marshall Islands (GMT+12:00)
  ExecuteGlobal "Const cdoMagadan = 41"  'Magadan, Solomon Islands, New Caledonia (GMT+11:00)
  ExecuteGlobal "Const cdoHobart = 42"  'Hobart (GMT+10:00)
  ExecuteGlobal "Const cdoGuam = 43"  'Guam, Port Moresby, Vladivostok (GMT+10:00)
  ExecuteGlobal "Const cdoDarwin = 44"  'Darwin (GMT+09:30)
  ExecuteGlobal "Const cdoBeijing = 45"  'Beijing, Chongqing, Urumqi (GMT+08:00)
  ExecuteGlobal "Const cdoAlmaty = 46"  'Almaty, Dhaka (GMT+06:00)
  ExecuteGlobal "Const cdoIslamabad = 47"  'Islamabad, Karachi, Sverdlovsk, Tashkent (GMT+05:00)
  ExecuteGlobal "Const cdoKabul = 48"  'Kabul (GMT+04:30)
  ExecuteGlobal "Const cdoCairo = 49"  'Cairo (GMT+02:00)
  ExecuteGlobal "Const cdoHarare = 50"  'Harare, Pretoria (GMT+02:00)
  ExecuteGlobal "Const cdoMoscow = 51"  'Moscow, St. Petersburg (GMT+03:00)
  ExecuteGlobal "Const cdoInvalidTimZone = 52"  'Invalid time zone identifier

  ExecuteGlobal "Const cdoAutoPromoteBodyParts = ""http://schemas.microsoft.com/cdo/configuration/autopromotebodyparts"""
  ExecuteGlobal "Const cdoFlushBuffersOnWrite = ""http://schemas.microsoft.com/cdo/configuration/flushbuffersonwrite"""
  ExecuteGlobal "Const cdoHTTPCookies = ""http://schemas.microsoft.com/cdo/configuration/httpcookies"""
  ExecuteGlobal "Const cdoLanguageCode = ""http://schemas.microsoft.com/cdo/configuration/languagecode"""
  ExecuteGlobal "Const cdoNNTPAccountName = ""http://schemas.microsoft.com/cdo/configuration/nntpaccountname"""
  ExecuteGlobal "Const cdoNNTPAuthenticate = ""http://schemas.microsoft.com/cdo/configuration/nntpauthenticate"""
  ExecuteGlobal "Const cdoNNTPConnectionTimeout = ""http://schemas.microsoft.com/cdo/configuration/nntpconnectiontimeout"""
  ExecuteGlobal "Const cdoNNTPServer = ""http://schemas.microsoft.com/cdo/configuration/nntpserver"""
  ExecuteGlobal "Const cdoNNTPServerPickupDirectory = ""http://schemas.microsoft.com/cdo/configuration/nntpserverpickupdirectory"""
  ExecuteGlobal "Const cdoNNTPServerPort = ""http://schemas.microsoft.com/cdo/configuration/nntpserverport"""
  ExecuteGlobal "Const cdoNNTPUseSSL = ""http://schemas.microsoft.com/cdo/configuration/nntpusessl"""
  ExecuteGlobal "Const cdoPostEmailAddress = ""http://schemas.microsoft.com/cdo/configuration/postemailaddress"""
  ExecuteGlobal "Const cdoPostPassword = ""http://schemas.microsoft.com/cdo/configuration/postpassword"""
  ExecuteGlobal "Const cdoPostUserName = ""http://schemas.microsoft.com/cdo/configuration/postusername"""
  ExecuteGlobal "Const cdoPostUserReplyEmailAddress = ""http://schemas.microsoft.com/cdo/configuration/postuserreplyemailaddress"""
  ExecuteGlobal "Const cdoPostUsingMethod = ""http://schemas.microsoft.com/cdo/configuration/postusing"""
  ExecuteGlobal "Const cdoSaveSentItems = ""http://schemas.microsoft.com/cdo/configuration/savesentitems"""
  ExecuteGlobal "Const cdoSendEmailAddress = ""http://schemas.microsoft.com/cdo/configuration/sendemailaddress"""
  ExecuteGlobal "Const cdoSendPassword = ""http://schemas.microsoft.com/cdo/configuration/sendpassword"""
  ExecuteGlobal "Const cdoSendUserName = ""http://schemas.microsoft.com/cdo/configuration/sendusername"""
  ExecuteGlobal "Const cdoSendUserReplyEmailAddress = ""http://schemas.microsoft.com/cdo/configuration/senduserreplyemailaddress"""
  ExecuteGlobal "Const cdoSendUsingMethod = ""http://schemas.microsoft.com/cdo/configuration/sendusing"""
  ExecuteGlobal "Const cdoSMTPAccountName = ""http://schemas.microsoft.com/cdo/configuration/smtpaccountname"""
  ExecuteGlobal "Const cdoSMTPAuthenticate = ""http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"""
  ExecuteGlobal "Const cdoSMTPConnectionTimeout = ""http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout"""
  ExecuteGlobal "Const cdoSMTPServer = ""http://schemas.microsoft.com/cdo/configuration/smtpserver"""
  ExecuteGlobal "Const cdoSMTPServerPickupDirectory = ""http://schemas.microsoft.com/cdo/configuration/smtpserverpickupdirectory"""
  ExecuteGlobal "Const cdoSMTPServerPort = ""http://schemas.microsoft.com/cdo/configuration/smtpserverport"""
  ExecuteGlobal "Const cdoSMTPUseSSL = ""http://schemas.microsoft.com/cdo/configuration/smtpusessl"""
  ExecuteGlobal "Const cdoURLGetLatestVersion = ""http://schemas.microsoft.com/cdo/configuration/urlgetlatestversion"""
  ExecuteGlobal "Const cdoURLProxyBypass = ""http://schemas.microsoft.com/cdo/configuration/urlproxybypass"""
  ExecuteGlobal "Const cdoURLProxyServer = ""http://schemas.microsoft.com/cdo/configuration/urlproxyserver"""
  ExecuteGlobal "Const cdoUseMessageResponseText = ""http://schemas.microsoft.com/cdo/configuration/usemessageresponsetext"""

  ExecuteGlobal "Const cdoGif = ""image/gif"""
  ExecuteGlobal "Const cdoJpeg = ""image/jpeg"""
  ExecuteGlobal "Const cdoMessageExternalBody = ""message/external-body"""
  ExecuteGlobal "Const cdoMessagePartial = ""message/partial"""
  ExecuteGlobal "Const cdoMessageRFC822 = ""message/rfc822"""
  ExecuteGlobal "Const cdoMultipartAlternative = ""multipart/alternative"""
  ExecuteGlobal "Const cdoMultipartDigest = ""multipart/digest"""
  ExecuteGlobal "Const cdoMultipartMixed = ""multipart/mixed"""
  ExecuteGlobal "Const cdoMultipartRelated = ""multipart/related"""
  ExecuteGlobal "Const cdoTextHTML = ""text/html"""
  ExecuteGlobal "Const cdoTextPlain = ""text/plain"""

  ExecuteGlobal "Const cdoTimeZoneIDURN =""urn:schemas:calendar:timezoneid"""

  ExecuteGlobal "Const cdoBIG5 =""big5"""
  ExecuteGlobal "Const cdoEUC_JP =""euc-jp"""
  ExecuteGlobal "Const cdoEUC_KR =""euc-kr"""
  ExecuteGlobal "Const cdoGB2312 =""gb2312"""
  ExecuteGlobal "Const cdoISO_2022_JP =""iso-2022-jp"""
  ExecuteGlobal "Const cdoISO_2022_KR =""iso-2022-kr"""
  ExecuteGlobal "Const cdoISO_8859_1 =""iso-8859-1"""
  ExecuteGlobal "Const cdoISO_8859_2 =""iso-8859-2"""
  ExecuteGlobal "Const cdoISO_8859_3 =""iso-8859-3"""
  ExecuteGlobal "Const cdoISO_8859_4 =""iso-8859-4"""
  ExecuteGlobal "Const cdoISO_8859_5 =""iso-8859-5"""
  ExecuteGlobal "Const cdoISO_8859_6 =""iso-8859-6"""
  ExecuteGlobal "Const cdoISO_8859_7 =""iso-8859-7"""
  ExecuteGlobal "Const cdoISO_8859_8 =""iso-8859-8"""
  ExecuteGlobal "Const cdoISO_8859_9 =""iso-8859-9"""
  ExecuteGlobal "Const cdoKOI8_R =""koi8-r"""
  ExecuteGlobal "Const cdoShift_JIS =""shift-jis"""
  ExecuteGlobal "Const cdoUS_ASCII =""us-ascii"""
  ExecuteGlobal "Const cdoUTF_7 =""utf-7"""
  ExecuteGlobal "Const cdoUTF_8 =""utf-8"""

  ExecuteGlobal "Const cdo7bit =""7bit"""
  ExecuteGlobal "Const cdo8bit =""8bit"""
  ExecuteGlobal "Const cdoBase64 =""base64"""
  ExecuteGlobal "Const cdoBinary =""binary"""
  ExecuteGlobal "Const cdoMacBinHex40 =""mac-binhex40"""
  ExecuteGlobal "Const cdoQuotedPrintable =""quoted-printable"""
  ExecuteGlobal "Const cdoUuencode =""uuencode"""

  ExecuteGlobal "Const cdoAttachmentFilename =""urn:schemas:httpmail:attachmentfilename"""
  ExecuteGlobal "Const cdoBcc =""urn:schemas:httpmail:bcc"""
  ExecuteGlobal "Const cdoCc =""urn:schemas:httpmail:cc"""
  ExecuteGlobal "Const cdoContentDispositionType =""urn:schemas:httpmail:content-disposition-type"""
  ExecuteGlobal "Const cdoContentMediaType =""urn:schemas:httpmail:content-media-type"""
  ExecuteGlobal "Const cdoDate =""urn:schemas:httpmail:date"""
  ExecuteGlobal "Const cdoDateReceived =""urn:schemas:httpmail:datereceived"""
  ExecuteGlobal "Const cdoFrom =""urn:schemas:httpmail:from"""
  ExecuteGlobal "Const cdoHasAttachment =""urn:schemas:httpmail:hasattachment"""
  ExecuteGlobal "Const cdoHTMLDescription =""urn:schemas:httpmail:htmldescription"""
  ExecuteGlobal "Const cdoImportance =""urn:schemas:httpmail:importance"""
  ExecuteGlobal "Const cdoNormalizedSubject =""urn:schemas:httpmail:normalizedsubject"""
  ExecuteGlobal "Const cdoPriority =""urn:schemas:httpmail:priority"""
  ExecuteGlobal "Const cdoReplyTo =""urn:schemas:httpmail:reply-to"""
  ExecuteGlobal "Const cdoSender =""urn:schemas:httpmail:sender"""
  ExecuteGlobal "Const cdoSubject =""urn:schemas:httpmail:subject"""
  ExecuteGlobal "Const cdoTextDescription =""urn:schemas:httpmail:textdescription"""
  ExecuteGlobal "Const cdoThreadTopic =""urn:schemas:httpmail:thread-topic"""
  ExecuteGlobal "Const cdoTo =""urn:schemas:httpmail:to"""

  ExecuteGlobal "Const cdoApproved =""urn:schemas:mailheader:approved"""
  ExecuteGlobal "Const cdoComment =""urn:schemas:mailheader:comment"""
  ExecuteGlobal "Const cdoContentBase =""urn:schemas:mailheader:content-base"""
  ExecuteGlobal "Const cdoContentDescription =""urn:schemas:mailheader:content-description"""
  ExecuteGlobal "Const cdoContentDisposition =""urn:schemas:mailheader:content-disposition"""
  ExecuteGlobal "Const cdoContentId =""urn:schemas:mailheader:content-id"""
  ExecuteGlobal "Const cdoContentLanguage =""urn:schemas:mailheader:content-language"""
  ExecuteGlobal "Const cdoContentLocation =""urn:schemas:mailheader:content-location"""
  ExecuteGlobal "Const cdoContentTransferEncoding =""urn:schemas:mailheader:content-transfer-encoding"""
  ExecuteGlobal "Const cdoContentType =""urn:schemas:mailheader:content-type"""
  ExecuteGlobal "Const cdoControl =""urn:schemas:mailheader:control"""
  ExecuteGlobal "Const cdoDisposition =""urn:schemas:mailheader:disposition"""
  ExecuteGlobal "Const cdoDispositionNotificationTo =""urn:schemas:mailheader:disposition-notification-to"""
  ExecuteGlobal "Const cdoDistribution =""urn:schemas:mailheader:distribution"""
  ExecuteGlobal "Const cdoExpires =""urn:schemas:mailheader:expires"""
  ExecuteGlobal "Const cdoFollowupTo =""urn:schemas:mailheader:followup-to"""
  ExecuteGlobal "Const cdoInReplyTo =""urn:schemas:mailheader:in-reply-to"""
  ExecuteGlobal "Const cdoLines =""urn:schemas:mailheader:lines"""
  ExecuteGlobal "Const cdoMessageId =""urn:schemas:mailheader:message-id"""
  ExecuteGlobal "Const cdoMIMEVersion =""urn:schemas:mailheader:mime-version"""
  ExecuteGlobal "Const cdoNewsgroups =""urn:schemas:mailheader:newsgroups"""
  ExecuteGlobal "Const cdoOrganization =""urn:schemas:mailheader:organization"""
  ExecuteGlobal "Const cdoOriginalRecipient =""urn:schemas:mailheader:original-recipient"""
  ExecuteGlobal "Const cdoPath =""urn:schemas:mailheader:path"""
  ExecuteGlobal "Const cdoPostingVersion =""urn:schemas:mailheader:posting-version"""
  ExecuteGlobal "Const cdoReceived =""urn:schemas:mailheader:received"""
  ExecuteGlobal "Const cdoReferences =""urn:schemas:mailheader:references"""
  ExecuteGlobal "Const cdoRelayVersion =""urn:schemas:mailheader:relay-version"""
  ExecuteGlobal "Const cdoReturnPath =""urn:schemas:mailheader:return-path"""
  ExecuteGlobal "Const cdoReturnReceiptTo =""urn:schemas:mailheader:return-receipt-to"""
  ExecuteGlobal "Const cdoSummary =""urn:schemas:mailheader:summary"""
  ExecuteGlobal "Const cdoThreadIndex =""urn:schemas:mailheader:thread-index"""
  ExecuteGlobal "Const cdoXMailer =""urn:schemas:mailheader:x-mailer"""
  ExecuteGlobal "Const cdoXref =""urn:schemas:mailheader:xref"""
  ExecuteGlobal "Const cdoXUnsent =""urn:schemas:mailheader:x-unsent"""

  ExecuteGlobal "Const cdoNSConfiguration =""http://schemas.microsoft.com/cdo/configuration/"""
  ExecuteGlobal "Const cdoNSContacts =""urn:schemas:contacts:"""
  ExecuteGlobal "Const cdoNSHTTPMail =""urn:schemas:httpmail:"""
  ExecuteGlobal "Const cdoNSMailHeader =""urn:schemas:mailheader:"""
  ExecuteGlobal "Const cdoNSNNTPEnvelope =""http://schemas.microsoft.com/cdo/nntpenvelope/"""
  ExecuteGlobal "Const cdoNSSMTPEnvelope =""http://schemas.microsoft.com/cdo/smtpenvelope/"""

  ExecuteGlobal "Const cdoNewsgroupList =""http://schemas.microsoft.com/cdo/nntpenvelope/newsgrouplist"""
  ExecuteGlobal "Const cdoNNTPProcessing =""http://schemas.microsoft.com/cdo/nntpenvelope/nntpprocessing"""

  ExecuteGlobal "Const cdoArrivalTime =""http://schemas.microsoft.com/cdo/smtpenvelope/arrivaltime"""
  ExecuteGlobal "Const cdoClientIPAddress =""http://schemas.microsoft.com/cdo/smtpenvelope/clientipaddress"""
  ExecuteGlobal "Const cdoMessageStatus =""http://schemas.microsoft.com/cdo/smtpenvelope/messagestatus"""
  ExecuteGlobal "Const cdoPickupFileName =""http://schemas.microsoft.com/cdo/smtpenvelope/pickupfilename"""
  ExecuteGlobal "Const cdoRecipientList =""http://schemas.microsoft.com/cdo/smtpenvelope/recipientlist"""
  ExecuteGlobal "Const cdoSenderEmailAddress =""http://schemas.microsoft.com/cdo/smtpenvelope/senderemailaddress"""

  ExecuteGlobal "Const CDO_E_UNCAUGHT_EXCEPTION = &h80040201"  ' Exception %1 was generated at address %2
  ExecuteGlobal "Const CDO_E_NOT_OPENED = &h80040202"  ' No data source has been opened for the object.
  ExecuteGlobal "Const CDO_E_UNSUPPORTED_DATASOURCE = &h80040203"  'The object does not support this type of data source.
  ExecuteGlobal "Const CDO_E_INVALID_PROPERTYNAME = &h80040204"  'The object does not support the requested property name or namespace.
  ExecuteGlobal "Const CDO_E_PROP_UNSUPPORTED = &h80040205"  'The object does not support the requested property.
  ExecuteGlobal "Const CDO_E_INACTIVE = &h80040206"  'The object is not active. It may have been deleted or it may not have been opened.
  ExecuteGlobal "Const CDO_E_NO_SUPPORT_FOR_OBJECTS = &h80040207"  'The object does not support storing persistent state information for objects.
  ExecuteGlobal "Const CDO_E_NOT_AVAILABLE = &h80040208"  'The requested property or feature, while supported, is not available at this time or in this context.
  ExecuteGlobal "Const CDO_E_NO_DEFAULT_DROP_DIR = &h80040209"  'No default drop directory has been configured for this server.
  ExecuteGlobal "Const CDO_E_SMTP_SERVER_REQUIRED = &h8004020A"  'The SMTP server name is required, and was not found in the configuration source.
  ExecuteGlobal "Const CDO_E_NNTP_SERVER_REQUIRED = &h8004020B"  'The NNTP server name is required, and was not found in the configuration source.
  ExecuteGlobal "Const CDO_E_RECIPIENT_MISSING = &h8004020C"  'At least one recipient is required, but none were found.
  ExecuteGlobal "Const CDO_E_FROM_MISSING = &h8004020D"  'At least one of the From or Sender fields is required, and neither was found.
  ExecuteGlobal "Const CDO_E_SENDER_REJECTED = &h8004020E"  'The server rejected the sender address. The server response was: %1
  ExecuteGlobal "Const CDO_E_RECIPIENTS_REJECTED = &h8004020F"  'The server rejected one or more recipient addresses. The server response was: %1
  ExecuteGlobal "Const CDO_E_NNTP_POST_FAILED = &h80040210"  'The message could not be posted to the NNTP server. The transport error code was %2. The server response was %1
  ExecuteGlobal "Const CDO_E_SMTP_SEND_FAILED = &h80040211"  'The message could not be sent to the SMTP server. The transport error code was %2. The server response was %1
  ExecuteGlobal "Const CDO_E_CONNECTION_DROPPED = &h80040212"  'The transport lost its connection to the server.
  ExecuteGlobal "Const CDO_E_FAILED_TO_CONNECT = &h80040213"  'The transport failed to connect to the server.
  ExecuteGlobal "Const CDO_E_INVALID_POST = &h80040214"  'The Subject, From, and Newsgroup fields are all required, and one or more was not found.
  ExecuteGlobal "Const CDO_E_AUTHENTICATION_FAILURE = &h80040215"  'The server rejected the logon attempt due to authentication failure. The server response was: %1
  ExecuteGlobal "Const CDO_E_INVALID_CONTENT_TYPE = &h80040216"  'The content type was not valid in this context. For exmaple, the root of an MHTML message must be an HTML document.
  ExecuteGlobal "Const CDO_E_LOGON_FAILURE = &h80040217"  'The transport was unable to log on to the server.
  ExecuteGlobal "Const CDO_E_HTTP_NOT_FOUND = &h80040218"  'The requested resource could not be found. The server response was: %1.
  ExecuteGlobal "Const CDO_E_HTTP_FORBIDDEN = &h80040219"  'Access to the requested resource is denied. The server response was: %1.
  ExecuteGlobal "Const CDO_E_HTTP_FAILED = &h8004021A"  'The HTTP request failed.  The server response was: %1.
  ExecuteGlobal "Const CDO_E_MULTIPART_NO_DATA = &h8004021B"  'This is a multipart body part. It has no content other than the body parts contained within it.
  ExecuteGlobal "Const CDO_E_INVALID_ENCODING_FOR_MULTIPART = &h8004021C"  'Multipart body parts must be encoded as 7bit, 8bit, or binary.
  ExecuteGlobal "Const CDO_E_PROP_NOT_FOUND = &h8004021E"  'The requested property was not found.
  ExecuteGlobal "Const CDO_E_INVALID_SEND_OPTION = &h80040220"  'The "SendUsing" configuration value is invalid.
  ExecuteGlobal "Const CDO_E_INVALID_POST_OPTION = &h80040221"  'The "PostUsing" configuration value is invalid.
  ExecuteGlobal "Const CDO_E_NO_PICKUP_DIR = &h80040222"  'The pickup directory path is required and was not specified.
  ExecuteGlobal "Const CDO_E_NOT_ALL_DELETED = &h80040223"  'One or more messages could not be deleted.
  ExecuteGlobal "Const CDO_E_PROP_READONLY = &h80040227"  'The property is read-only.
  ExecuteGlobal "Const CDO_E_PROP_CANNOT_DELETE = &h80040228"  'The property cannot be deleted.
  ExecuteGlobal "Const CDO_E_BAD_DATA = &h80040229"  'Data  written to the object are inconsistent or invalid.
  ExecuteGlobal "Const CDO_E_PROP_NONHEADER = &h8004022A"  'The requested property is not in the mail header namespace.
  ExecuteGlobal "Const CDO_E_INVALID_CHARSET = &h8004022B"  'The requested character set is not installed on the computer.
  ExecuteGlobal "Const CDO_E_ADOSTREAM_NOT_BOUND = &h8004022C"  'The ADO stream has not been opened.
  ExecuteGlobal "Const CDO_E_CONTENTPROPXML_NOT_FOUND = &h8004022D"  'The content properties are missing.
  ExecuteGlobal "Const CDO_E_CONTENTPROPXML_WRONG_CHARSET = &h8004022E"  'Content properties XML must be encoded using UTF-8.
  ExecuteGlobal "Const CDO_E_CONTENTPROPXML_PARSE_FAILED = &h8004022F"  'Failed to parse content properties XML.
  ExecuteGlobal "Const CDO_E_CONTENTPROPXML_CONVERT_FAILED = &h80040230"  'Failed to convert a property from XML to a requested type.
  ExecuteGlobal "Const CDO_E_NO_DIRECTORIES_SPECIFIED = &h80040231"  'No directories were specified for resolution.
  ExecuteGlobal "Const CDO_E_DIRECTORIES_UNREACHABLE = &h80040232"  'Failed to resolve against one or more of the specified directories.
  ExecuteGlobal "Const CDO_E_BAD_SENDER = &h80040233"  'Could not find the Sender's mailbox.
  ExecuteGlobal "Const CDO_E_SELF_BINDING = &h80040234"  'Binding to self is not allowed.
  ExecuteGlobal "Const CDO_E_ARGUMENT1 = &h80044000"  'The first argument is invalid.
  ExecuteGlobal "Const CDO_E_ARGUMENT2 = &h80044001"  'The second argument is invalid.
  ExecuteGlobal "Const CDO_E_ARGUMENT3 = &h80044002"  'The third argument is invalid.
  ExecuteGlobal "Const CDO_E_ARGUMENT4 = &h80044003"  'The fourth argument is invalid.
  ExecuteGlobal "Const CDO_E_ARGUMENT5 = &h80044004"  'The fifth argument is invalid.
  ExecuteGlobal "Const CDO_E_NOT_FOUND = &h800CCE05"  'The requested body part was not found in this message.
  ExecuteGlobal "Const CDO_E_INVALID_ENCODING_TYPE = &h800CCE1D"  'The content encoding type is invalid.
END SUB

-------------------------------------------------------------------------------------------------