Showing posts with label RemoteDesktop. Show all posts
Showing posts with label RemoteDesktop. Show all posts

Monday, November 24, 2014

RDCMan gets a Rev (and more)

Microsoft Downloads - Remote Desktop Connection Manager 2.7

RDCMan manages multiple remote desktop connections

Version:2.7.1406.0

File Name: rdcman.msi

Date Published: 11/18/2014

File Size: 1.1 MB

DCMan manages multiple remote desktop connections. It is useful for managing server labs or large server farms where you need regular access to each machine such as automated checkin systems and data centers. It is similar to the built-in MMC Remote Desktops snap-in, but more flexible. The RDCMan 2.7 version is a major feature release.

New features include:

- Virtual machine connect-to-console support

- Smart groups

- Support for credential encryption with certificates

- Windows 8 remote action support

- Support for Windows 8, Windows 8.1 / Windows Server 2012, Windows Server 2012 R2

Ben Armstrong’s Virtualization Blog - Update for RDCMan

Anyone who is familiar with RDCMan will be thrilled to hear that there is an updated version available!

For those of you who are new to RDCMan – it is a tool that allows you to easily manage multiple remote desktop sessions:

image

...

250 Hello - Remote Desktop Connection Manager Download (RDCMan) 2.7

...

Installation Pointers

There are a couple of things worth noting about the tool:

It will install into the x86 Program Files folder on a x64 machine: 

C:\Program Files (x86)\Microsoft\Remote Desktop Connection Manager

Do not save your custom RDG files in the installation folder, just in case your local workstation dies and the file is gone. I always keep my .RDG files in a  subfolder of My Documents, which is a redirected folder to a file server. 

The RDG files are portable, and you can share them within your organisation.  For example, when you get a new admin give them a copy of the RDG files and they are able to review your list of servers and get connected easily – assuming they have the permissions….

The help file is located in a sub directory called Resources,  - unsurprisingly this is called help.htm

2.7 Fixes & Features

From the above help file.  Please review the help file for details. 

New features

Virtual machine connect-to-console support

Client size options come from the application config file (RDCMan.exe.config) rather than being hard-coded.

View.Client size.Custom menu item shows the current size

View.Client size => From remote desktop size

Option to hide the main menu until Alt is pressed. Hover over the window title also shows the menu.

Added Smart groups

Support for credential encryption with certificates

Better handling of read-only files

Added recently used servers virtual group

New implementation of thumbnail view for more predictable navigation

Thumbnail view remembers scroll position when changing groups, etc.

Performance improvements when loading large files

Allow scale-to-fit for docked servers (Display Settings.Scale docked remote desktop to fit window)

Allow scale-to-fit for undocked servers (Display Settings.Scale undocked remote desktop to fit window)

"Source" for inheritance in properties dialog is now a button to open the properties for the source node.

Focus release pop up => changed to buttons, added minimize option.

Added command-line "/noconnect" option to disable startup “reconnect servers” dialog

Session menu items to send keys to the remote session, e.g. Ctrl+Alt+Del

Session menu items to send actions to the remote session, e.g. display charms

Domain="[display]" means use the display name for the domain name.

Bugs fixed

Application is now DPI aware

Undocking a server not visible in the client panel resulted in the client not being shown in undocked form.

Ctrl+S shortcut didn’t work at all. It now works and always saves, even if there are no detected changes to the file.

Shortcut keys didn’t work when focus was on a thumbnail.

Add/delete profile in management tab. In same dialog instance, profiles are not updated. Similarly adding a new profile from combo doesn’t update the tab.

Window title was not updated when selected node is removed and no new node selected (open a file, close the file.)

Connect via keyboard didn’t always give focus when it should.

Connected Group would always show itself upon connecting to a machine, regardless of setting.

Selecting a built-in group then hiding via menu option didn’t work properly.

Editing server/group properties did not always mark a file as changed.

Non-changes could result in save prompts at exit. This should no longer happen.

Activating the context menu via the keyboard button was not always operating on the correct node.

Changing a server/group name doesn’t change window title if the server/group is currently selected.

ALT+PAGEUP and ALT+PAGEDOWN hotkeys were switched. This is fixed for new installs—for existing files you’ll want to change on the [Tools.Options.Hot Keys] tab.

/reset command line option wasn’t resetting all preferences

“Server Tree” option from “Select server” focus release dialog didn’t show the server tree if it was hidden.

New file directory now defaults to “Documents”.

ListSessions dialog sometimes popped up in a weird location. Now placed within the main window

Lessons Learned - Importing Azure RDC Files into RDCMan.exe’s RDG

This is really over-engineering.  Azure’s “connect” link sends you a .rdc file to download or open.  The registered handler for .rdc files is mstsc.exe, a.k.a. Remote Desktop Connection.

