Sunteți pe pagina 1din 21

Windows 7 customized ISO

Here I will detail how to build a custom image of Windows 7 for Your company. Doing
this will give us a few new things:
1. A corporate build that will be the same across all divisions.
2. A way to know if a rouge build enters the company.
3. Having a common build will allow for better support no matter where an individual
is. Or simply put reduced Help Desk costs.
Preliminary Steps:
Install the Microsoft WAIK tool kit if not already installed on your PC. NOTE: Microsoft
does not recommend installing it on your Imaging server. If using Windows 7 you can
use dism (Deployment Image Servicing and Management) to en/disable features and
mount images. Open a cmd window as the local admin to use this tool. If using other
OSes perform the following, after installing WAIK so you can also use dism.
1. Mount it:
a. imagex /mountrw "f:\windows 7\sources\install.wim" 1 e:\win7wim
note that e and f are examples only
b. We will use mounted OS root drive for the remainder of the document
but in this example it would equal E:\win7wim.
2. Click HERE so you can use get and register DISM after mounting the image.
3. Unmount it:
a. imagex /unmount e:\win7wim
Expand/extract the Windows 7 ISO to a USB drive or location of your choice, Winrar
can do this nicely.
Modify extracted OS directory\sources\ background_cli.bmp to look like this. Why,
because it works with the install progress windows very nicely.

Windows 7 customized ISO


Now save the file with the following names, they will be needed later.
Background.bmp
Background_cli.bmp
Bitmap00517.bmp
Bitmap00518.bmp
backgroundDefault.jpg
img0.jpg
Setup.bmp
Winpe.bmp
Create a user.bmp file that looks like this, it needs to be 128 x 128 pixels.
This will become the default tile, instead of the flower, when new users log on.

Windows 7 customized ISO


Customizing the boot.wim file
Mount the boot.wim file located in the extracted OS directory\sources\boot.wim (dism
is the Microsoft preferred way to manage Windows 7 images)
For example: dism /Mount-wim /WimFile:"F:\windows 7\sources\boot.wim"
/Index:2 /Mountdir:E:\win7wim
Or with ImageX: imagex /mountrw "f:\windows 7\sources\boot.wim" 2 e:\win7wim
Replace the following files with your newly created versions
mounted OS root drive\Windows\system32\setup.bmp
mounted OS root drive\Windows\system32\winpe.bmp
mounted OS root drive\sources\background.bmp
Using a resource editor [Resource builder is great for this] modify the following:
mounted OS root drive\sources\spwizimg.dll
You will replace the last 2 bitmap items (517 and 518) with the new versions.
Save the file and close the editor.
Save the updated spwizimg.dll in the same location as your bitmap files, we will use it
later as well.
Unmount and commit (saves the changes) the image:
For example: dism /Unmount-Wim /Mountdir:E:\win7wim /commit
Or with ImageX: imagex /unmount e:\win7wim /commit

Windows 7 customized ISO


Customizing the install.wim file
Mount the install.wim file located in the extracted OS directory\sources\install.wim
For example: dism /Mount-wim /WimFile:"F:\windows 7\sources\install.wim"
/Index:1 /Mountdir:E:\win7wim
Or with ImageX: imagex /mountrw "f:\windows 7\sources\boot.wim" 2 e:\win7wim
Replace the following files/folders (NOTE: You need to take ownership of the file or folder to
replace it with the Yourcompany version.)

For x86 systems modify the following


