Windows Mobile 5 Provisioning

Sicher kann jeder Mitarbeiter selbst in einen Telefonlagen gehen und sich einen Windows Mobile 5 PDA kaufen. Aber auch wenn Sie seitens der Firma einen PDA bereit stellen, bleibt die Frage wie die Erstinstallation einfach und schnell erfolgen kann. Dazu zählen:

  • ActiveSync Einstellungen
    z.B.: Zeitpläne, Elementumfang, Benachrichtigung, Client-Zertifikate
  • Funk und Verbindungseinstellungen
    GPRS und WIFI-Einstellungen
  • Zusätzliche Programme
    z.B. GPRS Paketzähler, Antivirensoftware, Verschlüsselung
  • Andere Einstellungen
    z.B. Stammzertifikate, Pocket Internet Explorer Favoriten etc.

Durch die Implementierung einer ActiveSync Anbindung mit Zertifikaten habe ich einige Funktionen entdeckt, die man wunderbar Ausbauen kann. Diese Seite soll hierzu ein Einstieg sein

Ausgangspunkt ActiveSync mit Zertifikaten

Windows Mobile 5 kann mit Exchange 2003 SP2 auch Zertifikate zur Anmeldung am Server einsetzen. Der große Vorteil davon ist, dass auf dem PDA selbst keine Benutzernamen oder Kennworte reversibel gespeichert und über das Internet im Rahmen der Anmeldung übertragen werden werden, sondern statt dessen ein Client-Zertifikat die Anmeldung übernimmt. So ein Zertifikat kann bei Verlust problemlos zurückgezogen werden.

Dabei stellt sich natürlich die Frage, wie das Client Zertifikat auf den PDA kommt und wie der PDA weiß, woher er sich das Zertifikat abholen muss. Diese Einstellung ist nicht über eine Eingabemaske auf dem PDA bzw. der Desktop-ActiveSync-Software erreichbar.

Der Trick dabei ist, dass auf dem PocketPC ein paar Registrierungsschlüssel korrekt gesetzt werden müssen, damit der PDA den Pfad zur Zertifizierungsstelle kennt und auf der anderen Seite der IIS eine Anmeldung über Zertifikate erfordert, damit der PDA gezwungen wird, sich ein Zertifikat zu holen. Und dieser Hebel weist einen Weg, die diese Einstellungen zentral gemanaged werden können.

XML für ActiveSync

Der PocketPC lässt sich über eine XML-Datei konfigurieren, die man einfach an die richtige Stelle im Active Directory hinterlegen muss. Immer, wenn ein PocketPC sich mit dem Desktop über ActiveSync verbindet, dann fragt die ActiveSync Desktopsoftware im Active Directory an folgender Stelle den Inhalte des Property "URL" ab

CN=Outlook Mobile Access,CN=Global Settings,CN=INA,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=root,DC=hld
Property: URL

Sie können mit ADSIEdit die XML-Information dort abspeichern oder das "CertEnroll"-Tools von Microsoft nutzen. Dieses VBScript sorgt auch dafür, dass "Authentifizierte Benutzer" das Leserecht auf diese Einstellung erhalten. Ansonsten können Benutzer diese Stelle nicht erreichen.

Das Script hat Probleme mit unterschiedlichen Sprachen, da "Authenticated Users" fest codiert ist. Wenn ihr Active Directory daher z.B. deutsch installiert ist, müssen ´Sie das Skript anpassen.

ActiveSync überträgt dann diese XML-Datei auf den PDA, welcher die darin enthaltenen Einstellungen sofort anwendet.

Aber auch ohne Active Directory kann man über eine XML-Date verschiedene Einstellungen auf einem PDA steuern: Dazu müssen Sie die entsprechend aufbereitete XML-Datei einfach als "_setup.xml" abspeichern und mit MAKECAB ein CAB-Archiv erstellen.

MAKECAB /D COMPRESS=OFF _setup.xml settings.cab