The key line in the .rdc file is “Full Address:s:FQDN:PORT”.  The ‘s’ column in the colon-delimited value is short for ‘string,’ nothing more.  What we want are the FQDN, the port, and the .rdc file’s name.  Why the filename?  It turns out that the Azure Cloud Service is the FQDN in the .rdc file.  The machine name is just the filename.  In other words, if all your VMs are in the same Azure Cloud Service, then the FQDN for each .rdc will be identical.  Only the port will differentiate one VM from the other.

Anyhow, all this does is look for the Full Address line, extract out the FQDN and port data, then create a server element under the specified group in the RDG file.

...

Lessons Learned - Hotkeys and RDC Man

There are days I seem to live on RDC Man.  One day, I might try setting my Shell= to RDCman.exe.  On a VM, of course.

At any rate, there are times I need to switch back to the host machine.   While I would like to just see a ‘minimize RDC Man’ hotkey, I’ve had to make do with The Big Hammer: Ctrl-Alt-Del.  This brings up the ‘Windows Security’ screen (not my name: see for yourself at http://msdn.microsoft.com/en-us/library/aa383500(v=vs.85).aspx)

A simple Ctrl-Alt-Del isn’t sufficient.  Exiting the Windows Security screen will drop you back into RDC Man. Starting a Task Manager (or switching to it, if already started), will send keystrokes to the host machine.  If you’re an old-school Unix-head like me, the mouse is The Absolute Last Resort.   So, I hit Alt+T to start taskmgr.exe.

Wait, there’s more!  You need to release the Alt key between Ctrl-Alt-Del and Alt-T.

===

...

That should be enough RDCMan for you today...

Saturday, May 17, 2014

Play with a demo of the new Microsoft Azure RemoteApp right now...

In the Cloud - Microsoft Azure RemoteApp Demo

At TechEd this week, I had the privilege to announce the release of Microsoft Azure RemoteApp preview, a new service from Microsoft that provides Windows applications from a finished Azure service.

Since the launch of the preview, the team also enabled an Azure RemoteApp demo that allows you to experience the end-user aspects of the service on your choice of iOS, MacOS, or Windows devices in less than 5 clicks.

There are already thousands of unique users testing the service, and the team is working hard to increase the capacity.  The demand has been so high that it is, understandably, taking us time to go through all the approvals.  But don’t worry – we’ll get to everyone (we already have thousands of cores allocated to supporting this preview).

To experience the demo for yourself, click here.  Also, to read more about the demo experience, the RDS team has written a detailed post about the preview.

...

This demo lets you play with just released RemoteApp feature right now, with hardly any setup. Just install the RemoteApp utility and go! It's really pretty neat and the hybrid scenario is  something I'm going to have to take a good look at.

image

image

image

Wednesday, May 07, 2014

Turing your Surface RT into a Pro, via the power of the Cloud (and RemoteApps, Remote Desktop and more... think DIY DaaS)

Team blog of MCS @ Middle East and Africa - How to Convert your Surface RT to Surface Pro - Part 3

Links to All Parts:

Part 1: Install Remote Desktop Services

Part 2: Configure RemoteApp

Part 3: Configure Surface

 

In Part 1: I’ve explained how to install Remote Desktop services on the server and fix common error that you may face, in Part 2 we finished configuring Remote Desktop Services and publish RemoteApp.

This part we will test from client side machine by browsing to the RDWA and will configure Surface with RemoteApp.

...

ITPro: How to Convert your Surface RT to Surface Pro – Part 1

From long time I’ve started to have all my labs on Windows Azure (will share that experience in another blog), my main motive was to get rid of my heavy ugly laptop to a light and thin one. My first pilot was to use Surface as the replacement of my laptop.

For some reason (I don’t remember it now) I’ve decided to get Surface RT not Surface Pro, I’m trying to convince myself now that RT lighter, RT is 676 grams compared to 907 grams for the Pro.

But anyway here it is my RT device, I loved the experience and the display but the second day I looked for PowerShell ISE and couldn’t find it, PowerShell ISE was my magical solution to connect to Office 365 so it’s mandatory for me. The result: PowerShell ISE is not built in with Windows RT and can’t be installed from the store.

Ok no ISE let’s install the PowerShell Module for Azure (Windows Azure VMs cmdlets) and PowerShell Module Windows Azure AD (Office 365 module), obviously you can’t install anything to RT.

The huge one when I started to look for Visio and Project Pro, and yes both are not part of Office pro which installed on the Surface and are not available on the Store. Now it’s serious I can’t work without these programs.

I started to look for a solution and first thing came to my mind is to RDP to another machine running on Azure that have everything I need, nice Idea and worked fine but annoying as you need to share the files (copy it or send it by email) between the 2 PCs, didn’t like the overall experience.

I was reading some of the new staff on Windows 2012 when I thought of RemoteAPP, what if I’ve a server on Azure running Remote App and I can use all my applications.

First things first, what is RemoteApp:

...

Hum... Since I've got my MSDN credits that I'm not currently using, this sounds kind of cool to try out.

Monday, November 04, 2013

Cloud VDI seems to be the new Dev desktop shiny, so I guess it's a good time for the new Virtual Desktop Architectural Reference Guides.

Welcome to the US SMB&D TS2 Team Blog - Virtual Desktop Architectural Reference Guides (Including Azure) Just Released

Josh Condie – With VDI becoming more and more an opportunity for partners who host client services for small and mid-sized customers, Microsoft just released the guidance necessary to help you design effective desktop services using our latest Hyper-V, VDI and RDS technology in Windows Server 2012 and Windows 8.  Key to success here is brining the costs of infrastructure down and ease of deployment and management up.  Microsoft made great strides in the Server OS in both departments.  For example, the support of Direct and SMB Share storage designs and inclusion of advanced storage management capabilities such as Storage Tiering, Deduplication and Thin Provisioning, bring costs down greatly for mid-sized deployments numbers.  ...

The Traditional Desktop Hosting Reference Architecture Guide can be found here.

Using Azure:

For hosting partners looking for a rapid expansion of their capacity, we now offer Windows Azure as another avenue to achieve VDI scale.  Per the article:

“The primary goal is to enable hosting providers to create secure, scalable, and reliable desktop hosting solution offers for small- and medium-sized organizations with up to 1,500 users. The intended audience for this reference architecture is hosting providers who want to leverage Windows Azure infrastructure services to deliver desktop hosting services and Subscriber Access Licenses (SALs) to multiple tenants via the Microsoft Service Provider Licensing Agreement (SPLA) program.”

A logical view of the Azure architecture looks this:

image

The logical architecture diagram shows a two-layer architecture with the following layer definitions:

· Desktop Hosting Service: Virtual machines, networks, and storage that make up the functional service for each tenant.

· Infrastructure Services: Consists of the Azure management portal, load balancer, VPN gateway, Windows Server operating system instances running the Hyper-V role used to virtualize the physical servers, storage units, networks switches, routers, and so on that make up the Azure Infrastructure Service. The Azure infrastructure Services allow the VMs, networks, storage, and applications to be created independently from underlying hardware.

For the full technical article and guide, navigate here.

...

Windows Azure Desktop Hosting - Reference Architecture and Deployment Guides

Windows Azure Desktop Hosting Reference Architecture Guide

Summary: This document defines a set of architectural blocks for using Windows Azure Virtual Machines to create multitenant, hosted Windows desktop and application services, referred to in this document as “desktop hosting.” The primary goal is to enable hosting providers to create secure, scalable, and reliable desktop hosting solution offers for small- and medium-sized organizations with up to 1,500 users. The intended audience for this reference architecture is hosting providers who want to leverage Windows Azure infrastructure services to deliver desktop hosting services and Subscriber Access Licenses (SALs) to multiple tenants via the Microsoft Service Provider Licensing Agreement (SPLA) program. To deliver a desktop hosting solution via Microsoft’s SPLA program, hosting partners leverage Windows Server and the Windows Desktop Experience feature to deliver Windows users an application experience that is familiar to business users and consumers. Although Windows 8, Windows 7, and earlier Windows client versions are not licensed for SPLA, the Desktop Experience feature in Windows Server 2012 provides a similar user experience and application support.

Author: Microsoft Corporation

Published: September 2013

Revision: 1.0

Download: To review the document, download it now.

Windows Azure: Desktop Hosting Deployment Guide

Summary: This document provides procedural guidance for deploying a basic desktop hosting solution based on the Windows Azure Desktop Hosting Reference Architecture Guide. This document provides you with a starting point for implementing a Desktop Hosting service on Windows Azure virtual machines. You’ll have to perform additional deployment steps in a production environment to provide advanced features such as high availability, customized desktop experience, RemoteApp collections, etc.

Author: Microsoft Corporation

Published: October 2013

Revision: 1.0

Download: To review the document, download it now.

Seems everyone, well bleeding edge early adopters anyway, are hosting their dev vm's in the cloud and using smaller end devices, like Surfaces, ultrabooks, etc to access them.

This the future of the dev desktop? It could be, if we can get over the security concerns... (or have them hosted on an in-house cloud, but there could be issues with that as well...). Anyway, I saw these guides and thought I should snag them for future reference.

Monday, November 05, 2012

RDP8 is not your Father's RDP... Some details about RDP8 For Win7 SP1, Win8, WinServer2008 R2, WinServer2012

My Thoughts On IT… - New Remote Desktop Client for Windows 7

RDP 8 the new protocol for Remote Desktops in Server 2012 has been released for Windows 7. This is not your typical just install a new client – so make sure you would benefit from updating to the new RDP8. To understand if this would help you  ask yourself are you Remoting  into a Windows 8, Windows 2012, or Windows 7 with RDP 8 installed machine? If the answer is yes, then it makes sense to do the upgrade.

Remote Desktop Protocol 8.0 update for Windows 7 SP1 and Windows Server 2008 R2 SP1
http://support.microsoft.com/kb/2592687

There are a host of new features in the new RDP 8 protocol. These features are available when you use a client and host that is compatible with RDP 8.0.

This means that a computer that is running Windows 8, Server 2012, or Windows 7 SP1 with the RDP 8.0 update installed can connect to another computer that is running Windows 8, Server 2012, or Windows 7 SP1 with the RDP 8.0 update installed.

..."

Description of the Remote Desktop Protocol 8.0 update for Windows 7 SP1 and Windows Server 2008 R2 SP1

This article discusses the Remote Desktop Protocol (RDP) 8.0 update that enables you to use the new Remote Desktop Services features. These features were introduced in Windows 8 and Windows Server 2012 R2. These features are now available for computers that are running Windows 7 Service Pack 1 (SP1) or Windows Server 2008 R2 Service Pack 1 (SP1).

New features in the RDP 8.0 update
New features for client computers that are running Windows 7 SP1 or Windows Server 2008 R2 SP1
The RDP 8.0 update contains the following new features for client computers that are running Windows 7 SP1 or Windows Server 2008 R2 SP1:
  • Remote Desktop Connection 8.0 client
  • Dynamic In-Session USB Redirection
  • Reconnect for RemoteApp and Desktop Connections
  • Improved single sign-on experience for Remote Desktop Web Access
  • Support for RemoteFX Media Redirection APIs for VoIP applications
  • Support for Nested Sessions
New features for remote computers that are running Windows 7 SP1
The RDP 8.0 update lets remote computers that are running Windows 7 SP1 use RDP 8.0. The update contains the following features for remote computers that are running Windows 7 SP1: 
  • RemoteFX for WAN
  • RemoteFX Network Auto Detect
  • RemoteFX Adaptive Graphics
  • RemoteFX USB Redirection for non-RemoteFX vGPU virtual desktops
  • Support for Nested Sessions
  • Performance counters for monitoring the user experience
RDP 8.0 cannot be enabled for remote computers that are running Windows Server 2008 R2 SP1.
Features that are made obsolete by this update
Features that are made obsolete in client computers
When RDP 8.0 is installed and enabled in client computers, all features are available.
Features that are made obsoleted in remote computers that are running Windows 7 SP1
When RDP 8.0 is installed and enabled in remote computers that are running Windows 7 SP1, the following features are unavailable:
  • Monitoring an active session of another user remotely by using the Shadow command (Remote Control)
  • Aero Glass Remoting

...

New features in RDP 8.0 for Windows 7 SP1
This update introduces the following features for remote computers that are running Windows 7 SP1: These features are available only when you use a client that is compatible with RDP 8.0. For example, a computer that is running Windows 8 or Windows 7 SP1 with the RDP 8.0 update installed can connect to another computer that is running Windows 7 SP1 with the RDP 8.0 update installed.
New features in the Remote Desktop Connection 8.0 client for Windows 7 SP1 and Windows Server 2008 R2 SP1
The Remote Desktop Connection 8.0 update supports the following new features when you connect to a supported and appropriately configured server:
  • Support for Remote Desktop Protocol 8.0
    The Remote Desktop Connection 8.0 update provides full support for RDP 8.0 and includes the following features: 
    • Remote for WAN 
    • RemoteFX Adaptive Graphics 
    • Remote Network Auto Detect 
    • RemoteFX Media Streaming

    This feature is available when you connect to computers that are running one of the following operating systems:
    • Windows 8
    • Windows Server 2012
    • Windows 7 with RDP 8.0 installed and enabled
  • Dynamic In-Session USB Redirection
    The Dynamic In-Session USB Redirection feature enables users to select USB devices for redirection in the middle of a remote session. USB devices can be swapped between remote sessions or to the local computer. When the RemoteFX USB redirection feature is enabled, users can tap the Devices icon on the connection bar to select which devices are redirected.
    This feature is available when you connect to computers that are running one of the following operating systems:
    • Windows 8
    • Windows Server 2012
    • Windows 7 with the RDP 7.1 RemoteFX vGPU feature enabled
    • Windows 7 with RDP 8.0 installed and enabled
  • Improved single sign-in experience for Remote Desktop Web Access
    This update simplifies and significantly improves the user experience by letting users provide their user name and password only one time when the users connect to IT published apps and desktops. Users are not prompted to provide their user name and password for successive connections. 
    For more information about how to configure Web Single Sign-On (web SSO), go to the following Microsoft website:

    Remote Desktop Web Access single sign-on now easier to enable in Windows Server 2012

    This feature is available only when you connect to Windows Server 2012 virtual-machine based deployments and session-based desktop deployments.

  • Reconnect for RemoteApp and Desktop Connections
    The Reconnect for RemoteApp and Desktop Connections feature enables users to easily disconnect and reconnect to IT published apps and desktops.
    This feature is available to users when they use the RemoteApp and Desktop Connections feature to connect to Windows Server 2012 virtual machine-based desktop deployments and session-based desktop deployments.
  • Support for RemoteFX Media Redirection APIs for VoIP applications
    The RemoteFX Media Redirection APIs feature enables applications such as Lync 2013 to deliver a rich audio and video conferencing experience. For more information, go the following Microsoft website:

    General information about Microsoft Lync 2013 (Preview) VDI Plugin

    This feature is available when you connect to computers that running one of the following operating systems:

    • Windows 8
    • Windows Server 2012
    • Windows 7
    • Windows Server 2008 R2
  • Support for Nested Sessions
    RDP 8.0 supports running a Remote Desktop Connection session within another Remote Desktop Connection session for specific scenarios.
    For more information, click the following article number to view the article in the Microsoft Knowledge Base:

    2754550

    Running a Remote Desktop Connection session within another Remote Desktop Connection session is supported with Remote Desktop Protocol 8.0 for specific scenarios

..."

Besides all the new goodness that's in RDP8, the interesting parts were what was removed, Aero and Shadow. Aero I can see and that's just eye candy, but the Shadow removal might cause issues for those that use it.

So what do I dig about RDP8? The RemoteFX and Nested Sessions. The dynamic USB is kind of cool too...

Wednesday, September 26, 2012

Three Free Remote Desktop Terminal/Connection Manager/Thing (plus one)...

Windows 7 Hacker - Top 3 Free Remote Desktop Connections Manager

Remote Desktop Protocol (RDP), developed originally by Microsoft, is a network protocol that provides a way for people to access a computer remotely with a nice lightweight user interface along with input devices like keyboard and mouse. Both Windows 7 and 8 come with a native Remote Desktop Client that lets you connect to the remote machine through this protocol. However, for people who constantly need to manage multiple machines at once, you will need a program that manages multiple connections for you to make your life easier. And here are 3 of them that are free and great for you to consider.

...

  • Remote Desktop Manager
  • Terminals
  • Remote Desktop Connection Manager

image..."

Having written a Remote Desktop Console (i.e. Connection Manager, etc) these kinds of utilities have a special place in my heart (and I have a sharp eye for what I like and don't in them). Of these three, I like Terminals because it's open source and a very active project.

Though not mentioned in the article, another like open source utility is mRemote (well mRemoteNG since mRemote is dead). If you Remote Desktop allot these kind of consoles/utilities are a much have...

Tuesday, March 27, 2012

More MS12-020 (aka RDP issue) exploit tools are hitting the wild... (Here's one written with VB6 that BSOD's an unpatched systems)

F-Secure - A Tool Exploiting MS12-020 Vulnerabilities

Since the public release of Microsoft's MS12-020 bulletin, there have been plenty of attempts to exploit vulnerabilities in the Remote Desktop Protocol (RDP). Last week, we received a related sample, which turned out to be a tool called "RDPKill by: Mark DePalma" that was designed to kill targeted RDP service.

The tool was written with Visual Basic 6.0, and has a simple user interface. We tested it on machines running on Windows XP 32-bit and Windows 7 64-bit.

...

image..."

IT guys and gals, you have applied this patch, right? Let's see how many servers and critical resources are in your server rooms and data centers that you RDP into? Like all of them? (I mean who actually walks up to servers anymore...?) So as this vulnerabilities gets weaponized and gets into your network (and it will), what's the potential impact? Ready to patch yet? Come on, if a VB6 sample app can BSOD your RDP enabled systems [No jokes about VB6 please... I know you want to.. but please... lol ]

 

Related Past Post XRef:
RDPCheck.com - Quick check to see if your system is vulnerable to the recently patched RDP issue

Monday, March 19, 2012

RDPCheck.com - Quick check to see if your system is vulnerable to the recently patched RDP issue

http://rdpcheck.com/

"CRITICAL RDP VULNERABILITY THREATENS PCS & NETWORKS WORLDWIDE.
THE THREAT OF AN THREAT OF RDP WORM LOOMS.

The MS12-020 vulnerability in Remote Desktop Protocol (a.k.a. RDP or Terminal Services) promises to cause some serious havoc... and many won't realise the risk until it is too late. RDPCheck is our humble attempt to make a positive difference to that...

RDPCheck helps individuals and businesses check their PC's and networks for exposure to attacks on the RDP vulnerability by hackers, bots or an RDP worm.
It's easy...

  • Enter your email address.
  • Click "Start The Test".
  • We'll run our test on the IP address you're visiting RDPCheck from. The test is quick, non-invasive, and does not put your PC, network or business at risk. If you need to test other addresses contact us.
  • Note: For your security we do NOT store your IP address/result combination.
  • A report will be emailed to you with the results and recommendations for what you should do next.

Ready? Ok.

..."

I won't pile on about the RDP issue patched last week. You've all heard about it, that there's exploits in the wild and know to get your systems patched ASAP, so enough said there. What? You'd like to hear a little more about this?

F-Secure - Joe's Garage (SMB): - Most Likely to be Pwned by RDP

Last week, we advised readers to apply Microsoft update MS12-020 sooner than later. For those of you that have — good work. And if you haven't yet applied the patch — stop delaying.

Ever since MS12-020 was released, there's been a flurry of activity attempting to "weaponize" the Remote Desktop Protocol (RDP) vulnerability. The race to an exploit is on and is in top gear. Lab Analyst Timo Hirvonen is tracking the situation on his Twitter account.

So… just how many computer could be affected by this RDP bug?

Well, researcher Dan Kaminsky scanned the Internet and estimates that there are millions of computers that are exposed. RDP and the Critical Server Attack Surface

What do you need to do?

Lenny Zeltser offers the following advice.

...

It's from the above article that I found RDPCheck.com, and while a simple check and one that won't really help anyone inside of firewalls that aren't redirecting/DMZ'ing that port, I still thought it worth a quick share.

You say you don't care or are not impacted because your systems are all behind firewalls? Well that's just silly because you know that somehow, someway, exploit code will get inside your firewall and then you're systems will be toast. If you use RDP anywhere, patch.

Now go, patch.

Thursday, August 18, 2011

VNC via HTML5 (yes, that VNC) with noVNC

Script Junkie - HTML5-Powered VNC Implementation noVNC Let's You Access Remote Systems

"I'm constantly amazed at what developers are able to accomplish now with browser-based technologies. I've used VNC for years to remotely manage PCs and servers and it's a great tool for sure. Never in a million years would I have imagined that you could build an implementation of it using HTML5. That's what Joel Martin has done with the HTML5-powered noVNC VNC client.

By leveraging WebSockets and Canvas, noVNC is able to remotely connected to a box and render our the screen. Here's the main caveat though (via Joel's Github repo):

"Unless you are using a VNC server with support for WebSockets connections (only my fork of libvncserver currently), you need to use a WebSockets to TCP socket proxy. There is a python proxy included ('websockify'). One advantage of using the proxy is that it has builtin support for SSL/TLS encryption (i.e. "wss://")."

Regardless, this is still hot and a testament to how powerful web technologies are becoming. You also have to give credit to Joel for some innovative thinking and skills. Check out the video here:

...

SNAGHTML1ac46bf8..."

I'm at a loss of words (yeah I know, "What? You?"). I guess I found this both awesome and disturbing at the same time. That said, I still think this is kind of scary neat... :)

Wednesday, April 07, 2010

Cassia – A .NET Windows Terminal Services Library (Think “Including the Terminal Services Manager MMC Snap-in functionality in your app’s” library)

code.google.comCassia

“Cassia is a .NET library for accessing the native Windows Terminal Services API. It can be used from C#, Visual Basic.NET, or any other .NET language.

What can I do with it?

Cassia supports the following operations on both local and remote terminal servers:

  • Enumerating terminal sessions and reporting session information including connection state, user name, client name, client display details, client-reported IP address, and client build number (WTSEnumerateSessions, WTSQuerySessionInformation, and friends)
  • Logging off a session (WTSLogoffSession)
  • Disconnecting a session (WTSDisconnectSession)
  • Displaying a message box in a session and getting a response from the user (WTSSendMessage)
  • Enumerating all processes (WTSEnumerateProcesses)
  • Killing a process (WTSTerminateProcess)
  • Shutting down or rebooting the server (WTSShutdownSystem)

In addition, Cassia supports enumerating all terminal servers on a domain (WTSEnumerateServers).

image

…”

I came across this today and thought it was pretty cool. This is one of those, if you need it you’ll think it’s cool, but if you don’t you won’t” kind of project…;)

