Blog
Archive
<February 2010>
SunMonTueWedThuFriSat
31123456
78910111213
14151617181920
21222324252627
28123456
78910111213
Monthly
Go
Search
  |  Register
Author: Created: Tuesday, September 09, 2008 1:58:59 PM RssIcon
News and updates about code4ward.net
By Stefan Koell on Friday, February 26, 2010 6:26:26 PM

It’s been a while since my last post but there wasn’t really much to blog about Royal TS 2.0. I’m making progress, just not with the pace I imagined. The last couple of weeks I tried to wrap my head around the “Details” view – essentially the right-explorer-pane. In it’s current implementation, Royal TS shows you the list of connections from a folder or the document. If a connection is selected in the tree, you see the “Dashboard” in the details view. Basically the behavior will remain unchanged. There will be dashboards for connections, tasks, credentials and there will be a details view for folders or documents.

Here’s how the details will look like in Version 2 (this isn’t really the final design, I guess the one or the other detail might change until 2.0 is released):

image Let me explain the screen above to you: As you can see, Royal TS will finally have tabs. The “Details” tab is kind of a special tab which will be activated as soon as you click on an inactive connection item to show you it’s dashboard or if you click on a folder/document to show you the details view (content of the folder).

Now, as the picture above suggests, the details view has lot’s of end user capabilities which might be handy for your organizational tasks:

  • Group by one or multiple columns (feature is well know for Outlook users)
  • Sort columns/groups
  • Customize columns (show/hide) and reorder columns
  • Find as you type
  • Column filters and quick column filters you may know from Excel
  • Build complex filters using a filter editor (see screenshot)
  • Filter across all columns (similar to the filter functionality in Royal TS 1.6.x)
  • Quickly filter out Active or Inactive connections
  • Auto Best Fit / Best Fit adjusts the column width to best fit the contents
  • Optionally keep all filter settings when you change the selection in the tree (by default, all filters are cleared when you change the selection)
  • Optionally show items from all subfolders as well

This piece is still not ready and I think I need another day or two to get it done. That’s it for now. If you have feedback, don’t hesitate…

By Stefan Koell on Wednesday, February 17, 2010 4:32:41 PM

I was asked recently to post an article on how we do web page monitoring. For a number of reasons we do not really use the built-in “Web Application” monitoring template. One of the reasons is that we are not really happy with the selection of the watcher nodes. We needed a way to monitor every web server in our farms without managing the watcher nodes manually all the time. We create host entries on our web servers pointing to themselves. So every time you browse to www.code4ward.net on one of the web servers you do not go through the load balancer. Since the host entry for www.code4ward.net points to the web server itself, you will browse to the web hosted on the server you are currently connected to.

So I created a small script which is basically doing web monitoring the way we wanted it to be. In this blog post I will talk about the implementation we started to use back in MOM 2005 and still use it (slightly modified) in our SCOM 2007 environments. We have recently migrated all those scripts to PowerShell and did our own class definitions using the authoring console. For now, I will focus on the much simpler implementation using VBScript and OpsConsole without any work in the Authoring Console. Download the vbscript from the following link:

http://www.code4ward.net/c4w/files/Misc/code4ward.Sample.WebContentCheck.zip

Before you begin you should create a group containing all your computers you want to monitor with a web page. Or you can of course also use the script like the Web Application template to monitor a web page through a load balancer or whatever using watcher nodes. In any case, create a computer group with your web servers/watcher nodes.

image_thumb2 In your Operations Manager console switch to the “Authoring Space”, expand “Management Pack Objects”, right-click on the “Monitors” node, select Create a Monitor –> Unit Monitor

Now select “Scripting / Generic / Timed Script Two State Monitor”

Select a destination management pack.

Attention: The group I talked about earlier needs to be in the same management pack with the script monitor we now create. Or the group is in a sealed management pack, then you can select a different destination management pack.

Click next.
   
image_thumb7 Provide a name for your monitor and select a target like “Windows Server”.

Notice that we uncheck the checkbox “Monitor is enabled”. We will later create an override to enable the monitor for all the web servers/watcher nodes we created the group earlier.
   
image_thumb10 Configure a schedule. In general we schedule all our monitors (or rule) to run every 5 minutes (of course there are exceptions).
   
