Support wizardry comes to NT

Have you ever grumbled about how hard reinstalling Windows NT is? Have you ever noticed that Windows 95's Briefcase is a great idea trapped in a poorly implemented program? Have you ever wanted to remotely install applications on users' desktops with just a few mouse clicks and no programming? If so, you'll be happy to learn about new developments in the Zero Administration for Windows (ZAW) initiative.

After years of indifference, Microsoft has finally decided to make supporting its operating systems easier. Microsoft is making many support changes under the ZAW umbrella. At first glance, ZAW seems like a huge, all-encompassing change to how NT works, but ZAW really rests on just a few key technologies: a new caching system, better application installers, intelligent storage, and PCs with a mildly smarter BIOS.

IntelliMirror: A Network Caching System
A keystone of ZAW is IntelliMirror, a new caching system built into NT 5.0. Instead of the common disk cache found on all modern desktop operating systems, IntelliMirror is a network cache. Here is how network caching works: Accessing a file on a network is typically slower than accessing a file on a local hard disk, so NT 5.0's network redirector keeps a copy of often-used network files on the local hard disk. Suppose you want to access a file on the network. The redirector checks whether the copy on the hard disk is the same as the copy on the network. If the copies match, the redirector simply accesses the local hard disk copy, saving time. If the copies don't match, the redirector updates the appropriate file and then accesses the hard disk copy.

If IntelliMirror detects that the server is no longer accessible because the network failed or you disconnected your laptop from the network, the file seamlessly works out of the cache. If you've ever lost a Word document because the network hiccuped, you'll love this feature.

You might also learn to love other IntelliMirror features because of the convenience they offer. For example, with IntelliMirror, your users can roam and keep their data handy. Microsoft suggests you set up the system so that applications store users' data in the My Documents folder. (You can, however, store your data anywhere you want. The My Documents folder is just the default). Because My Documents resides on the server, any machine you log on to can access those documents. Once the server and a machine connect, the NT 5.0 network redirector copies the documents onto the machine's local hard disk. Thus, users can quickly access those documents. Updating the documents is a bit slower because IntelliMirror is a write-through cache. When you modify and save a file, the redirector immediately writes the modified version to both the hard disk and the network.

IntelliMirror can make working with network-based files easier when you're on the road. Suppose you connect your laptop to the network so that you can work on a file located on a server named PUBSERVER. The file's universal naming convention (UNC) is \\pubserver\finance\oct97.xls. Once you're on the road, you just start up the laptop and open the file \\pubserver\finance\oct97.xls. Although you are no longer connected to PUBSERVER, the file oct97.xls is in your IntelliMirror cache and IntelliMirror recalls its original UNC. You can then work on the file and save it to the network (which is actually the IntelliMirror cache). When you reconnect to the network, NT 5.0 will detect that you changed oct97.xls and will automatically overwrite the copy on the server with the newer version on your laptop. If someone changed the version on the server while you were gone, IntelliMirror asks you what to do. As one Microsoft employee wryly explained to me at TechEd last June, IntelliMirror is "just like the Briefcase, except it works."

IntelliMirror not only caches files ordinarily found on the network, but also caches their network names, which again helps laptop users. Before I go on the road, I must remember to copy those files I need onto my laptop. Then, when I start up Word and try to access one of those documents, I have to hunt around my laptop's hard disk to find that file. What was once \\server1\books\chapter2.doc is now d:\ontheroad\chapter2.doc, so I can't just pull down the File menu and select from that menu's Most Recently Used list. After returning to the office, I have to remember to reconnect my laptop to the network and copy the modified files onto the server. Finally, I delete the copies on the laptop's hard disk because I don't want several versions of a file floating around. With IntelliMirror I don't need to worry about any of that.

