11. January 2013: NTP-Sync in Windows

Synchronizing clocks is especially important in Domain-Environments. If clocks get out of sync too much authentication will fail and cause all kinds of desasters. During one of these I discovered w32tm, a shell-program, used to synchronize (and configure) Windows Time Services.

PS C:\Windows\system32> w32tm /query /status
Leap Indicator: 0(no warning)
Stratum: 6 (secondary reference - syncd by (S)NTP)
Precision: -6 (15.625ms per tick)
Root Delay: 0.2159474s
Root Dispersion: 8.0025447s
ReferenceId: 0x0AE21228 (source IP: 10.226.18.40)
Last Successful Sync Time: 1/10/2013 10:45:42 AM
Source: toril.selune.local
Poll Interval: 10 (1024s)

Using Parameter /resync one can easily sync clocks and (hopefully) resolve time-related issues.

18. December 2012: Zertifizierungen 2012 - eine Zusammenfassung

Als ich Anfang des Jahres zu meinem Buch Configuring Windows Server 2008 – Active Directory gegriffen habe, wusste ich noch nicht wo mich diese Entscheidung bis Jahresende hinführen würde. Vermutlich hätte ich das Buch auch einfach im Regal stehen gelassen, hätte ich es geahnt. So jedoch hat es mich auf eine sehr interessant (und auch durchaus lehrreiche) Reise geschickt, an deren Ende ich seit letzter Woche angelangt bin.

Als Ziel gesetzt hatte ich mir die Zertifizierung zum Enterprise-Administrator eigentlich bereits 2009. Doch erst der Griff zum Buch hat mich wieder auf den Weg gebracht. Ein Weg, der durch ein paar Umwege (Hyper-V, Server 2012, MCSE) noch länger war als zunächst geplant. Aber am Ende dann doch erfolgreich. Und sobald man erst einmal in der Materie drin ist, fallen einem die Prüfungen auch wesentlich leichter. So hat die Vorbereitung auf das erste Examen noch einige Monate gedauert, zuletzt hatte ich jedoch Prüfungen im zwei-Wochen Tag.

Exam Description Date Completed
647 Pro: Windows Server 2008, Enterprise Administrator December 13, 2012
414 Implementing an Advanced Server Infrastructure November 30, 2012
413 Designing and Implementing a Server Infrastructure November 16, 2012
417 Upgrading Your Skills to MCSA Windows Server 2012 November 02, 2012
643 TS: Windows Server 2008 Applications Infrastructure, Configuring October 19, 2012
680 TS: Windows 7, Configuring October 03, 2012
646 Pro: Windows Server 2008, Server Administrator July 11, 2012
659 TS: Windows Server 2008 R2, Server Virtualization May 31, 2012
640 Windows Server 2008 Active Directory, Configuring April 02, 2012
642 Windows Server 2008 Network Infrastructure, Configuring November 09, 2009

Und als nächstes? Sofern die Zeit es zulässt, werde ich mich im kommenden Jahr mehr auf Prozessen konzentrieren. Projektmanagement und ITIL stehen auf meinem Plan. Mal sehen wie ich mich dabei schlage!

22. October 2012: Anatomy of a Remote Desktop Infrastructure

Virtualization has impacted many areas. Most prominently Server-Virtualization, but there are also other area, Storage in the form of SAN for instance. A Remote Desktop Infrastructure enables Desktop-Virtualization – the Users Desktop runs on a Server, handling all the heavy lifting, while the Users actual Client-Device is only used as a Frontend. In this form Desktop-Virtualization is an integral part of the latest Hype in Corporate IT: BYOD. And as cool as this sounds – on its very base is a very common technology: Terminal Services.

With the Introduction of Windows Server 2008 Microsoft not only renamed Terminal Services to Remote Desktop Services to underline this change, but also further developed the Concept of a Remote Desktop Infrastructure. In this Post, we will take a look what each of this Roles purpose is and how it fits into building a Remote Desktop Infrastructure.

The Image above shows the most basic setup consisting of a Remote Desktop Session Host and a Remote Desktop Licensing Server A Client connects directly to the Session Host which then requests a License from the Licensing Server for this Session. Two Licensing Models are available: Per User and per Device. Names aside this Setup is similiar to those of previous Versions.