image_thumb18 I strongly suggest to provide a meaningful script file name on this page, as it will help you to find it on the agent when you have to trouble shoot something.

Let’s setup the timeout to 5 minutes.

Open the script attached to this blog post and copy everything from the code4ward.Sample.WebContentCheck.vbs into the script text field.

The script is very generic and needs 3 parameters to run successfully. 

As you can see from the script body,
Parameter 1: is the URL of the web page you want to monitor
Parameter 2: is the expected text in the content
Parameter 3: is the timeout in seconds (-1 means no timeout)

Before we click on next, click on the Parameters button to specify your parameters.
   
image_thumb22 To be on the safe side, I always put the parameters in double-quotes. The parameters line reads:
”http://www.code4ward.net” “code4ward” “30”

The configuration means, download the web page from www.code4ward.net every 5 minutes (the scheduled we configured earlier), look for the string “code4ward” (without the quotes) in the content, abort request after 30 seconds if there’s no answer from the web server.
If “code4ward” is in the content and the web page was returned within 30 seconds, the monitor is healthy.
If “code4ward” is not in the content or the web page took longer than 30 seconds, the monitor is unhealthy.
   
image_thumb25 Now we need to hook up the property bag status messages from the script with the health monitor’s unhealthy state:

Property[@Name=’Status’] Equals Error
   
image_thumb30 Now we need to hook up the property bag status messages from the script with the health monitor’s healthy state:

Property[@Name=’Status’] Equals OK
   
image_thumb33 Here you can decide, if you want the health state to be warning or critical.
   
image_thumb36 The last page of the wizard let’s you configure the alert properties for this monitor. In order to get all the nice output from the monitor in the alert description, you need to copy “$Data/Context/Property[@Name='Message']$” (without the quotes") into the alert description field.

Now click on “Create” and your monitor is ready to use.

All you need to do now, is to create an enable-override on the monitor for the group we created before.

As you can see, the monitor itself is pretty simple and has not all the features you know from the Web Application template. But sometimes less is more and this script monitor is used to monitor hundreds of sites without any problems.

If you have any questions or feedback, just comment or drop me an email.

cheers,
Stefan
http://www.code4ward.net

By Stefan Koell on Thursday, February 11, 2010 9:32:16 PM

construction_barrierToday we had a short downtime of our web site because a long overdue update to the latest and greatest DotNetNuke version was installed.

Site performance seems to be significantly better and I hope that the main issues in the forum (broken posts) are now history.

By Stefan Koell on Saturday, February 06, 2010 5:10:58 PM

image

I’m almost done implementing the new “Properties” panel in Royal TS 2.0. The content and functionality is basically the same as in the current version except that it will be available for all types of objects (RDP Connections, Folders, Credentials, ...).

As you can see from the screenshot, the little hint-bar on top of the panel mentions that you can easily pick up a value into the clipboard by double-clicking a row. You can also right click a row to bring up the context menu.

For security reasons, passwords will not be shown in clear text instead an indicator showing that a password is defined is presented to you. But double clicking the “Password” row (or selecting Copy to Clipboard) will actually copy the password into the clipboard. So, Royal TS will also become a very versatile password manager allowing you to organize passwords of all kinds – not only for your connections.

In the context menu, you’ll notice an “Execute” command. This command will only be available in the “Custom Fields” section. In case you store some URL or command line, you can quickly start the command using the Execute menu item.

The Edit command will bring up the usual “Edit->Properties” dialog for the item.

The Properties panel itself, can be “Docked” (always in sight, as seen screenshot), changed to “Auto Hide” (will only slide in when you hover with the mouse over the “Properties” header),  changed to “Float” (panel will show up in a small window, detached from the main window) or even closed (not visible at all). I will post some more details about the docking framework in a couple of weeks but if you are familiar with the Visual Studio docking framework, you’ll get the idea…

Let me know what you think. Any feedback is very much appreciated. If you miss some functionality in this area or have some improvement suggestions, please let me know; now would be a good time ;-)

By Stefan Koell on Friday, January 29, 2010 11:19:19 AM

image

A lot of people and most of my friends are disappointed with Apple’s latest creation. “It’s nothing more than a bigger, oversized iPod Touch” they say and basically they are right but having an oversized iPod Touch has it’s advantages. The size and form factor alone allows you to do so much more in a much more comfortable manner. In the beginning, I was very skeptical as well and was completely underwhelmed with the iPad announcement but after watching the keynote yesterday, I think it may have a bigger impact than I thought first.

 

