Tuesday, January 06, 2009

... faster and faster than ever.

Here's a small summary of my year 2008:

  • Royal TS made some great progress: At the beginning of 2008 Royal TS 1.4.3 (2008-01-10) was the first remote desktop application (besides mstsc.exe, of course) to handle the /consol to /admin switch in XP SP3/Vista SP1 properly.
  • NoBurgerRoyal TS 1.5 (2008-06-15) was a release with BIG changes: BIGGEST CHANGE: THE BURGER IS GONE! Royal TS should be Royal, so the crown is the new icon for Royal TS.  Another big thing was the introduction of strong encryption with the document protection feature. Besides that, the UI was streamlined and some nice graphics were inserted (designed and composed by a good friend of mine, Armin - thanks again for that)RoyalTSIcon_48px_32bpp
  • The code4ward web page was relaunched using DotNetNuke.
  • My internet connection became unstable, so I decided to host my server with my website in a real datacenter with a decent connection.
  • One very new experience of 2008 was having no vacation. Yes, that's right, there was no summer vacation as usual.
  • Ok, this one is not exactly a vacation but could be interpreted as one: In November I left Europe for the first time and spend 10 days in the U.S. - Seattle. I attended the Microsoft OpsMgr TAP meeting, met a lot of great guys, saw the Pacific, a Rainforest and ate a lot of Burgers - shopping wasn't bad either.
  • We had some quiet holidays (which was nice) and I took some days off.
  • Lastly a sad story: we had to put one of our cats, Phoebe, to sleep because of a fast growing tumor on her nose. She was only 5 years old. I wasn't really a cat person until I met my wife (and her cats), so I never thought that a creature like this can be so lovable. We all miss you, Phoebe!

What's up for 2009:

After almost 8 years as a freeware, Royal TS grew into a nice and popular product. There's a strong community, a lot of users with great ideas and so much to do. I decided to spend more time on Royal TS. So, from now on, Royal TS will be shareware and I am really excited about this. Your support will help me to improve and extend Royal TS even faster.

But fear not, Royal TS can still be used freely.

First of all, I will keep all previous versions of Royal TS (1.5.1 and earlier) available for free as before. The shareware license applies only to version 1.6.0 (and later).
Secondly, 1.6.0 can also be used for free if you don't need to handle more than 10 connections. So everyone using Royal TS for private use at home, can still use it for free.
Third: the license fee is fair: one license will be EUR 20,00 / USD 25,00 (prices may vary depending of the currency conversion).
Number four: when you buy a license you are entitled to upgrade to any version of Royal TS for a full year.

I'm looking forward to 2009 and hope you stay with Royal TS.

A healthy, successful and happy new year,

Stefan

Spent a couple of days in Port Angeles, Seattle and of course in Redmond. It was my first TAP meeting and I was really impressed. Meeting all those guys behind the scenes as well as meeting OpsMgr admins from all over the world was quite an experience. I also had the honor to sit next to Pete Zerger who runs SystemCenterForum.org and as we were talking we realized that we knew each other from our online life. Of course I am a regular visitor of his community site, there's tons of valuable information and my hacky script Set-NotificationForAlert.ps1 seems to be well known in the community.

Here some pictures and note that we got only 4 hours rain in 10 (!) days - which is quite impressive for that season:

Hurricane Ridge (Olympic National Park) feels almost like back home in Tyrol:

Seattle1 Seattle2

That's what I call a burger! (Actually it's called "Hungry Bear Burger") I picked up one of those on our way to Forks to see what a rainforest will look like:

Seattle3

Now to the Rainforest:

Seattle4 Seattle5

Yes, this is the Pacific:

Seattle6 Seattle7

Seattle Skyline in the Mist and of course the Space Needle:

Seattle8 Seattle9 Seattle10

Microsoft TAP Meeting:

Seattle11

Shopping Malls everywhere (somehow we were also lucky because there was a shooting one day before we went there, one 16 year old kid died):

Seattle12

back_soonThe next 2 weeks I'm in Redmond and Seattle. I'm attending the TAP meeting for the next OpsMgr release and some friends are attending a SQL server conference in Seattle. Anyhow, I have now the chance - for the first time - to see the MS campus and I am really excited about it. Of course, I am also looking forward to meet all the nice guys from the OpsMgr product team.

When I'm back I will continue the work on the release of Royal TS 1.6.0. The code is pretty much ready to roll.

One little teaser: Royal TS will sport a very flexible way to execute tasks (command line) on one or more connections. You will have access to almost all connection settings from these commands by using special variables. I'm sure you'll love it.

By default I will ship at least 2 pre-defined tasks: "ping.exe $Hostname$" and "ping.exe $Hostname$ -t"

For those who like to use a "Wake On LAN" helper tool, someone could easily implement a task like "wol.exe $PhysicalAddress$"; yes a new field to store the MAC address was added too Open-mouthed

Everybody can create new tasks and extend Royal TS. For example: starting the eventviewer or computermanagement MMC for the selection. Open a directory, file or URL. And many, many more.

image As maybe many of you observed as well, the Remote Desktop components shipped with Vista and XP SP3 (especially XP!) are not as stable that the previous versions. My personal experience includes sudden disconnects (when heavy graphics in the remote sessions are involved) as well as "stuck" sessions. These sessions are stuck when you try to gracefully disconnect a remote session. Somehow - and don't ask me why - the remote desktop component thinks it must try to reconnect, which never happens. The nice reconnect screen has a disabled or useless "Cancel" button. So, the session is "stuck".

Only remedy (now): Shutdown Royal TS and restart it.