1. mounted OS root drive\Windows\Winsxs
a. \x86_microsoft-windows-s..l-wallpaperstarter_31bf3856ad364e35_6.1.7600.16385_none_9462c91476d27ba4\i
mg0.jpg
b. \x86_microsoft-windows-s..l-wallpaperwindows_31bf3856ad364e35_6.1.7600.16385_none_dae87c5811c55450\
img0.jpg
c. \x86_microsoft-windows-usertilesclient_31bf3856ad364e35_6.1.7600.16385_none_296c39877a41ff71\user
.bmp
For x64 systems modify the following
1. mounted OS root drive\windows\SysWOW64\oobe\background.bmp
2. mounted OS root
drive\windows\SysWOW64\oobe\info\backgrounds\BackGroundDefault.jpg
3. mounted OS root drive\windows\SysWOW64\spwizimg.dll
4. mounted OS root drive\Windows\Winsxs
a. \amd64_microsoft-windows-s..l-wallpaperstarter_31bf3856ad364e35_6.1.7600.16385_none_f08164982f2fecda\img
0.jpg
b. \amd64_microsoft-windows-s..l-wallpaperwindows_31bf3856ad364e35_6.1.7600.16385_none_370717dbca22c586\
img0.jpg
c. \amd64_microsoft-windows-usertilesclient_31bf3856ad364e35_6.1.7600.16385_none_858ad50b329f70a7\use
r.bmp
d. \amd64_setup-uxwizardclientimages_31bf3856ad364e35_6.1.7600.16385_none_a4cc3ba14850df
9e\background.bmp

Windows 7 customized ISO


Common files and folder to modify or add
1. mounted OS root drive\Windows\fonts\Y14.5M.ttf
2. mounted OS root drive\Windows\system32\Yourcompany (folder)
3. mounted OS root drive\Windows\system32\oobe\background.bmp
4. mounted OS root
drive\Windows\system32\oobe\info\backgrounds\BackGroundDefault.jpg
5. mounted OS root drive\Windows\system32\spwizimg.dll
6. mounted OS root drive\Windows\system32\logon.scr
7. mounted OS root drive\Windows\Web\Wallpaper\Windows\img0.jpg
8. mounted OS root drive\x86_setup-uxwizardclientimages_31bf3856ad364e35_6.1.7600.16385_none_48ada01d8ff36e68\Bac
kground.bmp
9. mounted OS root drive\Program Files\Sysinternals Suite (folder)
10. mounted OS root drive\ProgramData\Microsoft\User Account Pictures\user.bmp

Windows 7 customized ISO


Registry hive modifications
The files are located in mounted OS root drive\Windows\system32\config folder
1. To mount a hive:
2. Open regedit as the administrator
a. Or copy the files elsewhere first and then replace them when done along
with any log files that may get created..
3. Highlight HKLM
4. Select file
5. Load Hive
6. Navigate to the hive desired
7. Give it a name (say win7)
8. Expand HKLM
9. Expand win7
10. Now you will see all the data for that hive.
System
Navigate to the loaded hive and add ;%ProgramFiles%\Sysinternals Suite to
the end of following keys. Yes the semicolon is needed.
ControlSet001\Control\Session Manager\Environment\Path
ControlSet002\Control\Session Manager\Environment\Path
Software
Navigate to:
Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background
Add:
OEMBackground
Dword value of 1
This allows us to have a Yourcompany background for the logon screen.
Default
From a reference Windows 7 system run all the sysinternals files once.
Remove all entries except for "EulaAccepted"
Export the key.
To import a reg file to the hive in question you must edit the reg file to read
something like this:
a. From [HKEY_CURRENT_USER\Software\Sysinternals]
b. To [HKEY_LOCAL_MACHINE\win7\Software\Sysinternals]
c. Do this for all reg entries in the file
d. Save and close the reg file.
e. Import/Merge the reg file
Make sure you unload each hive before you close regedit.
6

Windows 7 customized ISO


Unmount and commit (saves the changes) the image:
For example: dism /Unmount-Wim /Mountdir:E:\win7wim /commit
Or with ImageX: imagex /unmount e:\win7wim /commit

Windows 7 customized ISO


Now for the custom items that will show up on the install.
Create a $OEM$ folder, for right now it can be anywhere, and then create the following
folders inside the new $OEM$ folder. (If using the WSIM utility the folder will actually be
called $OEM$ Folders see Appendix C) At build time it needs to be located in the
sources folder or it wont work.