For once the form factor seems to be right. I am a huge iPhone fan and love all the apps I downloaded and purchased over time. I cannot imagine how it was back in the days without this little gadget. You can do so much with an iPhone but some things on the iPhone are just not that comfortable. I mean, browsing the web to quickly look up something is fine. Answering an email with “Ok, let’s do that” is just fine. Playing the casual game is just fine. Writing a longer email, taking meeting notes, browsing the web with the iPad seems to be much better (not to mention using the physical keyboard accessory).

 

Lot’s of my friends are complaining that the iPad has a stripped down version of OS X (like the iPhone) installed. They prefer to have a full running version of OS X or Windows on it. I admit, that this would have it’s advantages but in my opinion Apple made the right decision. I’m not a fan of the App approval process and the Big Brother – Attitude of Apple and find it really annoying. I understand that this will protect most users like my parents but I really miss the “Ok, I am an adult and take the risk to install and use dangerous software”-button to do crazy stuff with a device like that. On the other hand, imagine running full OS X or Windows on a device like this. Windows, pull down menus, buttons, it’s just not built for a device like that. Imagine a Finder or Windows Explorer running on a device and by mistake you wipe your finger and move some folders around your hard drive. It’s just not right. Apple pulled something off what Microsoft failed to achieve. They (re-)invented the UI for such devices. The only “problem” is, that they achieved that with the iPhone. Yes, the UI was born with the iPhone and it was genius. There’s nothing wrong to take this approach further to the iPad. Obviously it worked great for the iPhone to enable multi-touch so why not bringing it to the iPad? My guess is, that everyone who is disappointed with the iPad announcement expected another similar breakthrough invention as the iPhone and it’s UI.

 

Look at Windows 7. It claims to be multi-touch enabled but where’s Microsoft’s effort to build a Shell and API’s, User Controls, etc. to enable developers bringing great multi touch apps to Windows? Looking at HP’s Slate PC they introduced earlier this year, I thought, wow, you can run Windows 7 on this tiny little device? Great! But on second thought: will that be practical? What can I really do with it? Yes, I can start Outlook and Word and whatever but how will it feel?

 

After seeing the iWork demo, I am convinced that you really can work with such a device. I’ve seen people with a Windows Tablet and stylus running around, trying to get meeting notes and even these guys admitted that working with a stylus sucks.

 

To sum it all up: Apple may have made the right decision and the motto “Less is more” seems to be appropriate. The iPad will not replace your desktop PC, laptop or iPhone. Doing heavy duty work will always be done on your fully capable desktop OS. It’s the daily tiny stuff like communication, entertainment, infotainment such as emails, games, browsing and what ever cool apps will see the light of the day where the iPad will shine.

 

Just my two cents…

By Stefan Koell on Sunday, January 17, 2010 6:55:09 PM

image

Progress report #1, on Version 2 of Royal TS. Hopefully I manage to do this more often and I would be grateful for any feedback.

As you may know from the previous post, Royal TS will allow you to open multiple documents at the same time. This might be handy if you are working in a team and have spread your configuration across multiple documents, or if you want to have one document for each of your clients, etc.

Similar to Version 1.5x or later, Royal TS Version 2 will also allow you to encrypt your passwords with a password/passphrase. So if you have a couple of documents protected with the same password, it might be annoying when you get a prompt for each and every document you open in the same instance of Royal TS.

So I invented the “Password Cache” (patent pending Tongue) which basically holds a secure copy of your password in memory. The next time you open an encrypted file, Royal TS will try if one of the cached passwords will work and will spare you the password prompt.

The check box “Remember this Password”, which is checked by default, allows you to control whether you want to cache this password or not.

For security reasons, the cache will not work when you want to edit an encrypted document. Editing a document also allows you to change the password for a document (or remove password protection), therefore, Royal TS will always prompt for the document password in that case.

The Password Cache lives in the RTSApp.exe process, so as soon as you quit your Royal TS instance the cache will be cleared.

One more thing: I also create a Facebook page for Royal TS, so if anyone is interested to join: http://www.facebook.com/pages/Royal-TS/237851900921

