scriptpw.dll on Windows 2008 and Windows 7 (“ScriptPW.Password”)

In Windows XP and Windows 2003 you could use

set oScriptPW = CreateObject(“ScriptPW.Password”)
strPassword = oScriptPW.GetPassword()

to read a password from a batch command script without printing it on the screen.

Unfortunately, the DLL that contains the “ScriptPW.Password” object, scriptpw.dll, no longer exists on Windows 7 and Windows Server 2008.

As a workaround I developed a tiny C# .NET 2.0 Console application that mimics the behaviour of the “GetPassword” function call. Following is the complete source of the application:

namespace scriptpw
{
    using System;

    class Program
    {
        static void Main()
        {
            var s = string.Empty;

            while (true)
            {
                var i = Console.ReadKey(true);
                if (i.Key == ConsoleKey.Enter)
                {
                    break;
                }
                else
                {
                    s += i.KeyChar;
                }
            }

            Console.Out.Write(s);
        }
    }
}

You can also directly download a compiled executable here.

As a small example usage in a batch command file (CMD), the following two lines read a password into the ‘Host1Password’ variable:

<nul: SET /P Host1Password=Enter your password:
for /f "delims=" %%i in ('scriptpw.exe') do set Host1Password=%%i
echo .

To be used later e.g.:

someapp --password %Host1Password%

Hope you like it! :-)

Exchange Server 2010 startet nicht mehr

Nach 2 Tagen Umziehen und Virtualisieren unserer internen Server, haben wir jetzt endlich den Durchbruch geschafft.

Die bisherige Server-Umgebung war:

  • S1 – Microsoft SBS 2003 mit Exchange 2003 und Active Directory und SQL Server
  • …weitere Server…

Die neue Server-Umgebung ist:

  • S20 – Microsoft Windows Server 2008 R2 mit Active Directory
  • S21 – Microsoft Windows Server 2008 R2 mit Exchange 2010
  • S23 - Microsoft Windows Server 2008 R2 mit SQL Server 2008
  • …weitere Server…

Nun sind wir so vorgegangen, dass wir zunächst S20 aufgesetzt haben und das AD als zweiten DC eingerichtet, anschließend auf S21 den Exchange und von S1 die Postfächer übernommen haben. Das ganze haben wir mit einer schönen Umzugs-Anleitung gemacht. Nach einigen Berechtigungs-Issues, haben wir S1 soweit mit DCPROMO heruntergestuft.

Und dann fing es an: Unser Exchange 2010 hing ewig beim Server-Start, es konnten sich keine Benutzer mehr am Exchange via Outlook verbinden und alles war brechend langsam. Der Rechner konnte nicht mal mehr von extern gepingt werden. Dutzende von Fehlermeldungen standen im Ereignisprotokoll.

Nach über 10 Stunden recherchieren und ausprobieren, hat mein Kollege schließlich in einem Blog den entscheidenden Tipp gefunden:

Das Computerkonto des Exchange-Server muss im Active Directory zur Gruppe “Domänen-Admins” hinzugefügt werden.

Danach lief auf wundersame Weise auf einmal alles wieder völlig korrekt und schnell.

 

Datenbanken zwischen 2 Oracle Express Editionen kopieren

Bei Microsoft SQL Server (Express) geht es ja relativ einfach, Datenbanken zwischen 2 Datenbank-Servern zu verschieben. Z.B.:

  1. Backup erstellen auf Server 1 und später auf Server 2 wiederherstellen. -oder-
  2. Datenbank auf Server 1 detachen (trennen), Dateien auf Server 2 kopieren und später auf Server 2 wieder attachen (anhängen).

Bei Oracle XE ist das auch möglich, allerdings ein bisschen aufwändiger und via Befehlszeile.

Rosenzuechter-sei-Dank weiß ich jetzt, wie das geht:

Exporting and Importing Data

Da ist es sehr ausführlich und Schritt-für-Schritt beschrieben.

GUIDs online generieren

Alles neu, macht der Februar: Ich habe meinen super-einfachen Dienst auf www.guidgen.com mal neu eingekleidet:

Ich habe das minimalistisch gehalten, mit der coolen Bootstrap-Bibliothek von Twitter. Damit sind dann auch so schicke Popup-Fenster mit minimalem Codeaufwand möglich:

Ich wünsche Euch “Happy Programming”!