The $$ folder is equal to the windows folder and anything you put in there will go in the
%windir% folder of the new OS.
The $1 is considered the source drive (typically C:\) anything put in this folder will show
up on the root drive.
The $Docs folder is the users or Documents and Settings folder and anything place
here with show up either as a profile folder or an item in a profile.
$Progs is the Program Files Directory and again anything you put in here will show up in
the build in %Programfiles%.
Now to detail what is in each root folder, this will go in the order listed in the example
above.

Windows 7 customized ISO


Note: If a line item has no extension it is a folder. This applies to all sections
$$: (This represents the %windir% or Windows folder)
1. Help (still having issue getting this to do what I want.)
a. Corporate
i. Oeminfo.ini
ii. Oeminfo.bmp
2. Resources
a. Themes
i. Aero.theme
The OS uses aero by default and I simply created a custom
Theme based on aero (corp. wallpaper and screen saver) saved
it then renamed it to aero.
3. Sysinternals
a. Should contain all data from the Sysinternals suite
URL: http://technet.microsoft.com/en-us/sysinternals/bb842062.aspx
b. The following items will not work with windows 7 and can be removed
i. Diskmnt (NT 4.0)
ii. Filemon
iii. Regmon, replaced by procmon (Process Monitor)
4. System32
a. Yourcompany
i. Bctheme.png. Used for the Yourcompany theme. Actual Pixel size
should be 42x16. I used a Yourcompany logo for this as well.
ii. JSProgBr2.exe (a progress bar utility for x86)
iii. Bcicon-sm2.bmp (for JSProgBr2)
iv. Blueprog.bmp (for JSProgBr2)
v. Silvprog.bmp (for JSProgBr2)
vi. Notice.doc
vii. Oemlogo.bmp
b. Oobe
i. Info
Backgrounds
a. Your new backgroundDefault.jpg
5. Web
a. Wallpaper
i. wallpaper.jpg

Windows 7 customized ISO


$1: (This represents the root of the drive, typically C:)
1. SWTOOLS
a. APPS
b. DRIVERS
2. DRIVERS
I used the two folder structures because they work well.
SWTOOLS (originally IBMTOOLS) is a great central storage location for apps and
drivers that require exe files to install or function. We have been using them (at least
My office) for years. We recently started to keep VPN software in the APPS folder
as well. It contains the Cisco VPN client install as well as repair scripts for VPN
profiles and creating logon scripts for various divisions.
The DRIVERS folder would contain a bunch of folders for things like Audio, video
and wireless devices. There would be sys and inf files in there and the path would
be incorporated into the build so the OS knows where to look for drivers if it needs
to.
$Docs: (Again this represents the User profile directory.)
1. Public
a. Desktop
$Progs: (This represents the Program Files folder)

10

Windows 7 customized ISO