Tuesday, March 02, 2010

Making VS2010 and/or your WPF applications happy in Remote Desktop/RDP Land

WPF Performance and .NET Framework Client Profile - Optimizing Visual Studio 2010 and WPF applications for Remote Desktop

“It is increasingly common for users to run their client application remotely, either connected to another Windows Client machine (Remote Desktop) or to a Windows Server (Terminal Service). In both of these scenarios the sources and the target machines are communicating over a protocol called Remote Desktop Protocol (or RDP).

In this blog, I wanted to share some of our findings while testing Visual Studio 2010 (VS 2010) over RDP as well as provide best practices to improve VS 2010 and your WPF-base app performance over RDP.

You may have seen the announcements (Soma , Jason Zander, Scott Guthris's) for the public release of Visual Studio 2010 RC . Some of the principles mentioned in this blog are also implemented by VS 2010.

While this blog is focusing on Microsoft remoting technologies some of the ideas discussed here should be applicable to other non-Microsoft technologies.

This blog is few pages long, the first part is a summary for folks who just want the short version. More details follow below in the document.

Summary: Best Practices for Improving VS 2010 and WPF Performance with Remote Desktop

A) Tune your Remote Desktop Connection (RDC) settings.

B) Optimize your WPF app to be Remote Desktop aware. 

