Remko Weijnen's Blog (Remko's Blog)

About Virtualization, VDI, SBC, Application Compatibility and anything else I feel like


If you want to get rid of this message:

Remote Desktop cannot verify the identity of the computer you want to connect to.  This problem can occur if:

1) The remote computer is running a version of Windows that is earlier than Windows Vista.
2) The remote computer is configured to support only the RDP security layer.

Contact your network administrator or the owner of the remote computer for assistance.

Do you want to connect anyway?

Set the DWORD value AuthenticationLevelOverride of HKCU\Software\Microsoft\Terminal Server Client\AuthenticationLevelOverride to 0.

Read more on Scott Forsyth’s blog


Yesterday I attended the Citrix Solutions Conference in Antwerp. Brad Pedersen (Chief Architect and Senior Fellow at  Citrix Systems) held an interesting speech about The End User Experience. I liked especially liked the part about the history of Citrix and the early versions of their products like Wincredible and Winframe. Since Brad wrote the original code for Citrix and thus Terminal Server (the stuff that is in winsta.dll now) I hoped he could share some info with me on the undiscovered parts of winsta.dll. Unfortunately Brad could not do this because of a non disclosure agreement with Microsoft. He did tell me that Citrix is pushing Microsoft to make more Terminal Server API’s public. I presume that’s why Vista and Windows 2008 offer some new API’s which I wrote about earlier.


Command Prompt IconA little while ago I wrote an article on launching a process in another Terminal Session (

The article didn’t have a demo app yet so I’ve attached it here. Read the rest of this entry »


It has been a little silent on the JEDI Apilib project lately, but this will change!

We had some change in the team members: Marcel van Brakel, founder and large contributor of the project has signed off because he no longer actively uses Delphi. Christian Wimmer has joined the team and he is a very promising member.

Christian has been working on a new include model (optional) of the Jedi Apilib which has the advantage that you only need to use one unit (JwaWindows) for the whole library.

Chris has also published the JEDI Windows Security Code Library (Jwscl). This is library that tremendously simplifies using Win32 API calls from Delphi. At this point the library contains:

  • Windows Version
  • Token
  • Impersonation
  • Login
  • SID
  • Access Control List
  • Security Descriptor
  • Owner, Group, DACL, SACL
  • WindowStation
  • Desktop
  • LSA
  • Rights mapping
  • Secured Objects Files, Registry (+Inheritance), etc.
  • Credentials (Login Dialog)
  • Encryption (MS Crypto API)
  • Well Known SIDs
  • Privileges
  • Security Dialogs (The “ACL Editor” you see on the security yab when you rightclick object in Explorer)
  • Terminal Sessions
  • Unicode + Ansicode
  • Vista Elevation
  • Vista Integrity Level

Although Jwscl is in beta stage it is already very well useable.

Read the rest of this entry »


Dirk Schmitz send me his Python version of encrypting the RDP Password:

Read the original article here:


Post Views

I was curious how many times my posts are viewed. So I installed this plugin which was made by Lester ‘GaMerZ’ Chan. If you use WordPress take a look at his other plugins, there are some good ones there!


I had to lookup some users in Active Directory today which I received by mail. Offcourse I got full users name while I needed either samAccountName or full adsPath. Usually I write a small VBS script to do the lookup and paste this in Excel for further processing. But today I decided that an Excel function to do the lookup would be nice. So I wrote it.

The function is called GetAdsProp and allows you to search on a specific AD field in the whole AD tree and return the value of another field.

Read the rest of this entry »


Google has added imap support to GMail. This means you can use an e-mail client like Outlook (Express) to read your mail but you don’t have to download and store them locally. Read more here. The Storage Limit has been raised to 4 GB (at time of writing 4569 MB)


When a client is connected to a Terminal Server Session you can use the Terminal Server API to retrieve the client’s local IP address.

Start by enumerating all sessions with WtsEnumerateSessions and then for each session get the ClientAddress with a call to WTSQuerySessionInformation with the WTSClientAddress parameter. Sound simple, no?

WTSQuerySessionInformation returns a pointer to a WTS_CLIENT_ADDRESS structure. You need to know that the IP address is located at on offset of 2 bytes in the Address member of WTS_CLIENT_ADDRESS.

So here’s a sample:

Read the rest of this entry »


The upcoming Vista SP1 promises 3 new Terminal Server API functions:

If you look in the Windows 2008 beta you can see that the functions are already implemented (in WtsApi32.dll):

Read the rest of this entry »