Royal TS get's a new menu item "Force Disconnect" to destroy the ActiveX control itself by force and should only be used in that rare occasion.

Read More »

... but those who are may have received a conference guide like this:

image

How do you spell connect?

Thanks to David Allen for this.

Read More »

My new and shine web site just got the new blog module (3.05.00). So far everything's fine and I already post from Windows Live Writer without any plug-ins and stuff. smile_teeth

I got a lot of feedback lately, that Royal TS needs an import functionality. I completely agree, but I soon realized, that almost everyone has different requirements. So thinking through all possibilities and providing a powerful UI which can handle all different requirements would be very time consuming.

So I thought, providing a sample script which shows how this can be done should get you started...

Click here to get to the script.

As most of you already saw, code4ward got a complete new face. Here some facts about the relaunch:

  • Join The DotNetNuke Powered! ProgramThe new web page runs on the DotNetNuke platform. I never was a huge fan of DotNetNuke and if I could, I would still try to avoid using it. Don't get me wrong, I think it's a great platform with a great value and a huge and very professional community attached. I just really don't like dependencies...
  • The skin is a professional one, which was bought and customized. I am really happy with the look of the site.
  • Some of the graphics were made by a friend of mine who is a very talented designer with fresh and crazy ideas. Thanks Armin! Some other graphics came from iStockPhotos
  • The previous site (based on Community Server) was hosted on a machine at my place. My bad experience with my (lately very unstable) ISP forced me to move the site somewhere else. A friend of mine (Netmonic) offered me to host my virtual machine for a very low monthly rate. So in fact, this is quite new: Now I not only have to pay for power and an internet connection, I also must pay for hosting; not much but still.
  • The web site is now hosted on a Windows 2008 / IIS 7 machine running SQL Server 2008. Was quite a learning experience.
  • The download tracking and statistics code was self written. It's a C# HTTP Module using LINQ. I will soon release the code for that.

ComponentFactory is offering their Krypton Suite (Value: $299) for free to MVPs and .NET bloggers. Go, ckeck it out here: http://www.componentfactory.com/blog/?p=328

CheckServiceState Script CheckServiceState Script

If you ever wanted more control how to monitor windows services with Operations Manager 2007 you most likely realized, that you have to do it all by yourself with a custom script.

I had at least two major problems which forced me to use a custom script:

  • It seems that you cannot monitor the status of a service which has the startup type set to "Manual". (There is a parameter in the overrides dialog called "Alert only if service startup type is automatic" but it doesn't have any effect, the health state simply doesn't change)
  • When using templates to monitor a windows service you cannot override the monitor to only monitor a subset of services using a group. The group just doesn't show up in the list

So this is my approach to windows service monitoring:

First of all, let's set up a Windows Service monitoring using the standard Management Pack Templates Wizard. In this example: "Print Spooler". In the monitoring wizard select or create a destination management pack, here: "Windows Service Monitoring".

I use the template wizard because I can use the discovered service class to target my own script and I get all the other goodies (performance monitors, baseline rules, etc).

After a while the service you just configured to monitor will be discovered. Now let's setup a group:
Create a new group with a name like "Print Spooler Service Group" in the "Windows Service Monitoring" management pack. In this example I use explicit group members but you can also use dynamic membership of course. The beauty is, that your group can (and should) contain the discovered service instances:
bws1

Next, bring up the monitors the template wizard creates for us:
bws2

There you should see the (very inflexible and buggy) availability monitor:

bws3 

Right-click on the "Service Running State" monitor and select "Overrides > Override the Monitor > For all objects of type: Print Spooler". In the Override Properties, disable the monitor (check "Override" for the Parameter Name "Enabled" and change the "Override Setting" to "False").

Next, right-click on the "Availability" node and select "Create a monitor > Unit Monitor...". In the unit monitor dialog, select the "Scripting > Generic > Timed Script Two State Monitor" as monitor type and place it in the same Management Pack "Windows Service Monitoring".

In the General properties page we can now target the script to the "Print Spooler" class. Also be sure to disable the monitor by default (We enable it later using a group override).
bws4

Pick a schedule which makes sense to you (I recommend every 5 minutes but depending on your environment I suggest that you don't go below 2 minutes).

In the Script page, provide a script name, like CheckServiceState.vbs and paste the attached script into the script area.

The script takes 3 parameters (documented in the script) but for a standard scenario you can just use:
"$Target/Property[Type="MicrosoftSystemCenterNTServiceLibrary!Microsoft.SystemCenter.NTService"]/DisplayName$" "Running" "Auto"

Because we already target the print spooler class we can use a dynamic parameter to pass on the service name. Parameter 2 and 3 (which is optional) can be used to define the desired status and startup type. Please be sure to encapsulate each parameter in double-quotes - just to be on the safe side.

Next let's define the health expressions:
bws5 
bws6 
bws7

And finally the alert:
bws8

I suggest an alert description like:
The state of the monitored service '$Target/Property[Type="MicrosoftSystemCenterNTServiceLibrary!Microsoft.SystemCenter.NTService"]/DisplayName$' on '$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$' is invalid: $Data/Context/Property[@Name='AlertText']$

After you created your monitor, enable it using an override for the group we created earlier.

As last (optional) step I suggest to create a state view containing the Print Spooler instances and scoped to the group where we enabled the monitor.
bws9

Of course, it would be much better if that functionality and flexibility is provided by OpsMgr out of the box...

cheers

       
 

Search Blog

       
         
 
You must be logged in and have permission to create or edit a blog.
Privacy Statement  |  Terms Of Use
Copyright 2008 by code4ward - Stefan Koell