C) During development, test your app to verify it is optimized for RDP

History and background

Tuning RDP for optimal Visual Studio 2010 usage

Optimizing your WPF app for RDP

How we optimized Visual Studio 2010 for Remote Desktop

WPF Performance and NET Framework Client Profile  Optimizing Visual Studio 2010 and WPF applicatio

…”

WPF in Visual Studio 2010 – Part 2 : Performance tuning

As we move to WPF applications and virtualization, making the two of them run well together will be an important step in our development process.

The other side of this coin, is that you may have people, say off-shore contractors, who will be Remote Desktop’ing into your data center to do their coding. So it will be important that you make their development experience as smooth and efficient as possible…

What I liked about this article was how it went beyond just configuration changes, but also provided concrete examples of how you can tweak your app’s to work well when RDP’ed. Config tweaks are one thing, but code is always nice… :)

Though I’ve been running in a heavily Remote Desktop/RDP world for years, this article taught me a good bit (i.e. the WTSRegisterSessionNotification/WTSUnRegisterSessionNotification messages are something I’ve been looking for for years and didn’t know it… sigh)

(via Innovation Showcase - Best Practices for Improving VS 2010 and WPF Performance with Remote Desktop)

 

Update 03/02/2010 @ 6:45AM PST:
If you liked the above post, make sure you also check out the Visual Studio Blog’s WPF in Visual Studio 2010 - Part 1 : Introduction and WPF in Visual Studio 2010 – Part 2 : Performance tuning

 