As these examples show, IntelliMirror is a local network cache that keeps copies of your server-based files on the local hard disk. Sounds good, but what about security? Suppose I log on to a common machine, work on a secure server-based file (such as a memo containing everyone's salaries), log off, and walk away from the machine. That memo is on the common machine's hard disk. Isn't that a security hole?

The answer is yes and no. First, files are person-specific because NT 5.0 relies on NTFS. So when Joe logs on to the common machine after I get off, he won't have file permissions to access the memo. In addition, files in the cache don't have ordinary names. Instead, they have names like M75%193746229127.CHC. So Joe isn't likely to just happen across a file named payroll memo.doc, even if Joe feels inclined to poke around the cache. However, if Joe has an administrator-level account on that workstation, he can certainly take ownership of the file and modify the permissions so that he could read the memo.

You have two ways to protect your NT 5.0 system against this type of security breach. First, don't freely hand out administrative accounts. Compared with previous NT versions, NT 5.0 administrative accounts let people do a lot more because NT 5.0 can do a lot more. Second, you can tell IntelliMirror not to cache a particular account's profile and other files. However, this solution is a bit troublesome because you must forgo all the benefits of IntelliMirror. IntelliMirror would have been better if Microsoft had designed it so that you could tag certain files as noncacheable.

At this point, you might be thinking that IntelliMirror offers convenience, but not really support. IntelliMirror's code-signing verification and self-healing applications might change your mind.

Installing and fixing applications cause many headaches for support specialists. You might need to fix an application for several reasons, but a common reason is overwritten DLLs. Most programs ship with not only an EXE file, but also at least one DLL. (Some programs have as many as 30 DLLs.) Applications should store their DLLs in their application directories (e.g., DLLs that Word uses ought to go in the Word program file directory), but many vendors, including Microsoft, are in the habit of dumping their DLLs into the system32 directory. As a result, if you load an application that needs a DLL named stuff.dll, the chances are good that the application will copy the DLL to the system32 directory. If you load another application that also happens to need a DLL called stuff.dll, the second application's installer will probably gleefully overwrite the first application's stuff.dll file. Consequently, the newer application will run perfectly, but the older application won't work.

Microsoft is trying to fix the overwritten DLL problem by asking vendors to keep their DLLs out of common areas. In fact, in about a year, any vendor wanting to put the Designed for Windows logo on its software must put its DLLs in the proper place.

In addition, Microsoft will offer code-signing verification to prevent intentional overwriting of DLLs. In code-signing verification, a public-key authentication method lets the operating system verify at runtime that the code about to run is the code signed by Microsoft, Lotus, or whomever. Code-signing verification is built-in protection from viruses and program file corruption. (Because code-signing verification will probably be a bit costly CPU-wise, this feature will probably be optional on NT 5.0.)

An erased file is another common cause of headaches for support specialists. For example, suppose that you accidentally erase a program file for Word, but you don't realize it. If users try to subsequently open Word with previous NT versions, they will get an error message. With NT 5.0, however, Word will just reinstall itself. Microsoft refers to this concept as self-healing applications. A new installer technology, the Microsoft Installer (MSI), makes self-healing applications possible.

MSI: A Better Installer
With MSI, applications will not only perform self-diagnoses to detect internal failures, but will also fix those failures through reinstallation. Based on your past experiences with reinstallation, you might expect a screen that says something like, "Welcome to Setup for Word for Windows" and then be bombarded with the usual 15 dialog boxes that accompany setup programs. Fortunately, the application performs a silent install. MSI doesn't assail you with the usual setup questions because you pre-answer all of them.

To be self-healing, applications will need to be MSI compatible. In other words, an application must include a file with the extension .msi that contains all the information necessary to install that application. MSI reads this information and reinstalls the application.

The MSI file is also called a package, a term familiar to Microsoft Systems Management Server (SMS) administrators. SMS administrators use packages for hands-free (i.e., installs without asking the user any questions) remote installation of applications.

With packages, however, you must write a script that automates the keystrokes and mouse clicks that a user ordinarily makes when installing the software. Most scripts are not much fun to write and tend to be fragile. A few vendors have made this task easier by designing their applications' setup programs to accept simple ASCII files that contain the answers to Setup program questions. Thus, you just create an ASCII file rather than messing around with scripting languages. But no two vendors use the same kinds of scripts, so if your enterprise uses 10 packages, the best you can hope for is learning 10 setup file formats so that you can create 10 application-specific ASCII files. The worst case is if none of the vendors use setup files, forcing you to write 10 different script programs.

With MSI, however, the process is much simpler. You just need to answer several questions to create a setup package and then save it as an MSI file. The setup file format will most likely be the same in all vendors' applications because Microsoft created a unified table-driven method for answering setup questions. Microsoft developed this method with other software developers, so most new applications will be MSI compliant.

Why are independent software vendors supporting MSI? Because MSI supports ZAW, and a lot of big clients want ZAW. In addition, vendors' applications won't qualify for the Designed for Windows logo without MSI support.

Besides using MSI for self-healing applications, you can use MSI for installing and removing programs. Suppose you want to distribute a new word processor, WordBlaster, to your users, but you want to spend as little time and shoe leather as possible. With MSI, all you do is assign the application to an NT group, such as Everyone.

What does assign mean? Under NT 5.0, you can centrally modify the Start Programs menus of all your users to include particular applications, even if those applications aren't on those users' systems. (Currently, you can centrally control people's Start Programs menus with system policies. Just like many other ZAW features, the assign feature is just an enhancement of existing technologies.) When users log on, they'll see a menu option for WordBlaster even though you have not installed WordBlaster on their systems. When they try to start WordBlaster, the operating system realizes that WordBlaster isn't properly installed and the self-healing application process kicks in.

At this point, you might be wondering about what permissions you'll have to give users--after all, users must have a fair amount of power over their workstations to install applications, right? Not quite, because the user doesn't install the software, MSI does. But don't be surprised if a whole new class of NT security holes develops once hackers figure out how to build a command prompt that runs in MSI space.

Besides assigning an application, you can get an application into the ZAW world in two other ways. You can make an application generally available by publishing it in the Active Directory (AD). The application doesn't go into the AD. Rather, the AD contains the instructions about where to find it. When users start the Install New Programs wizard in the Control Panel, they'll see that list of programs. Another way to make an application generally available is through the Class Store. For information on how the Class Store works, see my article "NT 5.0 Gets Better and Better--Mostly," page 124.

Removing a program is as simple as installing one. Suppose you want to discard a current application of Word because you want new settings. But if you remove and then reinstall an application, it remembers all your settings from the first installation. Clearly, the removal process doesn't include cleaning out the Registry settings relevant to Word.

With MSI, this situation changes. When removing a program, MSI will delete all files relevant to an application and all Registry entries.

MSI and IntelliMirror work well together. Suppose Sally, a WordBlaster user, tries to run WordBlaster, but it's not yet on her machine. NT 5.0 uses the MSI package you prepared to install WordBlaster quickly and silently. You set up WordBlaster with a network installation option, so no files go on Sally's machine. Instead, they're all on her space on the network, so the data can roam with her more easily. Despite working on the network, WordBlaster runs quickly for Sally because her workstation is running from the program files in the local IntelliMirror cache. Furthermore, if the server's down, Sally can still get work done because her workstation is using the local cache. In the meantime, you can update and install patches on WordBlaster more easily because the application is on the server.

SIS: A Smart Idea
If 2000 users all install WordBlaster and it's a network install, will you end up with 2000 copies of WordBlaster on the server? Don't run to your stockbroker to buy Seagate stock just yet. ZAW avoids having 2000 copies with the Server Intelligent Storage (SIS) server-side program. With SIS, you designate a section of a server's storage as an SIS area. When a user saves a file to that server, the server checks the file against the other files in the SIS area. If that new file is identical to an existing file, SIS doesn't save a second copy of the file. Rather, SIS just stores a directory entry for that file.

SIS sounds like a very cool technology, but I wonder about how CPU intensive it'll be. My guess is that adjusting SIS sizes will be one of the great tuning pastimes of NT 5.0 Server administrators.

What does SIS mean for laptops? Suppose you are a PowerPoint user and you set up PowerPoint to run from the network. What happens when you take your PowerPoint on the road?

In theory, SIS will work effectively because when you run PowerPoint on the network, IntelliMirror copies the PowerPoint program files into the local IntelliMirror cache. So when you're on the road, the program files will be available. In reality, however, you can run into trouble two ways.

If you've never used PowerPoint's Rehearse Timings feature before, you might get into trouble the first time you use PowerPoint on the road. PowerPoint will request the file rehearse.dll--and it will not be in the cache because your system never requested the file before. Your laptop will respond by trying to reinstall (i.e., self-heal) PowerPoint because you originally installed the application from the network. From this point, the problems will escalate.

Another way in which you might get into trouble is if you used numerous network files before leaving the office, causing IntelliMirror to flush the PowerPoint files from the cache. (If you use more files from the server than you have hard disk space for, IntelliMirror determines which files are important. It keeps the important files and lets the others expire out of the cache.)

You can avoid both problems by pinning PowerPoint in the cache. If you know that you're going to need a particular application, you pin it, which tells IntelliMirror to collect all the files that the application might need and keep those files in the cache. In other words, pinning a file tells IntelliMirror not to let that particular file expire out of the cache.

BIOS: The Pièce de Résistance
With ZAW, you can perform clever client-side caching (IntelliMirror), easily install and remove applications (MSI), and minimize the amount of space used on the server (SIS), all from a central location. Could it get any better? What if you could install an entire operating system from a central location? Microsoft envisions that ZAW will be able to provide this capability. Consider the following scenario:

It's 8:00 a.m. You come to work and turn on your computer, Sparky. A funny noise comes from the hard disk, and smoke comes out the back. A quick inspection of the melted SIMMs and cratered CPU inside leads you to believe that Sparky's computing days are over. You were planning to get some work done, but installing and configuring NT Workstation, the Office Suite, and assorted other applications will now occupy most of your day.

With ZAW, the day will proceed differently. After your quick inspection of Sparky, you tell your network administrator about the casualty. You then say good-bye to Sparky and search for a computer that no one is using. You find a vacant computer and log on. Because all your applications are ZAW compliant and you keep your data in My Documents, all of your applications and data are available. MSI performs a couple of silent installs, and you are back in business in a half-hour.

Meanwhile, the network administrator takes a new computer out of the box and assigns it to you. She tells the network that you have a new computer, identifying it to the network. She then brings this computer to your office, plugs it into Sparky's old Ethernet jack, and turns it on.

The new computer is either a NetPC or a regular PC that follows the PC98 specification, so it has a smarter BIOS than most PCs have. The PC BIOS includes support for network cards, the Dynamic Host Configuration Protocol (DHCP), and the Trivial File Transfer Protocol (TFTP). When the PC powers up, the BIOS knows enough about the network card to use it to get the PC an IP address via the DHCP. With the other DHCP information, the new computer gets the address of an install server. The new computer then sends a request for configuration to the install server. The install server checks a database to determine which operating and system applications this computer needs and assembles the necessary files. The install server then uses TFTP to transfer the files to the new PC. In no time, the new computer works as well as old Sparky did, maybe even better.

How did the install server know that this new computer was your computer? PCs with the improved BIOS have a globally unique ID (GUID), which an administrator can use to identify that PC to the install server. With GUID, you can configure systems on a user-specific basis. For example, instead of specifying that a particular machine gets Windows 98 (Win98), you specify that a particular user gets Win98. When that user logs on, the system installs Win98.

In fact, each time users log on to a system, that system will do a fresh install of their operating system and applications. A fresh install might sound like a lot of work, but 999 out of 1000 of these installations will take almost no time because all the files will already be in the local IntelliMirror cache.

Fortunately, you don't need new PCs to run the improved BIOS. You just need a bootstrap floppy to get the process rolling the first time.

Good Things Come to Those Who Wait
Computer support specialists have waited a long time for an initiative such as ZAW. But ZAW will be worth the wait because it includes some terrific and exciting capabilities. Central control of machine and application installation and configuration is just plain wonderful.

But central control and all of ZAW's other features will work only if the applications vendors go along with ZAW. More important, ZAW will work only with one operating system. For ZAW to work, you must be running NT 5.0 on all your desktops.