Windows 7 SteadyState solution simplified!

image

Download: Windows 7 SteadyState Version 1.0 Setup Files and Step-By-Step Guide!

On my last Blog Post I described a procedure to implement a Windows 7 SteadyState by utilizing differencing VHD files and the "Boot from VHD" feature of Windows 7. It was great to see the enthusiastic response from the community and how much some of you desperately needed such a solution.

However the procedure to implement my solution had many drawbacks: It was difficult to implement all the steps as they required a LOT of manual work. For that same reason deploying the solution to more that 10 PCs was pretty much out of the question. Another drawback was that it required the use of WinPE to handle the VHD files.

I promised to implement a more straight-forward method by using the Microsoft Deployment Toolkit (MDT) to deploy and configure the OS. So here it is! The solution in this Blog Post has many advantages over the old one:

  • It is straightforward. Just a simple reboot will get you to the initial SteadyState.
  • It is less prone to errors and faster. By avoiding the use of WinPE we return to the initial SteadyState after a single reboot.
  • It is easy to install. Just follow the instructions below. You should be up and running in less than 20 minutes (with most of the steps automated).
  • It is easy to deploy on several machines. We create a bootable media (DVDR) and use that to automatically install everywhere. MDT can also be used to install over the network.

I urge everyone needing to implement a Windows 7 SteadyState scenario to give it a try (Internet Cafes, Kiosks, etc.). I believe that you will find the solution clean and effective. As usual I am eager to receive your feedback on how this solution can be improved further or to address any specific scenarios that you have in mind.

Windows 7 SteadyState Step-By-Step guide:

We will need one PC where the Windows Automated Installation Kit (WAIK) and the Microsoft Deployment Toolkit (MDT) will be installed. Both of these are free downloads from Microsoft. We will use these tools with AutoIt scripts to create a bootable ISO from which we will use to automatically install Windows 7 and the SteadyState solution.

Step 1: Install WAIK for Windows 7

Download the Windows Automated Installation Toolkit from here: https://www.microsoft.com/download/en/details.aspx?displaylang=en&id=5753. Run the installation. Choose "Windows AIK Setup":

image

Run the setup wizard and accept the defaults.

Step 2: Install MDT 2010 Update 1

Download the Microsoft Deployment Toolkit from here: https://www.microsoft.com/download/en/details.aspx?displaylang=en&id=25175. Select either the x86 or the x64 version (depending on the OS you are currently running). Run the setup file and select the defaults on the installation wizard.

Note: This solution was tested with the x86 version of MDT.

Step 3: Download the Windows 7 SteadyState setup files

Download the package containing the Windows 7 SteadyState solution files here.

Create a folder (for example: C:\SteadyState) and unzip the Win7SteadyState.zip files there.

image

Step 4: Copy the Windows 7 media to the hard disk

Copy all the files from your Windows 7 DVD to the WIN7CD subfolder.

image

IMPORTANT NOTE (updated!): ONLY use Windows 7 Enterprise or Windows 7 Ultimate edition media. Other editions or multi-edition DVDs (which include all editions) will not work! You can get a 90-day trial edition of the Windows 7 Enterprise Edition here: https://technet.microsoft.com/en-us/evalcenter/cc442495

Step 5: Run the setup script

UPDATE: Before running "SETUP.exe" make sure that you have set the execution policy in Powershell correctly. Open Powershell (as an administrator) and execute the following command:

set-executionpolicy unrestricted

Answer "Y" to the Execution Policy Change question and close Powershell. Thanks goes to Brendan for pointing this out!

To automatically create our Windows 7 SteadyState installation ISO we will run the setup.exe script. This script (written in AutoIT) will configure MDT and prepare a bootable ISO which we will use to deploy the solution.

Run the script as a local administrator and wait for it to prepare your bootable ISO file which you will use to install the Windows 7 SteadyState solution to your PCs.

You should see several Powershell scripts executing while the image is prepared.

image

image

If you get the following message, click "This program installed correctly":

image

At the end you should see a Windows Explorer window with the ISO file:

image

Burn the ISO file to a DVDR.

Step 6: Boot from the SteadyState ISO

Boot with your newly created DVDR on the computer you want to install the Windows 7 SteadyState solution.

WARNING: This procedure will completely format your hard disk so make sure you are prepared for this!

The bootable ISO will:

  • Install Windows 7 on a VHD file
  • Create and configure the use of differencing disks
  • Configure Windows Boot Manager

When your PC boots from the ISO you will have to select either the x86 or the x64 installation of Windows 7. Choose whatever version of Windows 7 you used during the creation of the ISO (in Step 4 above):

image

WARNING: Choosing the wrong OS version here will cause the installation to fail! If that happens simply restart the procedure.

After selecting the proper OS version the install procedure will start automatically. Allow plenty of time for the installation to complete (usually 15-30 minutes).

image

At the end of the procedure you should see a message that the "Operating System deployment completed successfully". Do not proceed further if you have not received this message.

image

Click “Finish”. Windows 7 installation (configured for SteadyState) is complete:

image

Step 7: Configure your initial Windows 7 SteadyState

Proceed to install and configure whatever you want to be part of your initial Windows 7 SteadyState (install Office or run Windows Update for example).

After you are done simply reboot the machine.

After reboot you are given two options during the start procedure:

image

The first option (Windows 7) runs your initial State where you can configure it to your liking. Whatever changes you make will be permanent after your next reboot.

The second option (SteadyState) runs the initial SteadyState but any changes you make on it will be discarded on the next reboot.

This is basically it! In case you want to make changes that need to reboot your OS (installing Windows 7 SP1 for example) then simply select the first option after the first reboot. This will ensure that your changes are persistent in your SteadyState.

You can automate further the installation (for example by automating the Microsoft Office installation or a 3rd party program) by modifying the MDT 2010 Task Sequence which was created by the setup script. For further guidance on how to work with MDT 2010 look here: https://technet.microsoft.com/en-us/solutionaccelerators/dd407791

 