Related Past Post XRef:
Remote Desktop/Terminal Services and the Highly Graphical Application – Tips and Reg Tweaks
NGEN is Love, if you’re running your .Net applications via Citrix or Terminal Services

Wednesday, May 20, 2009

It’s that time of the MS Press 25th Anniversary year… “Windows Server 2008 Terminal Services Resource Kit” and “The Practical Guide to Defect Prevention” ebooks free (reg-ware) through May 27th

Microsoft Press - Two free e-books available in May

“Our celebration of 25 years of publishing by Microsoft Press continues this month with two more free e-books available for the next week! These offers expire on May 27, 2009, so download the e-books today:

Windows Server 2008 Terminal Services Resource Kit, by Christa Anderson and Kristin L. Griffin with the Microsoft Presentation Hosted Desktop Virtualization Team (PDF, 38.0 MB). In-depth and comprehensive, this Resource Kit delivers the information you need to set up, deploy, and manage a Terminal Services farm using Windows Server 2008. …

The Practical Guide to Defect Prevention, by Marc McDonald, Robert Musson, and Ross Smith (PDF, 4.3 MB). This practical, hands-on guide captures, categorizes, and builds a process of best practices to help avoid creating defects during the development process—rather than fixing them after extensive analysis. …

…”

imageimage

