Boswell's Q&A

RIS on the Run

Admin wants to do unattended installs as smoothly as possible without "faking" it.

Bill: I'm having a problem doing unattended installs on client computers using Remote Installation Services (RIS). What seems as a true unnattended install is not really one. I want a desktop to boot to the network and automatically download and apply a RIS image without any intervention on the part of a technician.

I found the trick for getting past F12 by using the Startrom.N12 file, but how do we get rid of all those Client Installation Wizard screens and simply load the operating system?
—Jeff

Get Help from Bill

Got a Windows or Exchange question or need troubleshooting help? Or maybe you want a better explanation than provided in the manuals? Describe your dilemma in an e-mail to Bill at mailto:boswell@101com.com; the best questions get answered in this column.

When you send your questions, please include your full first and last name, location, certifications (if any) with your message. (If you prefer to remain anonymous, specify this in your message but submit the requested information for verification purposes.)

Readers: Just as a little background, the RIS process involves booting a desktop (or server) using the Preboot Execution Environment (PXE). As part of the PXE process (at least, the way it's implemented in RIS), the client obtains a boot image called Startrom from a RIS server. As Jeff discovered, the standard Startrom image prompts the user to press F12 to continue with the boot process. A second version of Startrom, called Startrom.N12, is an image that does not require pressing F12. Simply rename the current Startrom file and rename Startrom.N12 as Startrom.

The Startrom boot image instructs the client to use trivial file transfer protocol (tftp) to download a series of screens called the Client Installation Wizard. These screens are made up of HTML2-compliant markup entries that Microsoft calls OS Chooser Markup Language, or OSCML. The files that contain OSCML have an .osc extension. They are installed as part of RIS. By walking through the Client Installation Wizard, you can select from one of several file-based "images" that have been uploaded to the RIS server then choose to apply that image to the local machine. There are also third-party imaging products that leveral RIS to deliver sector-based images.

See http://www.microsoft.com/resources/documentation/WindowsServ/
2003/all/techref/en-us/Default.asp?url=/Resources/Documentation/
windowsserv/2003/all/techref/en-us/W2K3TR_gpris_how.asp
for a set of Microsoft documents that show the structure of the RIS components, file locations, and additional links that explain the OSCML entries.

The secret to customizing RIS is to hack the existing osc files so that the client does your bidding. I'm sorry to say , but try as I might, I can't automate the process to eliminate all the screens. It looks as if RIS absolutely requires a minimum of two .osc files, which means that the process must consist of two Client Installation Wizard screens that require action on the part of the technician. The required files are:

  • Welcome.osc. RIS gives an error if a Welcome.osc file does not exist under E:\RemoteInstall\OSChooser\English.
  • Install.osc. The target machine refuses to boot into Setup and download the RIS image files unless the final screen comes from a file called Install.osc.

I've boiled the Client Installation Wizard process into two screens. All the tech needs to do is enter a password and press Enter twice. Here are the .osc files. Be sure to save the original files before making any changes.

Welcome.osc
<OSCML>
<META ACTION="LOGIN">
<BODY>
Here are the login credentials. Press Enter to proceed. <BR> <BR>
<FORM ACTION="INSTALL">
User name: <INPUT NAME="USERNAME" VALUE="administrator" MAXLENGTH=25> <BR>
Password: <INPUT NAME="*PASSWORD" TYPE=PASSWORD MAXLENGTH=20><BR> Domain name: <INPUT NAME="USERDOMAIN" VALUE=%SERVERDOMAIN% MAXLENGTH=25> <BR>
Unattend Script Path: <INPUT NAME="SIF" VALUE="e:\remoteinstall\setup\english\images\xpsp2\i386\templates\remboot.si
f" maxlength=255><BR>
<INPUT NAME="NTLMV2Enabled" VALUE=%NTLMV2Enabled% MAXLENGTH=255 type=VARIABLE>
<INPUT NAME="ServerUTCFileTime" VALUE=%ServerUTCFileTime% MAXLENGTH=255 type=VARIABLE>
</FORM>
</BODY>
</OSCML>

Install.osc
<OSCML>
<META KEY=ENTER ACTION="REBOOT">
<BODY>
Press Enter to begin Remote Installation Setup.<BR>
Here is the information assigned to the target computer:<BR>
<BR>
Computer Name: %MACHINENAME%<BR>
Target OU: %MACHINEOU%<BR>
Target Domain: %MACHINEDOMAIN%<BR>
</BODY>
</OSCML>

In the Welcome.osc file, replace the USERNAME value with an account from your own domain. You could also assign a value to the password, but this is a very poor security practice and should not be used in a production environment. The credentials would be available to anyone who makes a tftp connection to the server.

If you want to completely automate the operation and you have the budget for the Enterprise Edition of Windows Server 2003, take a look at Automated Deployment Services. You can use ADS to multicast images, you don't need Active Directory, you can do a bare-metal install with no requirement to be at the desktop and you get a lot more management features. In addition, ADS uses sector- rather than file-based images but you can still change the image because there's a utility that mounts the image as if it were a file system. I've written a series of articles on that very process that will appear on MCPmag.com beginning in January 2005.

Tracer Ire
In last week's column, a reader pointed out that I included an incomplete packet trace. The listing should have included the portion of the trace that showed the frame statistics so as to show the erroneous Ethernet frame size. Here's the example frame content:

Frame # Time     Source   Destination Protocol Info
27      0.031250 10.1.1.1 1.1.1.2      SMB     Write AndX Request, FID: 0xc008, 4292 bytes at offset 157593600

Frame 27 (4414 bytes on wire, 4414 bytes captured)
Ethernet II, Src: 00:0f:0f:0f:ef:cf, Dst: 00:5f:8f:af:df:9f
Internet Protocol, Src Addr: 10.1.1.1 (10.1.1.1), Dst Addr: 10.1.1.2
(10.1.1.2)
Transmission Control Protocol, Src Port: 3018 (3018), Dst Port: netbios-ssn
(139), Seq: 589122539, Ack: 82291026, Len: 4360
NetBIOS Session Service
SMB (Server Message Block Protocol)
    Write AndX Request (0x2f)

I'll catch you next week!

About the Author

Contributing Editor Bill Boswell, MCSE, is the principal of Bill Boswell Consulting, Inc. He's the author of Inside Windows Server 2003 and Learning Exchange Server 2003 both from Addison Wesley. Bill is also Redmond magazine's "Windows Insider" columnist and a speaker at MCP Magazine's TechMentor Conferences.

comments powered by Disqus

SharePoint Watch

Sign up for our newsletter.

Terms and Privacy Policy consent

I agree to this site's Privacy Policy.