Frequently Asked Questions:

  1. How do I change the size of win7.vhd on the OSDisk?

    Open the ZTIDiskpartVHD.wsf file in Notepad and look for the following line:

    DiskPartWrite oExec, "Create vdisk file='c:\win7.vhd' MAXIMUM=30000 type=expandable"

    We see here that we use an expandable VHD with a maximum size of 30000 MB (approximately 29 GBs). Edit the size to whatever you find more appropriate for your environment. Run SETUP.exe again to create a new ISO image with your change.

  2. Can I use a bootable USB drive instead of an ISO?

    Yes you can! Copy and paste all the files contained in the c:\DeploymentShare\Media\Content folder, to your USB disk. Make the USB disk bootable by running the command: bootsect /nt60 f: /force

    The bootsect.exe utility is located in the Boot folder of your Windows 7 media. Replace f: with the drive letter of your USB disk.

  3. I want to change the amount of seconds the boot screen is visible during boot or hide it altogether. How do I do that?

    Edit the BootScriptSteadyState.au3 and change the following line:

    RunWait('cmd /c bcdedit -timeout 5',"",@SW_HIDE)

    The default is 5 seconds. A value of zero means that you will not get the boot menu at all.

    Compile the script (you will need to download and install AutoIt to be able to do that). Run SETUP.exe again to create a new ISO image with your change or simply replace c:\windows\system\BootScriptSteadyState.exe of a current installation.

  4. What does SETUP.exe do exactly?

    SETUP.exe is a script written in AutoIt. You can see the source code by opening the SETUP.au3 file. To make any changes download and install AutoIT (it is free!). This will allow you to compile a new SETUP.exe and use that to further customize the solution.

  5. Are there any system requirements for your solution? Do I need to pay any licensing fees to use it?

    The system requirements are as follows:

    For the PC where you create the ISO image: Windows 7 must be installed. Creating the ISO file requires at least 10 GB on the C: drive.

    For the PCs where you will install the Windows 7 SteadyState solution: The PCs must be able to run Windows 7 (as defined by the Windows 7 System Requirements) with a hard disk of at least the amount of the Win7.vhd file when expanded to its maximum capacity (the default is 30 Gb but you can change it - see FAQ number 1) plus the size of your initial SteadyState (5 Gb for a bare minimum Windows 7 installation + whatever you install afterwards). The absolute minimum is 35 Gb but I would recommend using at least 50-60 Gb hard disks if not more. If you have smaller disks then lower the size of the initial VHD.

    Regarding licensing: You only need to have a valid Windows 7 license for the PC where you install the SteadyState solution. WAIK and MDT are both free tools governed by their own licensees for use which you can read into each product's documentation.You are free to customize any of the files I have provided as part of the solution (source code, configuration files, etc.). However I would humbly ask that you provide a reference back to this webpage if you intent to publish your changes on the web or elsewhere.

  6. MDT 2010 is capable of doing advanced deployments by using PXE or even integrating with SCCM for ZTI scenarios. Is your solution compatible with these capabilities?  

    Of course! SETUP.exe will fully configure your MDT 2010 installation and produce an ISO file to use for the installation. However you can customize the MDT 2010 installation to support any kind of deployment that best fits your environment including installing with PXE boot or by using a CDROM to simply connect your PC back to the MDT 2010 PC. See here for guidance on how to take advantage of the advanced deployment features that MDT 2010 offers.

  7. I have frequent problems with BSODs and system crashes during boot. What could be the cause?

    Make sure that you have enough free disk space on C:. If there is not enough free disk on C: to store the temporary state then you will get BSODs during boot. For estimates on free disk space see FAQ number 5. In case you are stuck in such a situation, either re-install the solution from the ISO file (by changing the size of your VHD file as described in FAQ number 1), or boot from your Windows 7 media, open a command prompt and delete any temp#######.vhd files you have found on your hard disks. Then reboot.

  8. Will your solution work in an Active Directory environment?

    I cannot see why not, but please have in mind that including a domain-joined PC in a SteadyState means that the AD Computer Account password will be reset on each boot. While this should not be a problem you should make sure that you have no issues with Group Policy being applied or authenticating to other resources in the domain (i.e. File Servers).

  9. I get several errors in the Boot Manager about improper configuration. What might be wrong?

    You probably restarted the PC while being in the configurable SteadyState by just turning the power off. This means that the differencing VHD cannot use the originating VHD to boot. If you are in this scenario simply boot to whichever boot option is available, reboot normally, go to the persistent changes state and reboot normally again. You can now continue to use the temporary state as you normally would.

A special thanks goes to The Deployment Guys for automating the deployment of Windows 7 to a VHD file. You can find their solution here.

Panos Macheras
Microsoft Infrastructure Consultant

.