Get’m while they are hot… (well while they are available… yeah that… :)

Friday, April 17, 2009

Remote Desktop/Terminal Services and the Highly Graphical Application – Tips and Reg Tweaks

Ask the Performance Team - Terminal Services and Graphically Intensive Applications

“Hello AskPerf, my name is Subheet Rastogi and I am a Technical Lead on the Performance team in Bangalore.  Today, we’re going to take a quick look at issues that typically arise when using graphic intensive applications or media streaming in a Remote Desktop Session.  Some common examples where you might encounter issues in an RDP session include Java applets embedded into web pages, Adobe Breeze, CAD-type programs and of course – playing games.  Why?  Because RDP was oroginally designed to flush the video frame buffer to the client about once every 100 milliseconds.  While this is fine for most Windows GDI applications, graphic intensive applications, 3D applications and applications requiring audio / video synchronization don’t fare so well.  With respect to streaming media in particular, RDP is only meant to cache the bitmap files (compressed) not the audio which is uncompressed over the wire.

Regardless of whether or not you are using graphic intensive applications or streaming media across RDP, there are some things that you can do that may provide some performance benefits in your environment:

…”

A few cool tips, tricks and reg tweaks to help when doing Presentation Virtualization (i.e. Remote Desktop/Terminal Services) with a "graphically intensive” application.