cheers,
Stefan

By Stefan Koell on Friday, January 01, 2010 12:42:57 PM

British Musical Fireworks Championships

I hope you all had nice and refreshing holidays. I know that I did. Despite the fact that I am still recovering from my minor surgery two weeks ago, I am feeling very well again.

The coming year will bring some major changes to Royal TS and I bet you all are very excited about this. I will not reveal much in this post but you can expect regular progress reports over the next weeks bringing you more and more details about the new features coming to Royal TS in Version 2. There are still some minor nasty bugs in 1.6.8 and you can also expect an update here.

As many of you already know from the forums, Version 2 of Royal TS will be almost a complete rewrite and there’s still a lot of work ahead of us. We are still deciding for some features to be included in Version 2 or to be postponed. We hope that we can provide a beta version of Version 2 some time in Q1/Q2 2010.

Here’s what we know to be included:

Version 2 will have an “Object Explorer” which is basically replacing the current “Navigation Tree”. Why object explorer you may ask? Simply because you can now create not only RDP connections, you can also create and organize other connections and objects.

Using the object explorer you can create/manage the following “Objects”:

  • Documents: you can now have more than one document open in the same tree
  • Folders: you can now have nested folders in each document
  • RDP Connections: pretty much the same as Royal TS can do now, of course some new features and options will be included.
  • Web Connections: instead of connecting to a remote desktop session, you can now open a web page. Very handy if you have some web based admin pages for routers, firewalls, WIKI pages, Sharepoint sites, applications, etc.
  • Tasks: pretty much the same as Royal TS can do now, only that the tasks can be organized in the tree like any other object.
  • Credentials: a credential is nothing more than a username/password pair which can be defined in your document. You can then refer to these credentials in your connections/folders. You can refer to them explicitly by choosing the Task from your tree or you can instruct Royal TS to look for a credential with a specific name. This feature has a great impact if you are using the same document in a team. In your Document you configure each connection credential to look for a credential named “Domain Admin Account” and if you want to connect to this session Royal TS looks in all your open documents or in your application store (Tasks and Credentials can also be stored in something called Application Store to be available all the time in your Royal TS installation, we will talk more about the application store in another post) to find a credential with this name. This way, login information will be separated from the document but it is also possible to have auto-logon functionality.

The last bullet in the list hints another feature many of you requested: Assigning credentials/tasks on a folder level. You can now optionally assign default credentials, a pre-connect task and a post-disconnect task on a folder in your hierarchy and configure your connections to use the configuration of your parent folder instead of the individual configuration.

That’s it for now.

I wish you all happiness and prosperity in the new year. Thank you for being our customer and we look forward to continuing our relationship in this new year!

By Stefan Koell on Sunday, December 13, 2009 1:40:23 PM

I just want to share this piece of information because it’s not really documented and someone might wonder about how SCOM behaves with discovered entities in the Operations Manager DB and Data Warehouse DB. We had a discussion with our Microsoft contacts and here’s the (somewhat surprising) outcome.

Let’s start with a short overview, why this information is so important for us (and maybe for you too):