Weiterlesen?

6. October 2012: Remote-Control the easy way

Did I ever mention that I love the power and flexibility of Shell-Commands? Another one to remember is winrs.exe which allows to run Shell-Commands – remotely. Sure, PowerShell can do this too. So does Telnet. But neither one of them is as elegant as winrs:

C:\> winrs -r:643hyv01 shutdown -s -t 0

As you can see it traverses the Clients User-Context to execute commands on the Remote-Host. This makes it so uniquely useful – not only in Lab-Environment!

1. October 2012: Take control of your Power!

As a Command-Line Fetishist I like hacking commands in my keyboard. It comes quite naturally and, for the most part, is a lot faster than using a Mouse to navigate through dozens of Menus. In part this is why I am so happy about Microsofts Powershell – finally Windows has a really Console to tinker with. But I am drifting…

Quite occasionally I discover a Command-Line tool that was completely unknown to me before. Every now and then it is actually pretty useful. powercfg.exe is definitely one of these tools – even though it was introduced with Windows XP. It allows to monitor and control Windows Power Settings (beyond the common Power-Settings Panel) and comes with a load of Command-Line Options.

What makes it so exciting, apart from the Command-Line aspect? For instance, we can use it to finally setup a Default-Powerscheme that becomes active each time a Computer boots.

In order to implement this Default-Scheme, lets take a look at how powercfg.exe works. First we query a list of all available Powerschemes and determine the currently active Scheme. Using -setactive we can then change the Scheme to the one we prefer. Lastly, we will check if it worked as intended:

PS C:\> powercfg -list
Existing Power Schemes (* Active)
-----------------------------------
Power Scheme GUID: 381b4222-f694-41f0-9685-ff5bb260df2e (Balanced)
Power Scheme GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c (High performance)
Power Scheme GUID: a1841308-3541-4fab-bc81-f71556f20b4a (Power saver) *
PS C:\> powercfg -setactive 381b4222-f694-41f0-9685-ff5bb260df2e
PS C:\> powercfg -getactivescheme
Power Scheme GUID: 381b4222-f694-41f0-9685-ff5bb260df2e (Balanced)

Now that we have everything in place we can simply schedule a Task running at each Computer-Start triggering a Batch-File with our powercfg.exe -setactive command. And finally we don’t have to worry about any programs (or Users) messing around with Power-Options – and usually decreasing Performance in doing so.

2. August 2012: ActiveDirectory via PowerShell

PowerShell ist eine tolle Sache. Und das liegt nicht zwingend an dem sich irgendwie einstellenden Linux-Feeling. Vielmehr an der Flexibilität und dem Gefühl furchtbar effizient eigentlich einfache Aufgaben erledigen zu können, die mit einem GUI oder einer MMC-Konsole schrecklich lange dauern würden. Aber das erwähnte ich ja bereits.

Und auch in Sachen ActiveDirectory hat Microsoft mittlerweile so viele CmdLets zur Verfügung gestellt, das man so ziemlich alles aus der PowerShell heraus steuern kann. Hier und heute meine Top 3:

  1. get-adgroup –f { name –like "*internet*access*" }
  2. get-acl \\server01\share01
  3. add-adgroupmembers somegroup –members user1, user2, laptop3

Natürlich macht das alles erst so richtig Spaß wenn man sie kombiniert. Hier zum Beispiel die von mir am häufigsten genutzte Kombination um einen User in diverse Gruppen einzufügen (ich kann mir zwar kryptische Passwörter merken, aber logisch benannte Gruppennamen wollen sich mir nicht eintrichtern):

get-adgroup –f { name –like “vpn” } | add-adgroupmembers –members User02

Etwas komplexere Aktivitäten schreibt man jedoch besser in ein PowerShell Skript. So lassen sie sich nicht nur einfach an Kollegen weitergeben sondern auch als Job einplanen. Hier ein Skript das ich nutze im deaktivierte Computer-Accounts nach einer gewissen Zeitspanne zu löschen:

import-module activedirectory
$ou = read-host "Which OU is to be searched?"
$computers = get-adcomputer -filter 'enabled -eq $false' -searchbase $ou -properties Name, LastLogonDate | where {$_.LastLogonDate -le ((get-date).addmonths(-6))}
foreach($c in $computers){ remove-adcomputer $c  -whatif }