Been doing RD for a while and I think the reg tweaks were news to me, so well worth a capture for future reference.

Saturday, March 07, 2009

NGEN is Love, if you’re running your .Net applications via Citrix or Terminal Services

Mebyon Kernow - Developing .NET applications for deployment on Terminal Services or Citrix

“If you develop .NET client applications that are deployed to users over Terminal Services (TS) or Citrix then this is the post for you. Why? – well, there’s a bit of an issue that not a lot of people know about, and it can really ruin your day. First off some preamble about how we got here and why it’s an issue. I’ll then present a solution.

When a process runs on Windows it typically has some executable code and some data. To vastly simplify this let’s just say that the memory space taken up by my application includes different pages, some code - some data. There may well be other types of stuff in memory but that’s not important to this discussion at the moment. My application runs, loads up code into the pages allocated for code, and loads up data into the pages allocated for data. We’ll call these ‘Private’ memory pages.

Enter stage left: NGEN

You may never have found a use for NGEN (the Native Image Generator), and indeed you might not even know such a beast exists – so for those of you who don’t know, what NGEN does is pre-compile all of the IL into x86/x64 assembly language and stores the compiled image on disk to be used when needed.

The critical thing to understand about NGEN is that whilst it compiles your code, it also marks the code pages as shareable, so that multiple instances of your application can share parts of the memory space used by the first instance. And that’s really useful if you’re running under Terminal Services.

