Skip navigation

Category Archives: /etc

There was an article this morning that mentioned that Metro was replacing Aero as the overall theme in the next version of windows. I’ve been using both Windows 8 and Windows Server 8 since the BUILD conference, and I just don’t see how that is the case. In some of the recent posts by Steven Sinofsky there have been some screen shots of task manager and other desktop apps using a very basic theme. 

This one illustrates the new flat basic theme.


I haven’t tried the Client OS on a non-3D accelerated  system yet, but this is the default for the Server OS accelerated or not.

In fact on the Server OS it’s a feature “Server Graphical Shell”:



Aero came enabled by default on the client OS.


On the Server OS you can get Aero by installing the “Desktop Experience” feature with the PowerShell command “Add-WindowsFeature Desktop-Experience”…This same feature is also available on Server 2008 R2 via the Server Manager interface.

While it may not be the most attractive interface ever, it is very consistent when using Remote Desktop Services. Using the default Server OS install gives you an experience that is the same locally and remotely.  Since a large number of virtual desktop deployments end up not enabling Aero this might be an effort to start managing expectations about remote UI in general. VDI is a MASSIVE push by industry and MS in particular since it really does away with a lot of the headache of managing desktop systems. At BUILD they were really hyping the potential for device makers to build cheap RDP terminals that serve as thin VDI clients. There was at least one session on it, though I didn’t see it personally.

While you can enable Aero in VDI sessions with RemoteFX, starting in Server 2008 R2, that actually requires installing some fairly expensive co-processors that allow virtualized 3D acceleration.

@the_gadgeteur asked me to post some screen shots and build numbers…so, cheers.

Learn to love PowerShell…its the preferred management interface in the new server OS.

The preferred deployment model is going to be the “Server Core” installation. This is generally a Good Thing® in that it will drastically lower the attack surface for operating system exploits…But most Windows admins I know don’t even know the legacy VBScript that they should. I actually had a guy ask me how to get to the “search” feature that was on the XP start menu.

This is why UNIX admins seem better at their job.

Regardless, it really seems like MS really gets how big of a pain it is to run lots of machines at once. Things that used to require either expensive third party tools or custom development are baked in. In fact, the new Server Manager interface is actually just surfacing PowerShell commands. You can actually save the command text from the newest version of the Active Directory Administrative Center. This should ease the learning curve.

I guess I’ve finally read enough PowerShell examples that I’m starting to come around. Up until now I have mainly used C#, VBScript, and C++ (when forced) to do my work. One thing that I can say for the PowerShell ‘methodology’ is that its incredibly consistent.

Get-Help Some-Command –examples

It’s consistent patterns like the above that seem to pervade the whole system.

Speaking of ADAC…ADAC actually depends on the Active Directory Web Service. Some places might have reservations on deploying ADWS since it needs to be installed on every domain controller. (That’s the entry level recommendation at least.) I know quite a few places that didn’t deploy it just because it had “Web” in the name. Insert groan tag. The benefits really do out weigh any deployment or management costs whether real or mythological.

One really neat feature of PowerShell is that HKCU, HKLM, the certificate store, and IIS are all drives. So is Active Directory.

This image illustrates what I mean…


It’s been a long time coming. Windows really didn’t have good scripting story before PowerShell.

In Active Directory you could search using the ldap filter (ANR=JOSH) and it would return any object where the search string ‘JOSH’ is a part of the the givenName, SN, mail…basically any attibute that has ‘searchFlags=0’ in its schema entry.

In SQL you would use the keyword ‘LIKE’ for the same effect. Although, in SQL you would have to specify the column names to query.

I can’t tell you how much time this would have saved me in the past. I want to weep.


I’ve got to look into this more. By the time I finally get around to taking the CCIE lab this will definitely be on the menu.

One unintended consequence of leaving IPv6 enabled on either Server 2008/2008 R2 or Win 7 is that the link local addresses can still be working on the local subnet even in the case that IPv4 is broken due to VLAN tagging…or any number of other reasons…why is that? The Link Local Addresses discover each other via layer 2 broadcasts. (Before anyone shouts at me…I know that they use Layer 3 multicast…but the addresses map to layer two broadcasts.)

The more development that I do, the more I realize that there isn’t any wizard behind the curtain. There is less and less mystery as to how things work. Which is good and bad…you start thinking…Screw that, I can TELL this thing to do anything that I want. This comes up more and more as co-workers don’t believe you that when they click a check box on a tool that came with the OS, you can do that TOO?!!!??? With code??!?!?!!? No…There is something special about the check box. There is no way that you can do what the CHECK BOX does. How dare you blaspheme the OS! Don’t let it hear you! The disbelief is weird. Today was such a day. I always knew that Com objects were just dll’s (mainly) that had some common entry points defined…and some “glue” (IDL) that let’s you access them from different languages. Today, I have even fewer scales over my eyes.

Now to dig back into that Russinovich book on C++ and win32…

This is actually pretty damn useful…from the article:

This method terminates a process without running any active try/finally blocks or finalizers.

The FailFast method writes the message string to the Windows Application event log, creates a dump of your application, and then terminates the current process. The message string is also included in error reporting to Microsoft.

Use the FailFast method instead of the Exit method to terminate your application if the state of your application is damaged beyond repair, and executing your application’s try/finally blocks and finalizers will corrupt program resources.

That’s kinda cool.