Hack 54. Control Another PC with Remote Access
You can control a computervirtually moving its mouse and typing on its keyboardover 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 on to 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 #97] 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 timethat is, one computer can "take over" your computer remotely (with luck, it'll be you doing the takeover!).
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 available at http://www.realvnc.com.
5.7.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 "Allow users to connect remotely to this computer" checkbox in the Remote Desktop section of the tab to enable incoming connections, and click 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 #82], and choose which user accounts the incoming connection can connect to.
Firewalls usually refuse remote access connections [Hacks #Section 8.4 and Section 8.5], so if you want your remote server to be accessible from the Internet, you need to open a port in your computer's firewall. Remote Desktop uses port 3389. If you use Windows XP's built-in Windows 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.
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 #55] 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 <yourname>.dyndns.org (they offer several dozen domain names to which you can add your name). TZO.com provides a subdomain at <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 users to log into, and give it a password.
5.7.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 to the printer on the server.
Margaret Levine Young