If you compare the first row from the shareable WS column you’ll see that the NGEN assembly has roughly 9Mb more shareable RAM than the original image. I know, 9Mb isn’t a huge amount, but it is a sizeable chunk if you run several users off the same box, and this was from one (admittedly large) .NET assembly. My app was about 3.5 Mb on disk – an application I’ve been working on from one of my customers is just over 40Mb as it includes a bunch of controls from 3rd parties and a whole host of other code.

Assuming I could get the same sort of benefit by running NGEN over my customers application then I might save 100Mb (!) per running instance. It doesn’t take a lot of users to make that significant – the 11th user would bring us to a saving of around 1Gb. Now we’re talking.

To Conclude

Hopefully this post has provided you with enough information to go out and grab some memory back on your TS/Citrix boxes. There’s another upside to running NGEN on your code – it’ll start up faster! This is because with a regular .NET application we have to JIT the code as we call it. With NGEN this has already been done, which generally means you get snappier application startup.

The ideas presented here are really only necessary when running your application under Terminal Services or Citrix. For regular client applications that’s unnecessary, but when running under TS/Citrix I’d say it’s not important, it’s imperative.

…”

If you’re using Citrix/TS as your deployment mechanism then you need to read the post in its entirety.

While my team doesn’t deploy via Citrix/TS there are a number of teams in our Practice that does, so I wanted to call out this post in the hope that it helps them and our clients…

Thursday, June 14, 2007

Remotely Enabling Remote Desktop

WindowsDevCenter.com - Windows Server Hacks: Remotely Enable Remote Desktop

"Remote Desktop is a cool feature of Windows Server 2003 that lets you remotely log on to and work at a machine as if you were seated at the local console (in Windows 2000 Advanced Server, this feature was called Terminal Services in Remote Administration Mode). Remote Desktop can be a lifesaver for fixing problems on servers at remote sites, but what if you forgot to enable the feature before you shipped the server out to Kalamazoo?...

...

Fortunately, there's a workaround. Sit down at your desk and log on to your Windows XP workstation using your administrator credentials and start Registry Editor by Start --> Run --> regedit --> OK. Then select the Connect Network Registry option under the File menu (Figure 2). ...

..."

This is a nice tip on hacking a remote registry to remotely turn on Remote Desktop (reboot still needed).

Also make sure you check out the comments, as there is a ton of great extra information there (like free utilities to do this, instead of hacking the registry, WMI methods of doing this, remotely turning on Remote Desktop for WndowsXP, etc)

(via Nikhil's Blog - Enabling remote desktop remotely)