In diversen anderen Quellen wird auch von einer "CPF-Datei" berichtet.

Diese können Sie dann z.B.: per Mail, Speicherkarte oder ActiveSync auf den PDA übertragen und mit einem Doppelklick einfach starten. Dennoch hat die XML-Datei im Active Directory natürlich fast den Anschein einer Gruppenrichtlinie.

Anscheinend nutzen aber auch Provider solche Konfigurationsdateien, um einen PDA auch über Funk mit Einstellungen zu versorgen. So können solche Einstellungen anscheinend auch per SMS auf ein Gerät übertragen werden. Auch dies wäre natürlich für Firmen schon interessant zur zentralen Konfiguration der PDAs.

Inhalte der XML

Da stellt sich natürlich die Frage, welche Einstellungen durch die XML-Datei so alles gesteuert werden können. Der Grundaufbau ist relativ einfach.

<wap-provisioningdoc>
    <characteristic type="xxx">
        <characteristic type="xxx">
        </characteristic>
    </characteristic>
</wap-provisioningdoc>

Der Root-Node beginnt immer mit "<wap-provisioningdoc> und enthält darunter als Tags entsprechenden Einstellungen. Hier ein paar Beispiele für solche Einstellungen als Auszug.

ActiveSync Servereinstellungen

Diese Einstellungen konfigurieren den Servernamen, die Domäne und den Benutzer.

    <characteristic type="Connection">
        <parm name="Domain" value="testcompany.com" />
        <parm name="Server" value="testserver"/>
        <parm name="User" value="testUser"/>
        <parm name="AllowSSLOption" value="1"/>
    </characteristic>

Speziell die Konfiguration des Benutzers macht natürlich keinen Sinn innerhalb des Active Directories. Diese Einstellung ist sicher nützlich, wenn Sie den Benutzer eine vorbereitete CAB-Datei auf einer Speicherkarte zur Installation aushändigen.

ActiveSync Zeitplaneinstellungen

Interessant ist auch die Steuerung der Zeitpläne. Sicher ist das auch keine Einstellung für die globale Richtlinie im Active Directory, sondern eher für individuelle Einstellungen. Aber wenn die Firmeneinstellungen von den Defaulteinstellungen abweichen, kann der Eintrag in der "_setup.xml" die Ersteinrichtung sicher auch beschleunigen.

    <characteristic type="Settings">
      <parm name="PeakStartTime" value="0800"/>
        <parm name="PeakEndTime" value="1800"/>
        <parm name="PeakFrequency" value="0"/>
        <parm name="BodyTruncation" value="5120"/>
    </characteristic>
    <characteristic type="PeakDays">
        <parm name="Sun" value="0"/>
       <parm name="Mon" value="1"/>
       <parm name="Tue" value="1"/>
       <parm name="Wed" value="1"/>
       <parm name="Thr" value="1"/>
       <parm name="Fri" value="1"/>
       <parm name="Sat" value="0"/>
    </characteristic>

ActiveSync Inhalte

Anscheinend lassen sich aber auch Einstellungen bezüglich des Inhalts über die XML-Datei steuern.

    <characteristic type="FolderHierarchy">
        <characteristic type="Inbox">
            <characteristic type="Meeting Notes">
                <parm name="SyncEnabled" value="1"/>
            </characteristic>
            <characteristic type="Project Folders">
                <characteristic type="urgent">
                    <parm name="SyncEnabled" value="1"/>
                </characteristic>
            </characteristic>
            <characteristic type="Contacts & Associates">
                <parm name="SyncEnabled" value="1"/>
            </characteristic>
        </characteristic>
        <characteristic type="Calendar">
            <parm name="Enabled" value="1"/>
        </characteristic>
        <characteristic type="Contacts">
            <parm name="Enabled" value="1"/>
        </characteristic>
        <characteristic type="Mail">
            <parm name="Enabled" value="1"/>
      </characteristic>
    </characteristic>