13. July 2012: Einmal mehr: Zertifikate

Am Mittwoch war der erfolgreiche Ziel-Einlauf meines diesjährigen ZertifizierungsMarathon. Mit bestandener Prüfung zum Microsoft Certified IT Professional: Server Administrator on Windows Server 2008 bin ich zugleich auch ein Microsoft Certified Solutions Associate geworden.

MCSA Server 2008

Zugegeben, letzteres Zertifikat wird mit Veröffentlichung des neuen Windows Server 2012 hinfällig. Dennoch eine durchaus befriedigende Leistung für ein halbes Jahr Weiterbildung. Und sobald der Kurs für Server 2012 fertig gestellt ist, kann man seine Zertifizierung auch mit einem einzigen Test aktualisieren.

4. June 2012: Noch ein Zertifikat

Mit freundlicher Unterstützung des Microsoft Partner Network, die mir nicht nur einen Crash-Kurs in der Materie sondern auch einen Gutschein für eine Gratis-Prüfung haben zukommen lassen, durfte ich mich am letzten Donnerstag an einer neuerlichen Zertifizierung versuchen. Diesmal Server Virtualisierung. Sehr interessant, wenn auch – was die Details betrifft – weniger umfangreich als jene für Active Directory.

Um ganz ehrlich zu sein bin ich mehr oder weniger davon ausgangen durch zu fallen – schließlich war die Vorbereitung wenig intensiv. Unterlagen zum lernen quasi nicht existent. Und vor allem habe ich es nicht vollbracht meine Test-Umgebung aufzusetzen. Trotzdem habe ich es irgendwie geschafft die Prüfung erfolgreich zu bestehen:

Ich frage mich jedoch ob das nun gegen die Prüfung oder für das White Paper zur Virtualisierung spricht. Vermutlich beides…

4. April 2012: Mal wieder ein Zertifikat

Zugegeben, die Zertifizierungswelle ist bei mir eigentlich schon wieder ein wenig länger her. Dennoch konnte ich heute meiner Sammlung ein weiteres Zertifikat hinzufügen:

Certified!

Und das zu bekommen war diesmal richtig anspruchsvoll! Nicht nur da es eine wirklich atemberaubend breites Spektrum abzudecken galt (im Laufe der Vorbereitung mussten bis zu 15 virtuelle Maschinen parallel herhalten) – gegen Ende meiner ohnehin gut drei Monate dauernden Vorbereitung habe ich in der letzten Woche dann auch noch herausgefunden das ich mit komplett (!) veralteten Unterlagen gelernt hatte. Letztes Wochenende war daher Power-Lernen angesagt. Erfolgreich!

Mal sehen wie lange Microsoft es mir gönnt. Denn immerhin steht ja der Nachfolger bereits in den Startlöchern…

Windows 8 Server Beta

7. December 2011: Zweigleisiger Firefox

Ab und an, vornehmlich wenn man Web-Anwendungen entwickelt, kommt man in die Bredouille verschiedene Versionen eines Browsers nutzen zu müssen. Zumal es mittlerweile allein von Mozillas Firefox für Windows vier verschiedene Versionen gibt – von anderen Herstellen oder Betriebssystemen mal ganz abgesehen. Aber als fürsorglicher Entwickler möchte man dennoch gerne wissen ob sich auch mit anderen Browsern als dem eigenen alles korrekt verhält. Oder aber man möchte gerne eine andere Version nutzen als jene, die einem der Arbeitgeber vor-installiert. Nicht, dass ich das damit sagen oder unterstützen wollen würde…

Wie dem auch sei, zwei Versionen von Firefox lassen sich in der Tat problemlos unter Windows installieren. Zumindest wenn man dabei zwei Dinge beachtet:

  • Das Installationsverzeichnis der beiden Versionen muss unterschiedlich sein.
  • Beide Installationen müssen unterschiedliche Profile verwenden.

Ist der erste Punkt noch offensichtlich und kann schon bei der Installation hinreichend ausgeräumt werden, muss man beim zweiten manuell nachhelfen und optimieren.

Hier klicken für die Schritt-für-Schritt Anleitung.