IPB

Google Frontpage Forums Unattended CD/DVD Guide

> Unattended CD/DVD Guide Homepage · MSFN Forum Rules

Welcome to the Applications Installs forum. Make sure you read the forum rules before you start posting.

Links/Requests to warez and/or any illegal material (porn, cracks, serials, etc..) will not be tolerated. Discussion of circumventing WGA/activation/timebombs/keygens or any other illegal activity will also not be tolerated.

We try our best to keep this forum clean of illegal content. If you see any illegal activity use the "report" button you find in every post to report the specific post to the moderators. If you ignore any of the rules you will be banned without notice.

Read Forum Rules

> Change the HAL and add mass storage drivers, How to combine existing P2V techniques for imaging
Mordac85
post Jul 12 2006, 06:50 AM
Post #1


Jack of all trades, master of none
***

Group: Members
Posts: 361
Joined: 26-January 04
From: Buckeye country
Member No.: 13177
OS: none
Country Flag


This is a topic split from another thread. In that thread, nivlacckw brought up a novel idea to adapt a physical to virtual (P2V) process to alter the HAL and add mass storage drivers to a system after an image has been laid down, but before mini-setup runs. The page he referenced is the Ultimate-P2V (http://www.rtfm-ed.co.uk/?page_id=174).

On the site, there is a reference to Notorious_bdg’s “HAL_Update” script (http://www.rtfm-ed.co.uk/downloads/HAL_Update.txt) which seems to detect and change the HAL using devcon. This only appears to be written for 4 HAL's but either the script could be completed to cover all of them or, depending on the licensing, the devcon source could be altered to create a utility that provides only this very defined function. Maybe it could also include a function to detect the mass storage controller and pull from a predefined driver folder to inject the correct drivers as well as updating the HAL?

He's making a similar inquiry on the BartPE forums.
QUOTE (nivlacckw @ Jul 11 2006, 11:41 PM) *
Post in 911 CD forum to draw Pebuilder's community attention

http://www.911cd.net/forums//index.php?showtopic=17752


So I just wanted to see if anyone can see problems with this process or does it seem to be a valid use of devcon? If you boot from a PE CD and make these types of changes will there be any problems when you boot?
Go to the top of the page
 
+Quote Post
4 Pages V  « < 2 3 4  
Start new topic
Replies (60 - 72)
nivlacckw
post Oct 11 2006, 08:24 AM
Post #61


Newbie


Group: Members
Posts: 16
Joined: 7-July 06
Member No.: 100739
Country Flag


QUOTE (Scrapple @ Aug 25 2006, 11:22 PM) *
QUOTE (prozac @ Aug 25 2006, 10:27 AM) *

About MSD injection.

I was wondering if its possible to use Rundll32 Inf installation to install the drivers in the offline registry ?

Any thoughs on that?


Hi Prozac,

Unfortunately this won't work, because the -very- undocumented, but really interesting functions within setupapi can't stray from their -probably- hardcoded reg-roots like HKLM\System\CCS\CriticalDevDB and the services section.

I've looked into this idea myself... but I'm not a programmer and I don't work for MS, so my knowledge about setupapi is really limited.


BUT... I have some good news concerning MSD injection. Let me tell you what I tried:

I had some old image that did not include drivers for a Promise Fasttrak Sata Raid Controller. So I deployed that image from BartPE to such a Raid system, which of course gave me a 00007B bluescreen on first boot.
Downloaded MSD to see what files (easy) and reg entries (difficult) were neccessary to inject.

injected the cat, dll, inf and sys into the offline image and loaded the offline system-reg to a temp hive of BartPE. injected the most basic CriticalDev and Service key I could create... So no extra reg-parameters for the driver at all! Unloaded the temp-hive, shutdown Bartpe and tried to boot from the Harddisk again expecting it to fail miserably again with a 7B...

..... That did not happen.... It booted correctly... to my surprise! After my bootup I updated the driver like you would do normally (this can be scripted BTW) and restarted the machine... Booted fine again and there they were in the registry... all the parameters that I would've wanted to install directly from the inf within BartPE, but too difficult for me to write a generic parser for.

So what could this mean? It could mean we only have to inject -very- basic entries in the Services and CritDevDB for the image to boot up without real hassle. On first boot when PNP-install should be run we could (re)-install the MSD as a PNP device and after the second boot it will run like it should be, because the correct "difficult" entries would have been installed.

Of course I don't have 100's of different MSD devices laying around to test every driver on... but you guys might be able to help me with that. Testing the routine I mean... Anyway, it gives me some hope that this MSD injecting could very well be simpler than I would've thought a few weeks ago.


And yeah, it would probably also work by using the MSD drivers that BartPE uses from the CD. But we should (re-)install the -full- driver on first boot properly...

CU guys


Anybody come across HAL changers from major server vendors back to the NT4 days? There used to be a program for changing HAL online from standard to ACPI years ago..
Go to the top of the page
 
+Quote Post
ForceFed
post Oct 15 2006, 04:41 PM
Post #62


Newbie


Group: Members
Posts: 14
Joined: 6-May 05
Member No.: 54964
Country Flag


QUOTE (Scrapple @ Aug 7 2006, 02:42 PM) *
http://rapidshare.de/files/28543938/bootfiles.rar.html

Only use this if you know what you're doing!
I suggest you use them in a virtual pc or test machine... and read my post about dtecthal.inf carefully.


Would you mind sharing that file again? I currently maintain about 30 images and I would really like to get down to one image. The information here has been very useful. Are there any links for further information on your Barts method of swapping HALs and injecting drivers from a share?

Thanks!
Go to the top of the page
 
+Quote Post
prozac
post Nov 3 2006, 01:04 PM
Post #63





Group: Members
Posts: 5
Joined: 9-October 05
From: Jutland
Member No.: 76148
Country Flag


Any news on this topic?

Still trying to inject MSD into a offline image without so much sucess sad.gif
Go to the top of the page
 
+Quote Post
Scrapple
post Nov 11 2006, 03:50 AM
Post #64


Newbie


Group: Members
Posts: 46
Joined: 19-June 05
Member No.: 61066
Country Flag


Hi guys,

Thanx for your PM's. Unfortunately I haven't had the time to answer them or even to participate on this thread lately and it will take some time before I will.

BTW Deploying Vista is gonna be so different and much more convenient. You can add modules/settings to an imagefile (.WIM) with an MMC. Check out the BDD-2007 on connect.
Go to the top of the page
 
+Quote Post
nivlacckw
post Nov 12 2006, 10:39 AM
Post #65


Newbie


Group: Members
Posts: 16
Joined: 7-July 06
Member No.: 100739
Country Flag


QUOTE (Scrapple @ Nov 11 2006, 05:50 PM) *
Hi guys,

Thanx for your PM's. Unfortunately I haven't had the time to answer them or even to participate on this thread lately and it will take some time before I will.

BTW Deploying Vista is gonna be so different and much more convenient. You can add modules/settings to an imagefile (.WIM) with an MMC. Check out the BDD-2007 on connect.


And single HAL for all machine as well.....

This post has been edited by nivlacckw: Nov 13 2006, 05:31 AM
Go to the top of the page
 
+Quote Post
geo411m
post Apr 26 2007, 08:32 AM
Post #66


Junior
*

Group: Members
Posts: 78
Joined: 3-June 05
Member No.: 58816
Country Flag


QUOTE (Scrapple @ Aug 7 2006, 02:42 PM) *
http://rapidshare.de/files/28543938/bootfiles.rar.html

Only use this if you know what you're doing!
I suggest you use them in a virtual pc or test machine... and read my post about dtecthal.inf carefully.

does anyone know where i can find these files?
Go to the top of the page
 
+Quote Post
dkreifus
post Oct 27 2008, 09:24 AM
Post #67


dkreifus
**

Group: Members
Posts: 292
Joined: 30-March 04
Member No.: 16888
Country Flag


Hey all,
I hate to revive an old dead topic, but this is exactly what I am working.

My current setup is that I have a single image that works on all our machines. Lenovo, HP, Dell, desktops or laptops, and for all our different locations.
I use Vista PE 2.0 as a Boot CD for all locations. With 1 menu choice, (location), the Boot CD wipes the machine, connects to a network share, drops the image, and adjusts the HAL before rebooting.
I use a HAL script developed here: http://www.myitforum.com/articles/47/view.asp?id=8997 by Johan Arwidmark.
His newest script is designed for MDT.

Anyway...I recently got a Lenovo T400 that doesnt seem to play nice with any HALs. If I use that machine as my image master, and switch the HAL to ACPI PC from ACPI Multiprocessor PC. When I reboot, it just goes to a black screen, and can't load safe mode.

Here is the code I use to change the HAL in VistaPE.
CODE
'//////////////////////////////////////////////////
'//
'// Script File:
'//
'//   ZTIHalDetect.vbs
'//
'//   This script updates sysprep.inf with correct HAL Type
'//   The Reference (master) computer should be built from
'//   an Advanced ACPI computer
'//
'//   Use this script for WIM images (Imagex, OSD, WDS)
'//
'//////////////////////////////////////////////////

Set oWshShell = CreateObject("WScript.Shell")
Set oFSO = CreateObject("Scripting.FileSystemObject")


' Customize the local sysprep.inf file based on the HAL type

Call UpdateSysprepinf ()

' Done, quit.

WScript.Quit

Sub UpdateSysprepinf ()

   ' Find out the HAL type

    sHalType = oWshShell.RegRead("HKLM\SYSTEM\CurrentControlSet\Enum\Root\ACPI_HAL\0000\HardwareID")

   If sHalType(0) = "acpiapic" Then

    if oWshShell.Environment.item("NUMBER_OF_PROCESSORS") = 1 then

             WriteIni "c:\sysprep\sysprep.inf", "Unattended", "UpdateUPHAL", "ACPIAPIC_UP,%WINDIR%\Inf\Hal.inf"
    else
        writeini "c:\sysprep\sysprep.inf", "Unattended", "UpdateHAL", "ACPIAPIC_MP,%WINDIR%\Inf\Hal.inf"
    
    end if

   ElseIf sHalType(0) = "acpiapic_up" Then

    WriteIni "c:\sysprep\sysprep.inf", "Unattended", "UpdateUPHAL", "ACPIAPIC_UP,%WINDIR%\Inf\Hal.inf"

   ElseIf sHalType(0) = "acpiapic_mp" Then

    writeini "c:\sysprep\sysprep.inf", "Unattended", "UpdateHAL", "ACPIAPIC_MP,%WINDIR%\Inf\Hal.inf"

   End if

   'If sHalType(0) = "acpipic" Then


End Sub

Function ReadIni(file, section, item)

    ReadIni = ""
    file = Trim(file)
    item = Trim(item)
    Set ini = oFSO.OpenTextFile( file, 1, True)

    Do While ini.AtEndOfStream = False
        line = ini.ReadLine
        line = Trim(line)
        If LCase(line) = "[" & LCase(section) & "]" Then
            line = ini.ReadLine
            line = Trim(line)
            Do While Left( line, 1) <> "["
                'If InStr( 1, line, item & "=", 1) = 1 Then
                equalpos = InStr(1, line, "=", 1 )
                If equalpos > 0 Then
                    leftstring = Left(line, equalpos - 1 )
                    leftstring = Trim(leftstring)
                    If LCase(leftstring) = LCase(item) Then
                        ReadIni = Mid( line, equalpos + 1 )
                        ReadIni = Trim(ReadIni)
                        Exit Do
                    End If
                End If

                If ini.AtEndOfStream Then Exit Do
                line = ini.ReadLine
                line = Trim(line)
            Loop
            Exit Do
        End If
    Loop
    ini.Close

End Function

Sub WriteIni( file, section, item, myvalue )

    in_section = False
    section_exists = False
    item_exists = ( ReadIni( file, section, item ) <> "" )
    wrote = False
    file = Trim(file)
    itemtrimmed = Trim(item)
    myvalue = Trim(myvalue)

    temp_ini = oFSO.GetParentFolderName(file) & "\" & oFSO.GetTempName

    Set read_ini = oFSO.OpenTextFile( file, 1, True, TristateFalse )
    Set write_ini = oFSO.CreateTextFile( temp_ini, False)

    While read_ini.AtEndOfStream = False
        line = read_ini.ReadLine
        linetrimmed = Trim(line)
        If wrote = False Then
            If LCase(line) = "[" & LCase(section) & "]" Then
                section_exists = True
                in_section = True
            ElseIf InStr( line, "[" ) = 1 Then
                in_section = False
            End If
        End If

        If in_section Then
            If item_exists = False Then
                write_ini.WriteLine line
                write_ini.WriteLine item & "=" & myvalue
                wrote = True
                in_section = False
            Else
                equalpos = InStr(1, line, "=", 1 )
                If equalpos > 0 Then
                    leftstring = Left(line, equalpos - 1 )
                    leftstring = Trim(leftstring)
                    If LCase(leftstring) = LCase(item) Then
                        write_ini.WriteLine itemtrimmed & "=" & myvalue
                        wrote = True
                        in_section = False
                    End If
                End If
                If Not wrote Then
                    write_ini.WriteLine line
                End If
            End If
        Else
            write_ini.WriteLine line
        End If
    Wend

    If section_exists = False Then ' section doesn't exist
        write_ini.WriteLine
        write_ini.WriteLine "[" & section & "]"
        write_ini.WriteLine itemtrimmed & "=" & myvalue
    End If

    read_ini.Close
    write_ini.Close
        If oFSO.FileExists(file) then
            oFSO.DeleteFile file, True
        End if
        oFSO.CopyFile temp_ini, file, true
    oFSO.DeleteFile temp_ini, True
    
End Sub


Anyone have any ideas to help? I'm stumped!
Go to the top of the page
 
+Quote Post
secotton
post Oct 30 2008, 07:27 PM
Post #68





Group: Members
Posts: 6
Joined: 29-November 03
Member No.: 10166



I'm in the same boat as you - we just got our first T400 in, and the standard image doesn't boot - it just black screens. Nothing happens at all.

I did some quick reading and a few people were saying the new procs in the T400 only like to boot with the ACPI MultiProcessor HAL. One thing that could be done is to force a specific HAL to be used at boot time. This can be done using the KERNEL and HAL switch in the boot.ini. Check out my post at: http://www.msfn.org/board/Increase-Hardwar...359#entry774359
Go to the top of the page
 
+Quote Post
dkreifus
post Oct 30 2008, 08:06 PM
Post #69


dkreifus
**

Group: Members
Posts: 292
Joined: 30-March 04
Member No.: 16888
Country Flag


Actually, I am just going to use my boot disk to detect the processor, and then drop the hal files into the windows\system32 directory.

It seems to work, my final testing starts tomorrow.
Go to the top of the page
 
+Quote Post
secotton
post Oct 31 2008, 06:27 AM
Post #70





Group: Members
Posts: 6
Joined: 29-November 03
Member No.: 10166



That should work as well. I just tested this morning using the method I've used, and it worked wonderfully. dkreifus - I'm just wondering how you go about detecting the processor?
Go to the top of the page
 
+Quote Post
dkreifus
post Oct 31 2008, 08:02 AM
Post #71


dkreifus
**

Group: Members
Posts: 292
Joined: 30-March 04
Member No.: 16888
Country Flag


You can use VB script and WMI. I don't know either of those, so I just used batch line.
I did a check for %PROCESSOR_IDENTIFIER%. Its a XP variable.

if /I "%PROCESSOR_IDENTIFIER%"=="x86 Family 6 Model 23 Stepping 6, GenuineIntel" copy /y X:\Windows\HAL\*.* c:\Windows\System32\

I checked it on the T400, another T400 with different build, and a T500. They all had the same result - x86 Family 6 Model 23 Stepping 6, GenuineIntel - So I will take that a Centrino 2. I've looked for a white paper to outline this, with little success.
I checked other machines, with no luck. So any new hardware that comes in, I'll just do a similar check, if it has HAL issues like this.
Go to the top of the page
 
+Quote Post
sw2000
post Jan 17 2009, 11:47 AM
Post #72





Group: Members
Posts: 6
Joined: 14-March 08
Member No.: 181910
OS: none
Country Flag


I would like to add Johan Arwidmark's latest Z-HalDetect script into my WinPe 2.01 process without having to use MDT2008 or BDD 2007. Currently I deliver our XP image from a USB drive. I'm guessing that after the image is applied and before restarting the PC I need to call a script that will check the HAL type and modify the sysprep file. What modifications are necessary to run this script after imagex has applied the image to the C partition? I would really appreciate any help.

CODE
<job id="ZeroTouchInstallation">
<script language="VBScript" src="ZTIUtility.vbs"/>
<script language="VBScript">

'//////////////////////////////////////////////////
'//
'// Script File:
'//
'// Z-HalDetect_standalone_version.wsf
'//
'// This script updates sysprep.inf with correct HAL Type
'// The Reference (master) image should have an Advanced ACPI HAL type.
'//
'// This version does not require the MDT 2008 environement being present,
'// E.g. can be used with Intel LANDesk or Altiris (Note: ZTIUtility.vbs from
'// MDT 2008 must be added to the same folder)
'//
'// This script assumes the following files are being present in C:\Drivers\UniProcHAL
'// hal.dll (Renamed from halaacpi.dll to hal.dll)
'// ntkrnlpa.exe
'// ntoskrnl.exe
'//
'// Author: Johan Arwidmark
'// URL: http://www.deployvista.com
'//
'// Disclaimer
'// This script is provided "AS IS" without express
'// or implied warranty of any kind.
'//
'//////////////////////////////////////////////////


' Customize the local sysprep.inf file based on the HAL type

Call UpdateSysprepinf ()

' Done, quit.

WScript.Quit

Sub UpdateSysprepinf ()

' Set Sysprep Path

If oFSO.FileExists("C:\sysprep\Sysprep.inf") then

sSysprepInf = "C:\sysprep\Sysprep.inf"
oLogging.CreateEntry "Found sysprep in " & sSysprepInf, LogTypeInfo

Else

oLogging.CreateEntry "Could not locate Sysprep", LogTypeWarning

End if

' Find out the HAL type

sHalType = oShell.RegRead("HKLM\SYSTEM\CurrentControlSet\Enum\Root\ACPI_HAL\0000\HardwareID")

If sHalType(0) = "acpiapic" Then

if oShell.Environment.item("NUMBER_OF_PROCESSORS") = 1 then

WriteIni sSysprepInf, "Unattended", "UpdateUPHAL", "ACPIAPIC_UP,C:\Windows\Inf\Hal.inf"
oLogging.CreateEntry "HAL Type is ACPIAPIC_UP, updating sysprep.inf", LogTypeInfo

Call CopyHalFiles()

else
writeini sSysprepInf, "Unattended", "UpdateHAL", "ACPIAPIC_MP,C:\Windows\Inf\Hal.inf"
oLogging.CreateEntry "HAL Type is ACPIAPIC_MP, updating sysprep.inf", LogTypeInfo

Call CopyHalFiles()

end if

ElseIf sHalType(0) = "acpiapic_up" Then

WriteIni sSysprepInf, "Unattended", "UpdateUPHAL", "ACPIAPIC_UP,C:\Windows\Inf\Hal.inf"
oLogging.CreateEntry "HAL Type is ACPIAPIC_UP, updating sysprep.inf", LogTypeInfo

Call CopyHalFiles()


ElseIf sHalType(0) = "acpiapic_mp" Then

writeini sSysprepInf, "Unattended", "UpdateHAL", "ACPIAPIC_MP,C:\Windows\Inf\Hal.inf"
oLogging.CreateEntry "HAL Type is ACPIAPIC_MP, updating sysprep.inf", LogTypeInfo

Call CopyHalFiles()

Else

oLogging.CreateEntry "HAL Type is ACPIPIC, Do nothing", LogTypeInfo

End if


End Sub

Sub CopyHalFiles()


sSourceFolder = "C:\Drivers\UniProcHAL"
sDestinationFolder = "C:\Windows\System32"

oLogging.CreateEntry "Checking for" & sSourceFolder, LogTypeInfo

If oFSO.FolderExists(sSourceFolder) then

oLogging.CreateEntry "Folder " & sSourceFolder & " Found", LogTypeInfo
oLogging.CreateEntry "Copying HAL files for UniProc and MultiProc Comatibility", LogTypeInfo

For Each sFile In oFSO.GetFolder(sSourceFolder).Files

oFSO.GetFile(sFile).Copy sDestinationFolder & "\" & oFSO.GetFileName(sFile),True
oLogging.CreateEntry "Copying " & oFSO.GetFileName(sFile) & " to " & sDestinationFolder, LogTypeInfo

Next

Else
oLogging.CreateEntry "Error - Folder " & sSourceFolder & " Not Found", LogTypeError
oLogging.CreateEntry "Error - Copying HAL files for UniProc and MultiProc Comatibility Failed ", LogTypeError

CopyHalFiles = Failure
Exit Sub
End If


End Sub


Function ReadIni(file, section, item)

ReadIni = ""
file = Trim(file)
item = Trim(item)
Set ini = oFSO.OpenTextFile( file, 1, True)

Do While ini.AtEndOfStream = False
line = ini.ReadLine
line = Trim(line)
If LCase(line) = "[" & LCase(section) & "]" Then
line = ini.ReadLine
line = Trim(line)
Do While Left( line, 1) <> "["
'If InStr( 1, line, item & "=", 1) = 1 Then
equalpos = InStr(1, line, "=", 1 )
If equalpos > 0 Then
leftstring = Left(line, equalpos - 1 )
leftstring = Trim(leftstring)
If LCase(leftstring) = LCase(item) Then
ReadIni = Mid( line, equalpos + 1 )
ReadIni = Trim(ReadIni)
Exit Do
End If
End If

If ini.AtEndOfStream Then Exit Do
line = ini.ReadLine
line = Trim(line)
Loop
Exit Do
End If
Loop
ini.Close

End Function

Sub WriteIni( file, section, item, myvalue )

in_section = False
section_exists = False
item_exists = ( ReadIni( file, section, item ) <> "" )
wrote = False
file = Trim(file)
itemtrimmed = Trim(item)
myvalue = Trim(myvalue)

temp_ini = oFSO.GetParentFolderName(file) & "\" & oFSO.GetTempName

Set read_ini = oFSO.OpenTextFile( file, 1, True, TristateFalse )
Set write_ini = oFSO.CreateTextFile( temp_ini, False)

While read_ini.AtEndOfStream = False
line = read_ini.ReadLine
linetrimmed = Trim(line)
If wrote = False Then
If LCase(line) = "[" & LCase(section) & "]" Then
section_exists = True
in_section = True
ElseIf InStr( line, "[" ) = 1 Then
in_section = False
End If
End If

If in_section Then
If item_exists = False Then
write_ini.WriteLine line
write_ini.WriteLine item & "=" & myvalue
wrote = True
in_section = False
Else
equalpos = InStr(1, line, "=", 1 )
If equalpos > 0 Then
leftstring = Left(line, equalpos - 1 )
leftstring = Trim(leftstring)
If LCase(leftstring) = LCase(item) Then
write_ini.WriteLine itemtrimmed & "=" & myvalue
wrote = True
in_section = False
End If
End If
If Not wrote Then
write_ini.WriteLine line
End If
End If
Else
write_ini.WriteLine line
End If
Wend

If section_exists = False Then ' section doesn't exist
write_ini.WriteLine
write_ini.WriteLine "[" & section & "]"
write_ini.WriteLine itemtrimmed & "=" & myvalue
End If

read_ini.Close
write_ini.Close
If oFSO.FileExists(file) then
oFSO.DeleteFile file, True
End if
oFSO.CopyFile temp_ini, file, true
oFSO.DeleteFile temp_ini, True

End Sub

</script>
</job>
Go to the top of the page
 
+Quote Post
chew118
post Jan 22 2009, 12:33 AM
Post #73





Group: Members
Posts: 2
Joined: 21-January 09
Member No.: 228609
OS: Vista Home Premium x86
Country Flag


Hi

I am new to this forum. Found this thread after google on MSDINST.exe. I have found some steps on the net but somehow wasnt success to inject mass storage driver into an XP image.

I need some help and will write down a simple step of my testing with the following example.

1) I have a new laptop HP NC6400
2) I load it with Lenovo T61 XP image with its own set of drivers
3) I boot it up and it is fine. I check msinfo32 and got a listed of incompatible drivers and one of them is Mass Storage Drivers.
4) So following the step I reboot the machine and boot up with WinPE
5) Copy all related INF to C:\windows\INF and other SYS and CAT or PNF to C:\windows\systems32\drivers\
6) Create sysprep.inf file with the PNP ID = the location of the INF / SYS file
6) Run MSDINST.exe sysprep.inf c:\windows
7) It says successful
8) Reboot the machine as normal and load Windows.
9) Check on msinfo32 I still found Mass Storage Driver is still a problem component.

Anything I do wrong. Previous posting in this forum mentioned something about changing the registry. which I have no idea what is all that about.

Appreciate your help
Go to the top of the page
 
+Quote Post

Google Frontpage Forums Unattended CD/DVD Guide

4 Pages V  « < 2 3 4
Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 




Lo-Fi Version Time is now: 24th November 2009 - 04:27 PM
All trademarks mentioned on this page are the property of their respective owners
MSFN is not affiliated with Microsoft
Copyright © 2001-2009 msfn.org
Privacy Policy