Interessant wäre hier natürlich, welche weiteren Parameter noch eingestellt werden könnten. Als Firmenrichtlinie kann das schon interessant sein.

Internet Explorer Favoriten

Für Firmen und Provider ist die Funktion besonders interessant, die Favoriten im Pocket Internet Explorer ebenfalls vorzugeben.

<characteristic type='BrowserFavorite'>
    <characteristic type='MSXFAQ'>
        <parm name='URL' value='http://www.msxfaq.net'/>
    </characteristic>
</characteristic>

Generische Registrierungsschlüssel

Aus der Konfiguration für ActiveSync mit Zertifikaten können Sie wunderbar ablesen, wie ein Administrator zentral verschiedene Schlüssel auf einem PocketPC setzen kann.

<characteristic type="Registry">
    <nocharacteristic type="HKCU\Software\Microsoft\CertEnroll"/>
</characteristic>
<characteristic type="HKCU\Software\Microsoft\CertEnroll">
    <parm name="Template" value="User" datatype="string" />
    <parm name="CertPickupPage" value="/certsrv/certnew.cer" datatype="string" />
    <parm name="CertReqPage" value="/certsrv/certfnsh.asp" datatype="string" />
</characteristic>
<characteristic type="HKCU\Software\Microsoft\CertEnroll\DomainMapping\msxfaq.de">
    <parm name="PrimaryServer" value="http://priserver" datatype="string" />
    <parm name="SecondaryServer" value="http://secserver" datatype="string" />
</characteristic>

Offene Fragen

So schön dieses Provisioning ist, so beschränkt ist aktuell der Einsatzzweck. Die Konfiguration des Benutzernamens für ActiveSync ist nicht sinnvoll möglich, da alle Benutzer im kompletten Forest die gleiche Einstellung auslesen. Schade, dass ActiveSync diese Daten nicht von anderen Quellen (Webserver, lokale PC-Registrierung o.ä.) beziehen kann.

Das bringt mich aber auf die Idee, ob man nicht per VBScript selbst ActiveSync programmieren kann, um eine eigene dynamische XML-Datei auf den PDA zu übertragen und auf die Einstellung im Active Directory komplett zu verzichten.

Auch habe ich bislang noch keine Referenz gefunden, welche Einstellungen möglich sind. Letztlich sucht man im Internet und diversen Quellen nach Vorlagen, Mustern etc., die abgewandelt werden können.

Aktuell habe ich noch keine Informationen, wie über diesen Weg auch Software mit installiert werden könnte. Dies ist mit der CAB-Datei zwar möglich, aber die XML-Datei aus dem Active Directory alleine kann wohl keinen Code zur Installation enthalten. Vielleicht gibt es aber auch hier eine Möglichkeit.

Vollständiges Provisioning für Firmen

Die Möglichkeit bestimmte Einstellungen über den ActiveSync Desktop Client und das Active Directory auf den PDA zu bringen ist sicher ein erster Schritt zu einer einfachen Verwaltung. für Firmen sind aber weitere Funktionen für eine komplette Lösung erforderlich. Dazu gehört sicherlich die Verwaltung der PDAs (Softwareinstallation und Inventarisierung), die aber durch SMS oder andere Produkte nachgerüstet werden können.

Aber auch die bestehende XML-Datei könnte für Administratoren besser dokumentiert sein. Nicht jeder Administrator wird die Device SDKs der MSDN durchlesen wollen, um vielleicht eine möglich Einstellung zu finden. Es muss ja nicht gleich eine ADM-Vorlage mit passender MMC sein. Eine Auflistung der einstellbaren Optionen würde für den Anfang schon reichen.

Vielleicht gibt es irgendwann aber sogar eine Software, die eine Auswahl der Optionen zulässt und die Einstellungen wirklich per ActiveSync oder SMS auf den PDA "pusht".

Weitere Links