Hack 58 Control Another PC with Remote Access


You can control a computer?virtually moving its mouse and typing on its keyboard?over the Internet, using either Windows XP's built-in features or a third-party program.

When you are at work, wouldn't it be nice if you could log onto your home computer to check your email or find a file you took home? How about using your home or office desktop computer from your laptop on the road? You can use a remote control program to use another computer over the Internet, viewing its screen on your screen and giving commands via your mouse and keyboard. Windows XP comes with a feature called Remote Desktop, or you can use a third-party program. Windows Messenger [Hack #78] also enables people who are chatting to share control of each other's computers.

The computer you will control is called the remote server , and the computer you are actually sitting in front of is the remote client. Windows XP comes with a remote client program (Remote Desktop Connection), and Windows XP Professional comes with a remote server (Remote Desktop) that works with one client at a time?that is, one computer can "take over" your computer remotely (with luck, it'll be you doing the takeover!).

Remote Access Server (RAS) on Windows NT or 2000 servers and the Routing and Remote Access utility on Windows Server 2003 both act as remote servers that allow multiple remote clients to connect.

Windows XP Home Edition can't act as a remote server; if you need to be able to access a Home Edition system remotely, you need to upgrade to Windows XP Professional or use a third-party program. We recommend VNC, the small, free, open source program from the University of Cambridge Department of Engineering (information and free downloads are available at http://www.uk.research.att.com/vnc).

5.18.1 Configuring the Windows XP Remote Server

If you want to be able to control your Windows XP Professional system remotely, set it up as a remote server. Using an administrator user account, choose Start Control Panel Performance and Maintenance System (or press the Windows-Break key), click the Remote tab, select the checkbox in the Remote Desktop section of the tab to enable incoming connections ("Allow users to connect remotely to this computer"), and click the Select Remote Users if you want to control which user accounts can be used by remote clients. (Windows automatically allows connections from the current user, along with all user accounts in the local Administrators and Remote Desktop Users groups.)

Normally, remote clients connect to the server via a local area network or a permanent Internet connection. However, you can also configure the remote server to accept incoming phone calls if you have a dial-up modem. Create a dial-up connection that accepts incoming calls by running the New Connection Wizard (click "Create a new connection" from the task pane in the Network Connections window). Choose "Set up an advanced connection" as the Network Connection Type, choose "Accept incoming connections," choose your modem, choose whether to accept VPN connections [Hack #49], and choose which user accounts the incoming connection can connect to.

Firewalls usually refuse remote access connections [Hack #46] and [Hack #48], so if you want your remote server to be accessible from the Internet, you need to open a port in your computer's firewall [Hack #50]. Remote Desktop uses port 3389. If you use Windows XP's built-in firewall, display the Network Connections window, right-click the Internet connection, choose properties from the shortcut menu, click the Advanced tab, and click Settings to display the Advanced Settings dialog box. Click the Remote Desktop checkbox; if the Service Settings dialog box appears, just click OK.

If you want to change the Remote Desktop server port to a number other than 3389 (perhaps to decrease the likelihood of hackers breaking through it), see the Microsoft Knowledge Base article Q187623 (at http://support.microsoft.com, type the article number in the "Search the Knowledge Base" box).

When you connect from your remote client (described later in this hack), you need to provide a domain name or IP address. If your computer connects via a dial-up, DSL, or cable connection, its IP address changes each time you connect, and the computer doesn't have a domain name. One solution is to have someone at the remote server display the Network Connections window, right-click the Internet connection, choose Status from the shortcut menu, click the Support tab, and call, IM, or email you with the IP address that appears. However, this solution is no good if no one is available to do this. Instead, you can sign up for a dynamic DNS service [Hack #59] at http://www.dyndns.org or http://www.tzo.com. The dynamic DNS service at DynDNS.org gives you a free domain name in the form .dyndns.org"><yourname>.dyndns.org (they offer several dozen domain names to which you can add your name). TZO.com provides a subdomain at .tzo.com"><yourname>.tzo.com for $25 per year. You install a small utility on your computer that automatically tells the dynamic DNS whenever your computer's IP address changes.

One final configuration note: when a client connects to your server via Remote Desktop, the user logs into one of the Windows XP user accounts. You can't log into accounts that have no password. Choose which account you plan for remote user(s) to log in with, and give it a password.

5.18.2 Setting Up the Remote Client

To set up the remote client software that comes with Windows XP, connect to the Internet and then choose Start All Programs Accessories Communications Remote Desktop Connection. (If it's not there, you need to install it from your Windows CD.) In the Remote Desktop Connection window, type the domain name or IP address of the server computer and click Connect. Log on with the Windows XP user account and password for the remote server. Your computer screen now shows what's on the screen of the server computer. A connection bar appears as a button on the screen, showing the IP address of the remote server, along with Minimize, Restore, and Maximize buttons you can use to resize the remote client window.

Once you're connected, you can cut and paste information from the remote client window to other windows. You can also use local files in your remote session; your local disk drives appear in My Computer (Windows Explorer). When you print from the remote client, the print job goes to your default local printer, not the printer on the server.

?Margaret Levine Young