Comments

  • Anonymous
    January 01, 2003
    Please also have a look at the updated note on Step 4 about which DVD media will work. You have to use either Windows 7 Ultimate or Windows 7 Enterprise (x64 or x86 version). Other editions or multi-editions (DVDs that include all editions together) will NOT work with the solution. Panos.

  • Anonymous
    January 01, 2003
    @bob: A sector-by-sector will not work because the BCD store needs different GUIDs for each physical hardware that you use. You can try booting from media (USB, DVD, etc.) and then go into Command Prompt (with SHIFT-F10) and try to edit to BCD store of the hard disk from there. I am pretty sure that recreating the entries would work (but it's not trivial to do with bcdedit, I am afraid). Another thing that you can try is this: perform a proper installation of the vanilla image (as described here) and then try to simply replace the win7.vhd with an updated one. See my comment above for sosummy (Sun, Mar 18 1012 10:18 AM) on advise on how you might achieve this.

  • Anonymous
    January 01, 2003
    Chris Matthew Ecklar: Glad to hear that you found it helpful. I haven't tested the solution on MDT 2012 yet but I am guessing that the ZTIDiskPartVHD script is incompatible with it. The good news is that the script is not needed in MDT 2012 as this version can deploy VHD files natively. Investigate this course of action and get rid of ZTIDiskPartVHD altogether.

  • Anonymous
    January 01, 2003
    Basically we are looking for this… We will have 13 conference room PC’s setup. When users login they can do whatever they need to do. When the log off the system should restart and wipe any profile and or data they left on the machine. We will need to push Microsoft updates using WSUS as well we have software packages that we will push to the machines using MDT. Do you have any suggestions on how this can be configured solely using Group Policies?

  • Anonymous
    January 01, 2003
    The comment has been removed

  • Anonymous
    January 01, 2003
    @sosummy: Unfortunately you can not do this easily as you need to boot from external media (USB, DVDR, etc.) in order to have access to the original VHD file (otherwise it is locked). You can try the following procedure to see if it works for you: Boot from media, go to command prompt with SHIFT-F10 and replace the original VHD file (win7.vhd) with the updated one (keep the same file name). Reboot and (important!) select the "Windows 7" boot option. You should be able to start your updated VHD. After that reboot into "SteadyState" and voila. However I understand that this procedure might not be convenient when you have a large number of PCs to update. In those cases maybe re-deploying the whole thing from scratch might be easier.

  • Anonymous
    January 01, 2003
    @njchaos: I don't think that you can achieve that by using Group Policies alone. If you want to patch the machines for security reasons then consider that by using a SteadyState system you are generally more safe from malware (you can, of course, continue to do the occasional patching but it will have to be a manual labour on each machine). It is the nature of the beast I am afraid: As things stand now you cannot "mix-and-match" what get's updated and what doesn't. It's an "all or nothing" proposition.

  • Anonymous
    January 01, 2003
    @Thomas Troxell: Do you have any other partitions and/or disks installed? A dual-boot configuration? Maybe this is what is generating the problem. Try booting from your Windows 7 media and deleting all existing partitions before using the SteadyState ISO.

  • Anonymous
    January 01, 2003
    The comment has been removed

  • Anonymous
    January 01, 2003
    @cg11: Unfortunately the product group decided to block the "Boot from VHD" feature on versions other than Enterprise and Ultimate. I am fairly certain that this was not a technical decision (I believe that it could work equally fine on other versions) but rather a way to differentiate the pricing of the various editions. But this is only my guess.

  • Anonymous
    January 01, 2003
    @Pete: I have seen this error happening when the Boot Images were (for some reason) corrupt (see here: social.technet.microsoft.com/.../46d4b297-a2b2-479d-942b-08f6c5b51eb5). Also I see a reference to an E:Depoly folder which seems weird. I would suggest that you delete ALL files and restart over. Also make sure that you are using the proper Windows 7 edition (see the blog post for details on that).

  • Anonymous
    January 01, 2003
    The comment has been removed

  • Anonymous
    January 01, 2003
    Hi, Panos . it's all is done thanx. but when i start my newly created boot DVD . it says winpeshl.ini not found system32... can you help me with this. Thanx

  • Anonymous
    January 01, 2003
    Hi Steve, You can read an in-depth explanation of VHD files here: technet.microsoft.com/.../dd440865(WS.10).aspx. Thanks for sharing your experience on how to unblock the setup files. It seems that different installations require different things to make the scripts to work (for example on my VMs the only thing required is the set-executionpolicy command). Now, regarding the error you are getting during setup: This error usually means that an XML file is badly formatted. Please try to install the solution again on a brand new VM (if you didn't try that already). Sometimes when you get an error during setup you need to cleanup C: and the boot sector to make the bootable ISO working again so using a brand new VM will give you that. To investigate further please send me a complete screenshot of the error message you are getting by using the "Email Blog Author" in the "Options" pane on the top-right of the blog. Thanks, Panos.

  • Anonymous
    January 01, 2003
    @Iceman: Maybe you are not doing Step 7 right? Please provide more information (if possible) to investigate further.

  • Anonymous
    January 01, 2003
    The comment has been removed

  • Anonymous
    January 01, 2003
    The comment has been removed

  • Anonymous
    January 01, 2003
    @Arian: Thank you for your feedback. Yes, the PS1 scripts and the EXE file need to be unlocked for the solution to work.

  • Anonymous
    January 01, 2003
    I've implemented this "Steady State" and its working great!  Thanks. I do have a question in regards to keeping all the systems in an identical lab environment updated.  Is it possible to update one vhd and copy it to all the systems? If so then which VHD file do I update and in which mode do I need to be logged in to make sure the file is not in use?  I'd love to eventually write a script that checks for an updated VHD on the network each night.  Is this possible or will the VHD needing updating always be active?  Thanks!

  • Anonymous
    January 01, 2003
    @njchaos: Are you looking for any specific setting that you want to implement? The solution should work without problems with Group Policies but it doesn't require them. The problem with WSUS is that you need to perform the updates while being booted in the "Windows 7" boot option, otherwise the updates will be lost after a reboot (that's the whole point with SteadyState). It can work but there is manual work involved. I would schedule those updates carefully and irregularly (as the need to protect from malware is smaller on a SteadyState environment).   Also don't forget to utilize Group Policy Preferences. They are a lot more flexible for things you might wish to control.

  • Anonymous
    January 01, 2003
    To all: Please accept my apologies for not answering your posts earlier. I should be able to have more prompt replies from now on. For those people that are interested: I am working on having a nice GUI that does the downloading and the creation of the ISO image (this will hopefully eliminate the need to "un-block" the script files). There is no ETA for this yet, as it is done strictly on my free time, but there is a good chance that I could have this in about one month's time (fingers crossed).

  • Anonymous
    January 01, 2003
    @zach: It is difficult to do by using my scripts (as they would need to be heavily modified). One alternative way would be to use Mark Russinovich's  Disk2vhd tool (technet.microsoft.com/.../ee656415) which can create a VHD file of a current installation. You then need to follow a similar approach to use a differentiating VHD file based on that. It is not trivial but it can be done.

  • Anonymous
    January 01, 2003
    First, thanks Panos, this is a great and really useful feature! I was also using MDT 2012 and not getting any joy...  Looks like it only works with MDT 2010 which is available from this link: www.microsoft.com/.../details.aspx I didn't see any errors using 2012 but the OS deployed to the primary disk partition and not the VHD...  Both entries in the bcd pointed to that installation...  The Win7.vhd file was created but not the temp*.vhd files...

  • Anonymous
    January 01, 2003
    @Mike Zanos: Great tip! You are right, automatic defragmentation on the "SteadyState" mode will cause the disk to significantly expand. This would be a problem in cases where the user stays on the "SteadyState" mode for extended periods of time (without reverting to the initial state).

  • Anonymous
    January 01, 2003
    @Llukar: Where did you store the document? The only drive that is in SteadyState mode is C: (and not D:). Also look at the answer for @problem above.

  • Anonymous
    January 01, 2003
    Quick question: in a 'Steady State' environment you would want to password lock the admin (Windows 7) boot whilst leaving the SteadyState boot open for users.  Does this solution do this?  Not clear from what I'm seeing here...

  • Anonymous
    January 01, 2003
    @Just me: Thanks for the pointer about Wioski. It is a very nice solution, more or less based on the same idea (using a differencing VHD). However by looking at the process flow it seems that it actually requires two reboots to enter the "lock down" mode, where this solution only requires just one reboot to achieve the same result.

  • Anonymous
    January 01, 2003
    @Adam Kite: Did you, by any chance, set the timeout thershold to zero? (i.e. bcdedit -timeout 0). Set the value to something more meaningful (bcdedit -timeout 5) and reboot. Also from the blog post: "In case you want to make changes that need to reboot your OS (installing Windows 7 SP1 for example) then simply select the first option after the first reboot. This will ensure that your changes are persistent in your SteadyState." Let me know if that worked out for you.

  • Anonymous
    January 01, 2003
    @Windows Steadystate phased out: Not that I am aware of, unfortunately. This is why I created this solution.

  • Anonymous
    January 01, 2003
    @DonCarlos: Please have a look at my answer to @zach above. Maybe it can be done. I would use the disk2vhd utility but it would definitely not be trivial. Another solution would be to install the SteadyState as described here and then use a backup/restore method on top of it.

  • Anonymous
    January 01, 2003
    @Rob: Please read my reply to cg11 above.

  • Anonymous
    January 01, 2003
    @David: Do you see any files at all inside: c:deploymentsharemediacontent? Check that you have enough free disk space in C:. Also open the Deployment Workbench from the Start Menu, find the Deployment Share folder (c:deploymentshare) and remove it. Then delete the folder and start again. It might be that some leftover files from your previous tries lead to the errors you are getting.

  • Anonymous
    January 01, 2003
    @Dominic: Thank you Dominic. It's good to know that you find my solution helpful. It's not perfect but it can work if implemented appropriately.

  • Anonymous
    January 01, 2003
    dereksanderson: You would need to modify the Task Sequence to also deploy (automatically) anything you need on Step 6. You can find more info for Office 2010 (for example) here:technet.microsoft.com/.../hh537943(v=office.14).aspx. It's not trivial but it can be done.

  • Anonymous
    January 01, 2003
    The comment has been removed

  • Anonymous
    January 01, 2003
    @Eli: You need to boot into "Windows 7" and make the change there. Remember when you are in "SteadyState" mode any change you make is lost, including the boot options.

  • Anonymous
    January 01, 2003
    @Sherif Gouda: Great input! This helps to eliminate the multiple editions DVD media problem. Thanks!

  • Anonymous
    January 01, 2003
    The comment has been removed

  • Anonymous
    January 01, 2003
    @Leif: Make sure that you have successfully done Step 4.

  • Anonymous
    January 01, 2003
    Thanks Panos for this solution.  It drastically cuts back on our set-up time for kiosks at our hospital. We are using MDT 2012 for our deployment tool for all 20,000 of our computers.  I've tried getting your solution working in MDT 2012 but am having issues.  Something appears to be going awry with the partitioning process.  Here is the contents of my BDD.LOG file surrounding the error: DiskPart> REM BOOT VHD Provisioning... ZTIDiskPartVHD 3/8/2013 4:29:28 PM 0 (0x0000) DiskPart> Create vdisk file='c:win7.vhd' MAXIMUM=50000 type=expandable ZTIDiskPartVHD 3/8/2013 4:29:28 PM 0 (0x0000) DiskPart> Create vdisk file='c:temp.vhd' parent='c:win7.vhd' ZTIDiskPartVHD 3/8/2013 4:29:28 PM 0 (0x0000) DiskPart> Select vdisk file='c:win7.vhd' ZTIDiskPartVHD 3/8/2013 4:29:28 PM 0 (0x0000) DiskPart> Attach vdisk ZTIDiskPartVHD 3/8/2013 4:29:28 PM 0 (0x0000) DiskPart> Create partition primary ZTIDiskPartVHD 3/8/2013 4:29:28 PM 0 (0x0000) DiskPart> Assign letter=E: ZTIDiskPartVHD 3/8/2013 4:29:28 PM 0 (0x0000) Property DestinationLogicalDrive is now = E: ZTIDiskPartVHD 3/8/2013 4:29:28 PM 0 (0x0000) DiskPart> Exit ZTIDiskPartVHD 3/8/2013 4:29:28 PM 0 (0x0000)    DiskPart > ZTIDiskPartVHD 3/8/2013 4:29:28 PM 0 (0x0000)    DiskPart > Microsoft DiskPart version 6.1.7600 ZTIDiskPartVHD 3/8/2013 4:29:58 PM 0 (0x0000)    DiskPart > Copyright (C) 1999-2008 Microsoft Corporation. ZTIDiskPartVHD 3/8/2013 4:29:58 PM 0 (0x0000)    DiskPart > On computer: MININT-TC10D52 ZTIDiskPartVHD 3/8/2013 4:29:58 PM 0 (0x0000) DiskPart returned error = -2146959355 ZTIDiskPartVHD 3/8/2013 4:29:58 PM 0 (0x0000) Run Format E: /FS:NTFS /V:BootVHDDisk /Q /Y ZTIDiskPartVHD 3/8/2013 4:30:03 PM 0 (0x0000) command: FORMAT.COM E: /FS:NTFS /V:BootVHDDisk /Q /Y   FAILED with error = 1 ZTIDiskPartVHD 3/8/2013 4:30:03 PM 0 (0x0000) ZTI ERROR - Non-zero return code by ZTIDiskPartVHD, rc = 1 ZTIDiskPartVHD 3/8/2013 4:30:03 PM 0 (0x0000) Command completed, return code = -2147467259 LiteTouch 3/8/2013 4:30:03 PM 0 (0x0000) Litetouch deployment failed, Return Code = -2147467259  0x80004005 LiteTouch 3/8/2013 4:30:03 PM 0 (0x0000) Any ideas?  Thank you.

  • Anonymous
    January 01, 2003
    I tried this solution few times until I finally gave up.  Luckily I ran into a program called Reboot Restore RX which works great as a replacement for Windows Steady State.  Anyways just wanted to let people on here know that this is another option.  Here is the link for the program if anyone that is interested:  www.horizondatasys.com/.../products_and_solutions.aspx

  • Anonymous
    January 01, 2003
    @Tom: Haven't had a chance to try it with MDT 2012 but in theory it should work (unless the powershell commands used in the scripts have changed with MDT 2012). Could you post the error messages that you get? Thanks.

  • Anonymous
    January 01, 2003
    @Mike Zanos: Everything will be undone (including registry) with the exception of the boot configuration. This is permanent as it is stored outside of the VHD files.

  • Anonymous
    January 01, 2003
    @Fergus Conolly: In case you need to lock access to the "normal" boot mode (Windows 7) vs. the "SteadyState" one then you basically need to do two things:

  1. Modify the solution to default to "SteadyState" (by setting the timeout bcd boot option to zero). See FAQ # 3 in the blog post on how to do this. That way the boot option is not displayed and "SteadyState" is selected by default.
  2. Have two user accounts in your SteadyState initial image: One which is a normal user (not an admin) and the other a proper administrator for which only you know the password. That way a normal user can only work inside the SteadyState boot and cannot change the timeout value to make the boot menu appear (since only local admins can do that). If you need to enter the "normal" boot mode then you simply login as admin, change the timeout value and reboot (FAQ # 3 again). Of course the solution is not 101% bulletproof against a determined and clever user. Remember: physical access to a PC means that practically everything is possible.
  • Anonymous
    January 01, 2003
    @Vlad B.: Theoretically it should work. Would like to see it in action though.

  • Anonymous
    January 01, 2003
    The solution for the "Unblock" problem is to unblock (Right-click>Properties and look for an Unblock button just below the Advanced button) the .zip file BEFORE extracting all of the files. All extracted files will be unblocked. As above, if you don't see the Block button, then you don't have the problem.

  • Anonymous
    January 01, 2003
    @William Chard: Do you get any errors at all during the creation process? Maybe not enough free disk space on C:? As a workaround you can copy-paste the contents of the c:deploymentsharemediacontent folder to a usb stick and make it bootable like by doing the following: You’ll need a utility called bootsect.exe which can be found in any Windows 7 DVD in the boot folder. Copy bootsect.exe from a Windows 7 installation disk and paste it in the C:WindowsSystem32 directory in your computer. Once you copied bootsect.exe from a Windows 7 installation disk to the System32 folder on your computer, type bootsect /nt60 X: (where X is the drive letter of the USB drive) and then press enter. Now your USB stick should be bootable.

  • Anonymous
    January 01, 2003
    The comment has been removed

  • Anonymous
    January 01, 2003
    thanks

  • Anonymous
    January 01, 2003
    @problem: Run the "bcdedit" command and review the output. The "SteadyState" boot option should point to the temporary VHD file and not to Win7.vhd. One problem might be that the Scheduled Task was not properly installed. In this case recreate the ISO and try the installation again.

  • Anonymous
    January 01, 2003
    The comment has been removed

  • Anonymous
    January 01, 2003
    @njchaos: Please see my answer to Pete above.

  • Anonymous
    January 01, 2003
    @Mike Zanos: You can use a "slipstreamed" version of the Windows 7 ISO and use that on Step 4 above. You can find many tutorials for that on the web, like this one here: www.technipages.com/the-complete-guide-to-slipstreaming-a-windows-7-sp1-disc.html.

  • Anonymous
    January 01, 2003
    @Cleber: Before you try again make sure that: a. You have deleted the folder: c:DeploymentShare (if it exists) b. You are running setup.exe as an administrator (right-click and "Run as administrator" if not sure.

  • Anonymous
    January 01, 2003
    The comment has been removed

  • Anonymous
    January 01, 2003
    @bcadej:

  1. You have a performance penalty of about 5% on the hard disk. Not on graphics performance.
  2. The scripts install the VHD file on the first partition of the first hard disk (C:). However this can be changed by modifying the ZTIDiskpartVHD.wsf file where the location of the VHD is specified (look also on the answer #1 on the FAQ of the blog post). This VHD can be potentially placed on any partition as long as it is visible when the computer starts (i.e. no encrypted or hidden partitions).
  3. Regarding USB boot: This can be setup in the BIOS. If you wish to NOT allow USB drives to interfere you can have the local hard disk higher than the USB drive in the boot order in BIOS (or disable USB boot altogether). Panos.
  • Anonymous
    January 01, 2003
    Panos, If I want to include Office 2010 in the build, along with Acrobat reader, Security essentials, how do I do this, so that a boot DVD would deploy a full state with this as configured?

  • Anonymous
    January 01, 2003
    Hi Panos. Than you very much for coming up with this setup. I have a scenario I want to put by you and see if you could give me some feedback. I have a lab with several PC's that I have to deploy this to. Your procedure is great, but I was wondering if you could add on a section on customizing and redploying the steadystate image. In our lab environment, I need to deploy several programs and configure Windows quite a bit. It would be quite time consuming to go to each PC and deploy all of these settings and installs. It would be great if I could configure one and then repackage and redeploy that sysprep'd image. Having the fully configured image on a DVD to deploy at any given minute would be extremely handy. Any suggestions on how this could be done? I imagine there are others who would like to know this as well. Thanks.

  • Anonymous
    January 01, 2003
    @Rodrigo: Only Ultimate and Enterprise editions work with the "Boot from VHD" feature.

  • Anonymous
    January 01, 2003
    The comment has been removed

  • Anonymous
    January 01, 2003
    Thanks for the reply post... That was what I have started already. Would you happen to know where I might find an ADM or ADMX template for Group Policies – Turns out that this option is not going to work in our favor. My scenario is that I need this setup to be for corporate conference rooms that will be updated and managed by WSUS and MDT. Again thanks for any insight and help you can offer.

  • Anonymous
    January 01, 2003
    Hey Panos, Thanks for sharing the easy steps but I was stuck up at end. I have tried it for 2-3 times but unable to set up it properly. I heard about Faronics Deep Freeze before some days. They also providing same functionality with some advance features. Sharing the link of it  www.faronics.com/.../enterprise

  • Anonymous
    January 01, 2003
    The comment has been removed

  • Anonymous
    January 01, 2003
    @Thomas Troxell: You need to investigate the errors recorded in the log file of the installation. The log file is: c:windowstempdepoymentlogsbdd.log. Hopefully this will shed some light on what is going wrong during the installation. If you wish you can also use the "Email Blog Author" link at the top to contact me directly in order to send me the log file (I will email you back and you can reply with the attachment).

  • Anonymous
    January 01, 2003
    The comment has been removed

  • Anonymous
    January 01, 2003
    Has anyone created a more up to date guide than this?

  • Anonymous
    January 01, 2003
    The comment has been removed

  • Anonymous
    January 01, 2003
    Dear Panos. I can't yet handle the problem with Update-MDTDeploymentShare command...
    Please see the screeshot - http://s16.postimg.org/w425c93cl/error.jpg

  • Anonymous
    July 12, 2011
    Panos, First - great stuff, a really straight forward guide! This is my first search for SteadyState since we implemented SCT v1 then WSS v2.0 & v2.5 on XP in our cafe nearly 3 years ago! It's given me great hope for a simple, yet robust Win7 solution! You mention in Q5 & Q7 a reference to FAQ#1 & #5 re: VHD maximum size - but don't provide a link to it - not being a follower of your blog I don't know whether this is a FAQ you maintain somewhere, or whether it's a FAQ off one of the other links. After a few quick excursions to these other pages, I've still not found this elusive FAQ list. We have gaming PCs which have over 400GB of apps/games, so obviously need to ensure that the VHD solution will cope. Could you update your doc to give active links to the FAQ sections mentioned. Many thanks Steve

  • Anonymous
    July 14, 2011
    The comment has been removed

  • Anonymous
    August 01, 2011
    Why will other Windows editions (like Professional) not work?  It would be nice to know the reason. Thanks.

  • Anonymous
    August 23, 2011
    Hi this is just what i was looking for, here's my question how would i combine this steady state to an already prepared (all applications installed and configured) captured image, or computer. thanks

  • Anonymous
    September 02, 2011
    The comment has been removed

  • Anonymous
    September 04, 2011
    Me to i get the same error and i dont know what to do , any help please ?

  • Anonymous
    September 05, 2011
    Hi Panos! This is a very good tutorial! Can I apply Your method to already installed PCs? I installed all computers in our schools lab, and I don't want to do all over again. I saw I can copy the existing system to a wim file, then I can apply that file to a vhd. Can I use that vhd file with your solution? Thanks in advance!

  • Anonymous
    September 07, 2011
    I suggest additional steps because I tested them:

  1. Many Win 7 ultimate DVDs contain remains of multi-editions although you cannot recognize them during the installation. To remove these remains, copy contents of Win 7 in the folder "Win7SteadyState1.0WIN7CD" and then go to the folder "sources" to remove any clg file for any other edition and use the free open source "gimagex v. 2.0.17" to delete any image index for any other edition in "install.wim" without mounting.
  2. If you use Win 7 SP1, you need to install "WAIK supplement for Windows 7 SP1" as update to "WAIK". To install it, use the following steps: Emulate the iso file with the free open source emulator "WinCDEmu" and then if Waik is installed in C while D is the emulated disk for WAIK update, then run "Command Prompt" with "Run as administrator" on right click: a) xcopy D: "C:Program FilesWindows AIKToolsPETools" /ERUY It must copy 134 files. b) xcopy D:winpe-dot3svc "C:Program FilesWindows AIKToolsPETools" /ERY It must copy 82 files. Enjoy.
  • Anonymous
    October 10, 2011
    Hi Panos, I'm testing this solution in a laptop, but with problems, sometimes when I change the wallpaper, and then restart, the wallpaper remains.I reinstall several times but the problem continues not always have the same behavior. Thanks

  • Anonymous
    October 14, 2011
    Hi Panos, I am getting the same error as Omar M. Any ideas? I am using a Win7wSP1 Ent media

  • Anonymous
    November 08, 2011
    Any chance this could be made to work with Windows 7 Professional edition?  I don't have licensing for Ultimate or Enterprise and configuring it with a 90 day trial version seems like a waste of time. Unless I am misreading some of the setup files, I am guessing that entering the OSGUID for the Professional edition should allow it to work, but I don't know where to locate that OSGUID. Thanks

  • Anonymous
    November 10, 2011
    Are comments being posted by the moderator anymore?  I have submitted 2 that still do not show, so I am just wondering if I am wasting my time. But, I would like to turn off the boot screen in a public environment, but I would still need to get to the boot screen to perform maintenance, is this possible with a keystroke or running another bat/cmd file? Please post and/or respond. Thank you.

  • Anonymous
    November 27, 2011
    I have burned several different CDs and made sure that the space for the VHD is more than necessary, however, after every installation, the PC boots up with a yellow screen that says either 1 or 2 errors/warnings were encountered during the installation. One is that the disk or partition was not created or was not found. I have yet to get a screen with 0 errors and 0 warnings. I have also unblocked all the files in the SteadyState folder. The PC will boot up after installation and I will try to install Windows Updates, but immediately upon restart I get an error saying that "BOOTMGR IS MISSING". Press Ctrl+Alt+Del to restart". Any help? I have followed the guide step by step, but always seem to get errors. I am working on Gateway machines for a school system, so being able to troubleshoot this issue is my top concern.

  • Anonymous
    November 29, 2011
    The comment has been removed

  • Anonymous
    December 02, 2011
    Hi Panos - I'm getting the same issue as Omar.  I'm using a file copy from a Win7 with SP1 integrated, if maybe that could make a difference.  I've been trying to isolate the variable, which appears to be this couplet: $osText = FileRead($osFile, FileGetSize($osFile)) $guidOSText = StringRegExp($osText, "{.*}", 1)

  • Anonymous
    December 05, 2011
    I have no OS installed on the disks. I am preparing the disks on my Lenovo laptop and then running them on the Gateway machines. Disk is completely formatted (I have changed it from the disk have no partition to a blank partition). In the end, I still get an error when Windows loads up. The error screen is yellow with one error having being detected. During the process to make the ISO image from the SteadyState folder, I do get one quick red error (maybe staying on the screen for 3 seconds, saying something about the program having issues writing or copying to the Deployment Share folder either Media or another folder. After that, it will continue its processes, without any other errors. Any ideas? I have tried to use a Non-Microsoft solution called "Wioski" and I had a problem where I couldn't install Windows after it had unpacked all the files.

  • Anonymous
    December 12, 2011
    Is there a was to add Windows 7 SP1 to this process, such that when the ISO is created, SP1 is either pre-installed or located in a directory?

  • Anonymous
    December 12, 2011
    I have followed your steps and when the process is completed the ISO is not created., just the content folder. I posted this before but it didnt show up,  so i am posting again.

  • Anonymous
    December 14, 2011
    What changes can be "undone" with this solution. For example, when booted into "SteadyState", registry changes occur as a result of a software installation. Will the registry return to the before installation state on next reboot?

  • Anonymous
    December 15, 2011
    still having trouble building the iso - getting a single error running win7ent x64 with waik supplement for sp1 coppied over as described above - source media is win7ent x64 single os disk PERFORMING verbose: performing operation "new drive" on target: "name: steadystate provider: microsoft.bdd.pssnapinmdtprovider root: c:deploymentsharemediacontent" ERROR newpsdrive: the deployment share at c:deploymentsharemediacontent could not be opened at c:win7steadystate1.0createmedia.ps1:4 char12    +new-psdrive <<<< -name "steadystate" -psprovider "mdtprovider" -root "c:deploymentsharemediacontent" -description "embedded deployment share" -force -verbose    +categoryinfo              : invaliddata: (steadystate:psdriveinfo) [new-psdrive], deploymentpointexception    +fullyqualifiederrorid: invaliddp, microsoft.powershell.commands.newpsdrivecommands any help would be greatly appreciated

  • Anonymous
    December 19, 2011
    @Panos  I dont get any errors.  It runs the full cycle, just dosnt create the ISO.  I will try the above method next

  • Anonymous
    December 20, 2011
    There appears to be a problem with defragmenting differencing disks. It seems to be okay to manually defragment while in the "Windows 7" mode (parent). But, if you leave your machine in the "SteadyState" mode (child) for long periods of time you will notice an unexplained "growth" in the size of the vhd. Windows 7 defragments automatically by default. If you run the defragmenter you will see that both C: and D: are set on a default schedule. You can disable this as well in the defragmenter. A search produced this reference: Step 4 (Optional): Reduce the base VHD file size You might want to click the Configure schedule button and disable automatic defragmentation. While booted into a differencing VHD, defragmenting the disk can lead to a big increase in the differencing disk size. This is taken from an interesting blog that contain other useful information: blogs.msdn.com/.../booting-windows-to-a-differencing-virtual-hard-disk.aspx Hope this helps ...

  • Anonymous
    December 23, 2011
    The comment has been removed

  • Anonymous
    February 10, 2012
    The comment has been removed

  • Anonymous
    February 26, 2012
    In your FAQ you described how to change the time of the boot menu. Is there a way to do that after the installation? I tried it and could not make the change permanent. If I set the timeout to 0 it will only affect the next boot. The change is lost after I reboot again. Is there a way to use a script, which will edit the entries in the bootmanager after every boot/before shutdown?

  • Anonymous
    March 15, 2012
    The comment has been removed

  • Anonymous
    April 03, 2012
    The comment has been removed

  • Anonymous
    April 17, 2012
    When i do the first reboot i do not get any boot options it just goes into steady state after the first reboot. I do need to do several reboots before i want to enable steady state. Any ideas?

  • Anonymous
    April 25, 2012
    The comment has been removed

  • Anonymous
    May 10, 2012
    Hi Panos I would really appreciate a way to build a steady state install CD / DVD that installs my own wim image? I can see you mentioned that you can replace the win 7 vhd file but i need a way to build out 500 machines that do not have network boot capability. Any ideas? Thank you for your time.

  • Anonymous
    May 11, 2012
    So this is just the same thing (or actually worse) than www.itpro.fi/.../default.aspx (download links on the left side of the page) Wioski has been around since 2010, and what I've heard it should include WSUS patching in the upcoming version... Installation video: download.sovelto.fi/Wioski.mp4 Processflow: www.itpro.fi/.../Wioski_workflow_1.1.2.pdf

  • Anonymous
    May 14, 2012
    I test this solution ata a virtual machine. The progress of the install is ok, but when i run at steady boot option, the system dont restore at previus state ... it works like normal boot. the OS is Windows 7 Enterprise

  • Anonymous
    May 21, 2012
    The comment has been removed

  • Anonymous
    June 09, 2012
    Fantastic solution on a single pc, I wish to back up a system with all programs and updates installed and reimage to other pc's with identical hardware The problem is I keep getting BCD store contains incorrect information when I reboot the newly restored image.  I have tried fixing the BCD store with no luck. Any ideas?

  • Anonymous
    June 18, 2012
    Microsoft cancelled support for steadystate and supposedly removed the download link.  Is there an alternative product?

  • Anonymous
    June 20, 2012
    Hello, following your instructions I installed the machine, but if I install a program in option 2 SteadyState and then restart the changes remain. Where am I doing wrong? thanks LB

  • Anonymous
    June 20, 2012
    We are seeing the same problem as Ron, imaging and restoring this solution with Ghost results in a problematic BCD. BCD seems to struggle matching the GUID's to the VHD's... any idea's on the cause and where to start looking for a solution?

  • Anonymous
    June 26, 2012
    As I get some errors after the installation I just want to ask if someone can confirm, that this still works with MDT 2012?

  • Anonymous
    June 27, 2012
    Win 7 Pro not work?

  • Anonymous
    June 27, 2012
    The comment has been removed

  • Anonymous
    June 28, 2012
    (Sorry, if this post is published two times ... but I cannot see my first entry after half an hour ...) @Panos: I have switched to MDT2010 and Windows 7 x86 as source and now it works like charm -thank you very much! One issue: Are there any hints for configuring the system (especially the SteadyState partition), so that "evil users" cannot harm my computer? In the original MS version were a lot of options to restrict the access ...

  • Anonymous
    July 05, 2012
    Hello, Thank you so much for the time and effort you put into this project, It's just what i needed for a couple of computers at my company. No problems to get it to work, by using a DVD or creating a Bootable cd connecting to my MDT test enviroment. Next step was to make the task sequence available in our SCCM 2007 enviroment, but I just can't get it right, in the step of Applying operating system, i fails and the process stops, reporting: Unable to open reparse point E:Documents and Settings (it might be the unattend.xml, i'm not able to get right). At reboot, i have to create a user, then copy the two exe files (ConfigureSteadyState.exe and BootScriptSteadyState.exe and run the command, and the computer it running in steadystate mode. So does anyone had any luck implementing this as a SCCM task sequence, which I may have a look at (as an exported Task sequence) regards, Jakob

  • Anonymous
    July 09, 2012
    Hi Panos I have rolled out 13 of these now and we are getting activation errors it seams that the terminals are now not saving any changes if you go into the Windows 7 boot option as we are trying this to add the licence keys. This solution is very unstable and I dont think you should be telling people to use it!

  • Anonymous
    July 11, 2012
    Sorry for the delay ... I have tried your solution with MDT 2010 and Windows 7 x86 and have no problems anymore! Just one question: Are there any hints for configuring the system furthermore, so a normal user cannot harm it? With the original SteadyState from MS you can manage a computer in a way that users can only start specific programs or that the reference system (here: Windows7) is not available to them ...

  • Anonymous
    July 12, 2012
    The comment has been removed

  • Anonymous
    July 12, 2012
    The comment has been removed

  • Anonymous
    July 27, 2012
    The comment has been removed

  • Anonymous
    September 13, 2012
    The comment has been removed

  • Anonymous
    October 16, 2012
    Hi, Nice tutorial, it seems straightforward. But I have one question: will it work with Microsoft Deployment Toolkit (MDT) 2012 Update 1 and windows 7 enterprice x64 (without SP)?

  • Anonymous
    October 18, 2012
    The comment has been removed

  • Anonymous
    November 05, 2012
    Hi Panos, it's all was very greatful i done this all very well. but  when i start my DVD it says winpeshl.ini not found .. how i can solve this thanx

  • Anonymous
    December 14, 2012
    The comment has been removed

  • Anonymous
    December 20, 2012
    If I change the boot time to 0 (instant) as you mention in your FAQ #3, does that allow me to change it back at a later time so I can implement changes into the main image file so I can keep a permanent change?  For example, I'd like it so the users aren't aware that they can make permanent changes, however, if I want to do updates, I'd like to be able to change back and forth between the temp and the real image.  Thanks for the tutorial!!

  • Anonymous
    January 25, 2013
    The comment has been removed

  • Anonymous
    January 31, 2013
    Hi, Panos. I was just wondering if this might work if I replaced the original install.wim with a captured imagex wim image renamed to install.wim - this would save a lot of time spent installing drivers/some basic programs. Thanks.

  • Anonymous
    February 07, 2013
    How do I make Office and Security Essentials all part of one deployable image?

  • Anonymous
    February 22, 2013
    The comment has been removed

  • Anonymous
    February 26, 2013
    Hi Panos I follwoed all the steps, with last step i got error ( operating system deployment not install successfully) So please any suggestions . Thank you

  • Anonymous
    March 05, 2013
    The comment has been removed

  • Anonymous
    March 12, 2013
    The comment has been removed

  • Anonymous
    March 22, 2013
    The comment has been removed

  • Anonymous
    April 07, 2013
    From my experience with this solution, it appears to work only where SteadyState takes over the entire hard disk. So am I correct in assuming that you could not have a dual boot configuration with SteadyState? Or can a hard disk be setup with multiple partitions and SteadyState could be installed on one of these existing partitions. Thanks

  • Anonymous
    April 08, 2013
    After the successful build of this "SteadyState" machine, is it possible to use "create VHD" in Windows 7 and package the entire "SteadyState" install into one or more VHD files that can be copied to another computer that has a blank NTFS partition. Would it then be possible to boot this second machine from the VHD file? If this were possible it would make this great solution even better by making it portable.

  • Anonymous
    June 06, 2013
    Hi there, i tried to install this solution. It works fine, but when I try to boot from the created DVD (Litetouch Boot [STEADYSTATE] (x86) [EMS Enabled]), the computer crashes after booting. A few seconds after the blue background "Microsoft Solutions Accelerators" appears. I don't know why it crashes.. I hope that anybody could help me. Thanks

  • Anonymous
    July 18, 2013
    Hey Panos, Great guide for steadystate. But Microsoft has phased out steadystate so now it not compatible with Windows 8 right? So looking for alternative for steadystate. Please let me know your views on it and also let me know about Deep Freeze. I heard reviews of it and most of them are saying it is good alternative of steadystate.

  • Anonymous
    July 26, 2013
    Can you explain what happens if we don't use enterprise or ultimate. What happens if professional is used?

  • Anonymous
    October 18, 2013
    hi Panos -- Is there a way to change the menu entry order making Windows 7 as default instead of SteadyState just like the timeout value? Thnx.

  • Anonymous
    October 23, 2013
    The comment has been removed

  • Anonymous
    November 07, 2013
    I am not a script person, and i was only dinking around with this steadystate stuff to see what options i have available using parent/child VHD's.  Anyways!!! to all the people having issues making this/these scripts run.  the problem is because of the default policy of the powershell.  changingb the policy as mention in the tutorial is ONLY GOOD FOR ONE SCRIPT.  causing subsequent ps scripts to fail and cause the script written by this author to fail as well.   to solve the issue.  you need to open and save (BUT DO NOT MODIFY) each file with extension .ps1  this will change the file to have been written by your computer and cause the script to complete.  I have done this. after 3 days playing with possible problems, at last! and the media is being creates as i type this today. hope you all find this useful.  good luck. -Lurch

  • Anonymous
    November 12, 2013
    I am also having the same problem as Rob (Litetouch deployment failed), I am using SP1 with the AIK supplement as was stated in a previous comment. I am not entirely sure what to try next in getting this up and running.

  • Anonymous
    November 15, 2013
    The comment has been removed

  • Anonymous
    January 21, 2014
    I get the following error when trying to build a ISO Import-MDTTaskSequence : Cannot bind parameter ´OperatingSystemPath´ to the target. Exception setting "OperatingSystemPath": "Cannot find path ´DS001:Operating SystemsWindows7.wim´because it does not exist."At c:Win7SteadyState1.0CreateTaskSequense.ps1:5 char:94

  • Anonymous
    August 11, 2014
    Can you use MDT2012 instead? I'm pretty sure I followed everything correctly, but after what looks like a successful install there is no steady state anywhere. Whether I select Windows 7 or Steady state to boot to there is no steady state anywhere.

  • Anonymous
    August 18, 2014
    The comment has been removed

  • Anonymous
    August 19, 2014
    The comment has been removed