Unattended answer files: (http://technet.microsoft.com/en-us/library/cc749415(WS.10).aspx)
Now it is time to create your unattended answer file
1. Open the Windows System Image Editor.
2. Select create or open answer file
3. Point to the install.wim file you are working with.
4. If prompted to select a version, select Enterprise. You should be using the
Enterprise version for Yourcompany anyway because it and Ultimate are the only
ones that allow for multiple languages to be used.
5. If prompted to create a new catalog file select yes.
This will take a while, be patient.
The following are examples of answer files that were used to create a test PC.
They need to be called autounattend.xml and unattend.xml. They should be kept in the
same location, like on the root of a USB thumb drive or the root of a CD. This seemed
to work well for my testing anyway. Each one plays a role in the automated build
process.
The files below create 2 partitions on the primary drive of the system and installs
Windows with custom logos, data and information as well as a custom wallpaper and
screen saver. In Production we can modify/remove/replace the partitioning option. I
used it here to learn how this system works and to speed up the process.
Once the build finishes all you need to do is set a time zone, give it a name, add it to
your domain, add a group or two to the local admin group and set the local admin
password. The default Language selected is English and that also will be changed so
that you can select what you need for production.
I have been using a tool called notepad2 to create/edit scripts and xml files for quite
some time and find it makes reading the xml files real easy. It is freeware
http://sourceforge.net/projects/notepad2/ or http://www.flos-freeware.ch/notepad2.html
The second one (the one I have been using) appears to be a spin-off of the first one.
They appear to function in the same manner with small exceptions in design and age.
The last date the first one was updated was 2007. I have been using the flos version
and it works nicely.
At some point the answer file will be permanently applied to the install.wim file so using
unattend.xml will not be required to build a system.

11

Windows 7 customized ISO


Autounattend.xml (In the windowsPE and offlineServicing passes, the name of the answer file must
be Autounattend.xml. For all other configuration passes, the file name can be Unattend.xml.)
What this file does:
Sets your install language to English US
Partitions and formats your drive
Installs Windows 7
Adding the file to the root of your USB drive or CD image will make the install
completely automatic. USE WITH CAUTION!!!!
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<servicing></servicing>
<settings pass="windowsPE">
<component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="x86"
publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"
xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SetupUILanguage>
<UILanguage>0409:00000409</UILanguage>
<WillShowUI>Always</WillShowUI>
</SetupUILanguage>
<InputLocale>0409:00000409</InputLocale>
<SystemLocale>en-US</SystemLocale>
<UserLocale>en-US</UserLocale>
<UILanguage>en-US</UILanguage>
</component>
<component name="Microsoft-Windows-Setup" processorArchitecture="x86"
publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"
xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DiskConfiguration>
<WillShowUI>OnError</WillShowUI>
<Disk>
<DiskID>0</DiskID>
<WillWipeDisk>true</WillWipeDisk>
<CreatePartitions>
<CreatePartition>
<Order>1</Order>
<Type>Primary</Type>
<Size>100</Size>
</CreatePartition>
<CreatePartition>
<Order>2</Order>
<Type>Primary</Type>
<Size>37000</Size>
</CreatePartition>
</CreatePartitions>
<ModifyPartitions>
<ModifyPartition>
<Active>true</Active>
<Extend>false</Extend>

12

Windows 7 customized ISO


<Format>NTFS</Format>
<Label>System Reserved</Label>
<Order>1</Order>
<PartitionID>1</PartitionID>
</ModifyPartition>
<ModifyPartition>
<Active>false</Active>
<Extend>true</Extend>
<Format>NTFS</Format>
<Label>Win7</Label>
<Letter>C</Letter>
<Order>2</Order>
<PartitionID>2</PartitionID>
</ModifyPartition>
</ModifyPartitions>
</Disk>
</DiskConfiguration>
<ImageInstall>
<OSImage>
<InstallTo>
<DiskID>0</DiskID>
<PartitionID>2</PartitionID>
</InstallTo>
<WillShowUI>OnError</WillShowUI>
</OSImage>
</ImageInstall>
<EnableFirewall>true</EnableFirewall>
<EnableNetwork>true</EnableNetwork>
<LogPath></LogPath>
<Display>
<ColorDepth>32</ColorDepth>
<HorizontalResolution>1280</HorizontalResolution>
<VerticalResolution>1024</VerticalResolution>
</Display>
<ComplianceCheck>
<DisplayReport>OnError</DisplayReport>
</ComplianceCheck>
<UserData>
<AcceptEula>true</AcceptEula>
</UserData>
<DynamicUpdate>
<Enable>true</Enable>
</DynamicUpdate>
</component>
</settings>
<cpi:offlineImage cpi:source="wim:e:/win7/sources/install.wim#Windows 7 ENTERPRISE"
xmlns:cpi="urn:schemas-microsoft-com:cpi" />
</unattend>

13

Windows 7 customized ISO


Unattend.xml
What this file does:
Sets the resolution to 1280 x 1024
Auto accepts the EULA
Creates a common local admin called LOCALIT
o The built-in administrator account is disabled by default and I feel we
should keep it that way.
Brands IE
o Your homepage is the first run page
o Adds Yourcompany Corporation to the title bar
o Sets Yourcompany as the homepage (for now)
o Sets Google as the default Search provider.
Disables internet printing
Enables the telnet client and tiff support
Displays 3 gadgets
o Clock
o System resource monitor
o A utility from Lenovo to monitor things like system update and access
connections.
Uses Clear type Font smoothing
Hides Media Center
Sets a custom Yourcompany theme
o Yourcompany wallpaper
o Yourcompany Screensaver
o Yourcompany default user tile
o Yourcompany logon background
Adds it to a workgroup called Yourcompany
Includes Help Desk support information and a logo
o This is similar to oeminfo in XP.
o You can see it when you look at system properties (hold the windows key
and then press the pause key).

14

Windows 7 customized ISO


<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<servicing>
<package action="configure">
<assemblyIdentity name="Microsoft-Windows-Foundation-Package"
version="6.1.7600.16385" processorArchitecture="x86"
publicKeyToken="31bf3856ad364e35" language="" />
<selection name="Printing-Foundation-InternetPrinting-Client" state="false" />
<selection name="TelnetClient" state="true" />
<selection name="TIFFIFilter" state="true" />
<selection name="MediaCenter" state="false" />
</package>
</servicing>
<settings pass="oobeSystem">
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86"
publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"
xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Display>
<HorizontalResolution>1280</HorizontalResolution>
<VerticalResolution>1024</VerticalResolution>
<ColorDepth>32</ColorDepth>
</Display>
<OOBE>
<HideEULAPage>true</HideEULAPage>
<NetworkLocation>Work</NetworkLocation>
<ProtectYourPC>1</ProtectYourPC>
</OOBE>
<AutoLogon>
<Username>LOCALIT</Username>
<Enabled>true</Enabled>
<LogonCount>5</LogonCount>
</AutoLogon>
<VisualEffects>
<FontSmoothing>ClearType</FontSmoothing>
</VisualEffects>
<WindowsFeatures>
<ShowMediaCenter>false</ShowMediaCenter>
<ShowInternetExplorer>true</ShowInternetExplorer>
<ShowWindowsMediaPlayer>true</ShowWindowsMediaPlayer>
</WindowsFeatures>
<BluetoothTaskbarIconEnabled>true</BluetoothTaskbarIconEnabled>
<RegisteredOrganization>Yourcompany Corporation</RegisteredOrganization>
<RegisteredOwner />
<ShowWindowsLive>false</ShowWindowsLive>
<UserAccounts>
15

Windows 7 customized ISO


<LocalAccounts>
<LocalAccount wcm:action="add">
<Description>Yourcompany IT Admin account</Description>
<Name>LOCALIT</Name>
<Group>Administrators</Group>
<DisplayName>Yourcompany IT</DisplayName>
</LocalAccount>
</LocalAccounts>
</UserAccounts>
<DisableAutoDaylightTimeSet>false</DisableAutoDaylightTimeSet>
</component>
<component name="Microsoft-Windows-Sidebar" processorArchitecture="x86"
publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"
xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Gadget1>%PROGRAMFILES%\Windows
Sidebar\Gadgets\clock.gadget,true</Gadget1>
<Gadget2>%PROGRAMFILES%\Windows
Sidebar\Gadgets\cpu.gadget,true</Gadget2>
<Gadget3>%PROGRAMFILES%\Windows Sidebar\Shared
Gadgets\tvtstatus.gadget,true</Gadget3>
</component>
</settings>
<settings pass="specialize">
<component name="Microsoft-Windows-IE-InternetExplorer"
processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral"
versionScope="nonSxS"
xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<BlockPopups>yes</BlockPopups>
<CompanyName>Yourcompany Corporation</CompanyName>
<DisableAccelerators>true</DisableAccelerators>
<FavoritesDelete>true</FavoritesDelete>
<Help_Page>http://bcone.yourcompany.com</Help_Page>
<Home_Page>http://www.yourcompany.com</Home_Page>
<NoDial>true</NoDial>
<PlaySound>true</PlaySound>
<ShowInformationBar>true</ShowInformationBar>
<Window_Title_CN>Yourcompany Corporation</Window_Title_CN>
<TabProcessGrowth>Medium</TabProcessGrowth>
<EnableLinksBar>false</EnableLinksBar>
<ShowCompatibilityViewButton>true</ShowCompatibilityViewButton>
<SearchScopes>
<Scope wcm:action="add">
<FaviconURL>http://www.google.com/favicon.ico</FaviconURL>
<ScopeDefault>true</ScopeDefault>
16

Windows 7 customized ISO


<ScopeKey>GoogleSearchProvider</ScopeKey>
<ScopeUrl>http://www.google.com/search?
q={searchTerms}&amp;sourceid=ie7&amp;rls=com.microsoft:{language}:
{referrer:source}&amp;ie={inputEncoding?}&amp;oe={outputEncoding?}</ScopeUrl>
<SuggestionsURL>http://clients5.google.com/complete/search?
q={searchTerms}&amp;client=ie8&amp;mw={ie:maxWidth}&amp;sh={ie:sectionHeight}&
amp;rh={ie:rowHeight}&amp;inputencoding={inputEncoding}&amp;outputencoding={out
putEncoding}</SuggestionsURL>
<ScopeDisplayName>Google</ScopeDisplayName>
</Scope>
</SearchScopes>
</component>
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86"
publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"
xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ComputerName>*</ComputerName>
<RegisteredOrganization>7</RegisteredOrganization>
<RegisteredOwner />
<Themes>
<DefaultThemesOff>false</DefaultThemesOff>
<DesktopBackground>%systemroot%\web\wallpaper\Yourcompany
Corporate Wallpaper.jpg</DesktopBackground>
<ScreenSaver>%systemroot%\system32\logon.scr</ScreenSaver>
<ThemeName>Yourcompany Corporate Theme</ThemeName>
<BrandIcon>%systemroot
%\system32\yourcompany\bctheme.png</BrandIcon>
</Themes>
<Display>
<ColorDepth>32</ColorDepth>
<HorizontalResolution>1280</HorizontalResolution>
<VerticalResolution>1024</VerticalResolution>
</Display>
<OEMInformation>
<Logo>\windows\system32\yourcompany\oemlogo.bmp</Logo>
<Manufacturer>Yourcompany IT</Manufacturer>
<Model>Windows 7</Model>
<SupportHours>Anytime Day or Night 24/7 365</SupportHours>
<SupportPhone>(920) 929-5696</SupportPhone>
<SupportURL>http://sdeprod.yourcompany.com/sde</SupportURL>
</OEMInformation>
</component>
<component name="Microsoft-Windows-TerminalServices-LocalSessionManager"
processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral"
versionScope="nonSxS"
17

Windows 7 customized ISO


xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<fDenyTSConnections>false</fDenyTSConnections>
</component>
<component name="Microsoft-Windows-UnattendedJoin"
processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral"
versionScope="nonSxS"
xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Identification>
<JoinWorkgroup>Yourcompany</JoinWorkgroup>
</Identification>
</component>
<component name="Security-Malware-Windows-Defender"
processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral"
versionScope="nonSxS"
xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DisableAntiSpyware>true</DisableAntiSpyware>
</component>
<component name="Microsoft-Windows-RemoteAssistance-Exe"
processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral"
versionScope="nonSxS"
xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<fAllowToGetHelp>true</fAllowToGetHelp>
</component>
<component name="Microsoft-Windows-ErrorReportingCore"
processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral"
versionScope="nonSxS"
xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DisableWER>1</DisableWER>
</component>
<component name="Microsoft-Windows-Deployment" processorArchitecture="x86"
publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"
xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RunSynchronous>
<RunSynchronousCommand wcm:action="add">
<Path>c:\swtools\apps\tvsu\tvsu.cmd</Path>
<Order>1</Order>
<Description>TVSU Install</Description>
</RunSynchronousCommand>
</RunSynchronous>
</component>
18

Windows 7 customized ISO


<component name="Networking-MPSSVC-Svc" processorArchitecture="x86"
publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"
xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<FirewallGroups>
<FirewallGroup wcm:action="add" wcm:keyValue="RemoteDesktop">
<Active>true</Active>
<Profile>all</Profile>
<Group>Remote Desktop</Group>
</FirewallGroup>
</FirewallGroups>
</component>
</settings>
<settings pass="auditSystem">
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86"
publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"
xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Display>
<ColorDepth>32</ColorDepth>
<HorizontalResolution>1280</HorizontalResolution>
<VerticalResolution>1024</VerticalResolution>
</Display>
</component>
</settings>
<settings pass="auditUser">
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86"
publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"
xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Display>
<ColorDepth>32</ColorDepth>
<HorizontalResolution>1280</HorizontalResolution>
<VerticalResolution>1024</VerticalResolution>
</Display>
</component>
</settings>
<cpi:offlineImage cpi:source="wim:e:/win7/sources/install.wim#Windows 7
ENTERPRISE" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
</unattend>

19

Windows 7 customized ISO


APPENDIX A:
Delete all references to legacy folders such as documents and settings and all
hardlinks in the following folders. A hardlink folder can be detected by double-clicking
it and getting an access denied folder. Also the folder will have padlock on it. They are
also hidden system folders so you will need to disable the option that hides those.
NOTE: References to All from here on refer to all hard links only!
Default
o 3 in the documents folder
My Music
My Pictures
My Videos
o All except recent in the root of the folder
o All in the AppData local folder
Application Data
History
Temporary Internet Files
Administrator
o Same as default
Public
Programdata
They are not needed in the new OS. I have been deleting those folders since VISTA
Beta 1 and have not had any issues. In fact leaving some there could break scripts
because of lack of access. Even the built-in local administrator account cannot access
the folders.
While this is not required I find it makes for a cleaner system. I attempted to do this in
the initial build but the folders keep reappearing. It can only be done after the OS is
built. I am sure we will more than likely NOT do this I wanted to document it anyway
just to let you know it is possible and causes no issues that I have been able to see.

20

Windows 7 customized ISO


APPENDIX B:
Creating a custom Default user profile (At this time we do not need this as this is
handled during the initial build.)
1. Create a new Answer file in Windows System Image Manager
2. Edit it with these settings:
a. Add Microsoft-Windows-Deployment_neutral\Reseal to the oobeSystem
configuration pass
b. Set ForceShutdownNow to false and Mode to OOBE
c. Add Microsoft-Windows-Shell-Setup_neutral\OOBE and
\UserAccounts\AdministratorPassword and
\UserAccounts\LocalAccounts\LocalAccount\Password
d. Set all appropriate settings for the above. In OOBE: HideEULAPage is
true, NetworkLocation is Work ProtectYourPC is 3, SkipUserOOBE is true
e. Set the administrator password, create a local account in the
Administrators group, set that password etc.
f. Add Microsoft-Windows-Shell-Setup_neutral. Set CopyProfile to true, add
the product key, set the RegisteredOrganization and RegisteredOwner
and the TimeZone
g. Don't forget to save this, and be sure to not overwrite the
AutoUnattend.xml file created earlier
3. Customize the profile of the user you're logged in as (I've only tested this logged
in as Administrator.)
4. On the target computer, copy the new answer file to \windows\system32\sysprep
5. Open Task Manager and end any process that starts with "WMP" as this will
cause sysprep to fail, at least for the release candidate.
6. Open a command prompt and change directory to c:\windows\system32\sysprep
7. Type the following command: sysprep.exe /generalize /oobe /quiet
/unattend:nameofanswerfile.xml

21