As many of you do, we deploy our own authored management packs containing our own class definitions which are discovered and monitored. In our case, we created a sealed MP, a “library” MP containing our classes, rules, monitors, etc. We also create MPs programmatically which have a reference to this library MP. Sometimes we are forced to update this library MP to a new version and sometimes it happens that we break compatibility so that we cannot just “upgrade” our MP. We are forced to uninstall all referenced MPs, the library MP and reinstall the new library MP (my friend Tenchuu wrote an awesome script to automate this process: http://systemcentercentral.com/BlogDetails/tabid/143/IndexId/55738/Default.aspx).

First question came up: what happens to my discovered entities when I uninstall the MP containing the discovery and class definitions?

The second question was: what happens when I re-import the MPs, the discovery runs and the exact same entities with the same ID are discovered again?

The answer to the first question was – as expected:

When you uninstall the MP containing the class definitions and discovery, all discovered entities are deleted and all associated operational data (Events, Alerts, Performance Date, State Change Data, etc.) will be gone as well.

So everything is gone from the OperationsManager database.

In the data warehouse database the data will still be there.

The answer to the second question may be obvious as well:

When you reinstall your MPs and the discovery will create your entities with the same object IDs as before, the data warehouse would continue to associate the data to the same object you had before. Except for the missing data while you had your MP deleted, you will not see a difference.

There’s one caveat and you should be very careful: Since the data warehouse also keeps track of the MP version with each object ID, the data warehouse will only keep the data from the last three MP versions in the database. This is not configurable! In other words, when you keep your data warehouse data for 6 months and you do uninstalling and re-importing your MPs more than 3 times in one month, you will lose more than 5 months of data.

UPDATE: The above – the rule of 3 – only applies to unsealed Management Packs. When you use sealed Management Packs the DW data will always be kept until standard grooming kicks it out, regardless how often you update, delete or re-import the MPs.

One other small detail is, that you cannot trick this mechanism by just not changing the MP version. The data warehouse will create an “internal” versioning of the MPs which will change upon update, even if the MP version is still the same!

cheers,

Stefan
http://www.code4ward.net

By Stefan Koell on Thursday, November 26, 2009 11:57:53 PM

imageIt’s almost a year since Royal TS became Shareware. When you obtain a license for Royal TS you also get a 12-month software upgrade protection to ensure that you have access to the latest versions of Royal TS for a year after your purchase date.

Some of our very first customers were asking about extending the software upgrade protection and thought it might be a good idea to publish a blog post to clarify a few things about our licensing. So here we go…

First of all, there is no extension for the software upgrade protection and there is no need for that. Here's why and how we planned our licensing structure:

The license key currently issued is bound to the Royal TS Version 1.6.x

The next major version of Royal TS (V2.0) a new license key will be needed. The keys for 1.6.x will not work anymore. The key issued for Version 2.0 will work with all minor versions of version 2.x. Version 3.0 will need a new license key again and so on.

With our software upgrade protection we ensure you have access to all new major and minor releases for a duration of 12 months after purchase. This way you will not have to buy another license a month later after your purchase in case a new major version is released.

Every customer qualifying for a free upgrade according to our software upgrade protection will get the new license key automatically by email when the new release is available.

Every customer who does not qualify for a free upgrade anymore (because the purchase date was back more than a year) will get automatically notified by email when a new major version is released and they will also get a discount coupon to use when they decide to upgrade to the new version.

We think this is a very fair approach because you do not have to pay for an extension without having a new major version on the horizon but at the same time ensures that loyal customers get the benefit of a discount when the release is ready and they decide to upgrade.

I hope this makes sense and want to express my appreciation for all of you supporting Royal TS. Thank you!

By Stefan Koell on Sunday, November 15, 2009 2:16:43 AM

We are still working hard on version 2 of Royal TS but over the last couple of months we also needed to take care of some bug of the current version. One of the current issues are some Windows 7 quirks which will hopefully be ironed out with the upcoming release 1.6.8. But here a complete list of fixes and features:

Windows 7 / Font related:

It seems that in Windows 7 the font size changed slightly. At least in some dialogs there are tiny text-cut-offs. These should be fixed now. Another issues for a lot of users is the text size in the tree view and the list view. We were always following the best practices and Windows design guidelines. We used the standard system font and size as recommended. So, when switching from XP to Vista/Win7, Royal TS will use a different (and larger) font. We got a lot of feedback about these issues and implemented a quick fix.

For once we will reduce the default font size back to 8.25pt instead of 9.0pt regardless of the OS.

Additionally we will provide a way to change the font and font size for both separately, the tree view and the list view. For now, there’s no UI for this because we basically rewrite all the UI for V2 and didn’t want to invest much in the soon to be obsolete UI. You need to edit some XML to set the font or font size.

Which brings us to another small but useful new feature: directly opening the config folder from Royal TS. A frequently asked question always is: Where are my task and application settings stored. And the answer is not always easy because it depends if you have some folder redirection policies and it also depends on the OS you use.

So, if you open up the Activity Log from the View menu, notice the Config Folder button on the toolbar:

 image

Clicking on this button will open a File Explorer displaying the directory with your setting files.

When you now open the code4ward.RoyalTS.ApplicationSettingsData.xml you will see the following new settings:

image

The order of the items may be different on your system.

LegacyTreeStyle can be true or false: When true, it will display +/- signs (XP style) instead of the little triangles (Vista/7 style).
ListViewFontName can be Default or a font name of your choice: When set to Default it will use the system’s default font.
ListViewFontSize can be Default or a size of your choice: When set to Default it will use 8.25. If you use Vista or Windows 7 and want to use the system’s default font size you need to change it to 9.0!
TreeViewFontName and TreeViewFontSize will be the same as ListViewFontName and ListViewFontSize except it controls the font of the tree view.
TreeViewHighlightType is by default None and can be Full, Partial or TextOnly: Controls how the items in the tree view will be highlighted after selection.

Control on which Screen the session will appear when it’s not embedded

image

Notice that there’s now the possibility to setup on which display screen your external session will be opened. This option is only available when you have selected External Window or External Window (Full Screen) and when you have more than one display connected to your computer. The default value is Last Remembered, which saves the position of your session when the window is closed or the session is disconnected but selecting a specific display let’s you force to open it always on the specified screen.

Also note the shortcut to the Display Properties Control Panel, which might be handy if you do not know what display number corresponds to your actual screens.

image

If more than one display is connected, you can also use the Connect with Options functionality to temporarily open a connection on a specific monitor.

Changes to the Remote Desktop Module

Royal TS now sports a fancy Connecting and Reconnecting indicator:

image

An often requested feature is to have a better reconnect function to instruct Royal TS to keep on trying to reconnect during a reboot of the remote system. This feature is still NOT available but this indicator is the first of two steps to get it implemented. The idea is to have a checkbox of some sort which says Try to reconnect until server is available again.

Network Level Authentication (NLA):

Royal TS supports NLA and on Windows 2008(R2) and Vista/7 NLA is enabled by default meaning the client trying to connect needs to have NLA enabled. If NLA is not enabled the connection fails with the error code 2825. If this error occurs and the connection doesn’t have NLA checked in the advanced settings tab, Royal TS not only publishes a warning about that, it is trying again with NLA enabled automatically.

Single Sign On:

Royal TS now also supports SSO (big thanks to Wulfert on supporting me with testing and providing valuable information!). You need to setup your environment according to this blog post of the Terminal Services Team Blog: http://blogs.msdn.com/rds/archive/2007/04/19/how-to-enable-single-sign-on-for-my-terminal-server-connections.aspx

If you can connect using mstsc.exe without your explicit credentials (your desktop credentials are passed through to the remote system using Kerberos) you can now also use Royal TS. Just leave the credential information blank (no Username, Domain and no Password), enable Network Level Authentication (NLA) in the Advanced tab of your connection and set Auth. Level to Connect, but warn me if server authentication fails.

Other fixes:

  • Individual disk redirection on Windows 7 is now working correctly.
  • TS Gateway Credentials are now remembered.
  • Bulk Reconnect from the list is now working.
  • Some minor UI fixes.

One feature needed to be removed!

A quite handy feature I cannot miss anymore is to move an existing connection out of the main window into an external window using the Change menu. If you are working on two machines and you need to quickly compare something, you can easily pull out one session to an external window and put it on the second screen. Don’t worry, this will still be possible!

image

The feature that needed to be dropped is Window Mode: External (Full Screen). As you can see in the screen shot above, it’s not available anymore. You can of course still open an external session from scratch in external full screen mode, you just cannot do it with an initially embedded session. The ActiveX control seems to be very unstable when doing this and sometimes it worked but then again sometimes not. So for quality reasons I decided to take it out. Nobody is happy about application crashes…

When will 1.6.8 be available?

Beta testing of 1.6.8 will start within the next few days. If you want to participate and try out the beta you can easily join the beta group. To do so, you need to create an account on the code4ward site (if you do not have one already), sign in and click on this link: http://www.code4ward.net/main/Default.aspx?rsvp=RTSBETA

Clicking on this link doesn’t really give much feedback. To verify if you are member of the beta group, click on your user name on top, right side and click on Manage Services in your Profile. If you see Royal TS Beta Group, you are in.

Member of the beta group will get email announcements about new beta releases and access to the beta forum to discuss the current beta release.

If you decide to try out the beta, always make backup copies of your .rts files and setting files (like task settings if you have lots of them).

Depending on the issues found in the beta 1.6.8 will be publicly released within the next two or three weeks.

Thanks for all of you who provided feedback, suggestions and bug reports. Your help is very much appreciated!