Jump to content


  • Posts

  • Joined

  • Last visited

  • Donations

  • Country


Everything posted by jachin

  1. Some more explaination would be good. I'm am looking at building an applications that can be used in a corporate environment by those who don't know all that much about unattended installs. As such I'd like to hide the complexity of scripting and batch files behind and intelligent GUI that can do all the hard work. The best way to do this would be with a .net app. Anything you can do in WSH/CMD can be done in C# and information about different builds can be stored in an Access or MSDE Database. Have a look at the image sectino of the Microsoft Solution Accelerator for Business Desktop Deployment @ http://www.microsoft.com/technet/desktopde...ddoverview.mspx It has a HTA that acts as a GUI and stores build information in a series of XML data files. It also has some smarts built in do installl line-of-business apps after installing windows with the ability to cope with reboots and dynamic application addition/removal. Microsoft have done a lot of nice work in this area, I think with very little effort you could write a very useful/powerful application to manage desktop deployment for corporate users.
  2. Any chance of some screenies or source code or some hints at what you are doing.
  3. I use BartPE in Virtual PC and Virtual Server on a weekly basis without any trouble at all. It is slightly slower than a physical machine but that is to be expected.
  4. Try this... GetMAC.vbs On Error Resume Next Const wbemFlagReturnImmediately = &h10 Const wbemFlagForwardOnly = &h20 Const ForReading = 1 Dim fs Dim sh Dim nw Dim strMAC, strComp, strPID Set sh = CreateObject("WScript.Shell") Set fs = CreateObject("Scripting.FileSystemObject") Set nw = CreateObject("WScript.Network") strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * From Win32_NetworkAdapter " _ & "Where NetConnectionID = " & _ "'Local Area Connection'", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly) For Each objItem in colItems strMACAddress = objItem.MACAddress Next 'Open our text file and get the machine details Set objFile = fs.OpenTextFile("Machines.txt", ForReading, false) Do While objFile.AtEndOfStream <> True If inStr(objFile.ReadLine, strMACAddress) Then colDetails = Split(objFile.ReadLine, ",") writeini "sysprep.ini", "UserData", "ComputerName", colDetails(1) writeini "sysprep.ini", "UserData", "ProductKey", colDetails(2) Else objFile.Skipline End If Loop objFile.Close ' READINI ( file, section, item ) ' file = path and name of ini file ' section = [Section] must not be in brackets ' item = the variable to read Function ReadIni(file, section, item) ReadIni = "" file = Trim(file) item = Trim(item) Set ini = fs.OpenTextFile( file, 1, False) 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 ' WRITEINI ( file, section, item, myvalue ) ' file = path and name of ini file ' section = [Section] must not be in brackets ' item = the variable to write; ' myvalue = the myvalue to assign to the item. ' 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 = sh.ExpandEnvironmentStrings("%TEMP%\") & fs.GetTempName Set read_ini = fs.OpenTextFile( file, 1, True, TristateFalse ) Set write_ini = fs.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 fs.FileExists(file) then fs.DeleteFile file, True End if fs.CopyFile temp_ini, file, true fs.DeleteFile temp_ini, True End Sub The Machines.txt looks like this: Machines.txt 00:0F:1F:B4:88:EF,Machine-09,5555-XXXX-66666-77777-XXXX 00:0F:1F:B4:88:E8,Machine-04,5555-XXXX-66666-77777-XXXX
  5. Hi all, I'm starting a project over the next few weeks to develop a program similar in nature to the Microsoft BDD Enterprise Edition. My plan is to develop a system that allows multiple builds of unattended installs to be managed in the one applications. From source file locations and unattend.txt file settings to post install applications as well as bug tracking and release management. Unfortunately for me if i was to do all the work myself it would be out of data by the time it was finished. So I guess you'd call this recruitment. Anyone who is interested in helping out the skills i need are .net programmers and scripters. If you'd like to help please send me a message and we will discuss further.
  6. I didn't know you could use a PIX with WebSense. How does that work?
  7. I've been looking into MS ISA server lately and I have discovered that it doesn't have any out of the box mechanism to limit or block objectionable content. It appears you have to go and spend more money on a 3rd party add-on. Does this seem 1. really expensive and 2. really stupid to anyone else.
  8. I've tried what you suggested but now get a prompt asking if i want to Install/Update. I've tried doing something like this C:\temp\English\WINNT\i386\acu.exe /U /D:No but I still get a prompt. I'd like to get this totally unattended so that i can deploy it via sms, any help would be greatly appreciated.
  9. How do you do an unattended install of the client??? Mine keeps asking for settings even when i specify an unattend.txt file.
  10. Thanks lads, stay tunned as i have a very cool new method for unattended os install that you all may be interested in.
  11. Your challenge should you choose to accept it is to find a definative guide to the stages of Windows XP setup. I mean details about t-13, cmdlines, textmode, gui mode, etc. I have been searching all over the place and can't really find a definative guide on this. I'm interested in exactly what can and can't be done durring these setup phases. Thanks all!
  12. Interesting....So you have a build directory for each model of PC you have?? I'd be very interested as to how you tackle this in your organisation. Do you have different driver directories for each model? Do you use a common winnt.sif file. How do you build your $oem$ directory. Basically we use a scripted network install at the moment that builds an SOE completely automated. Then we image this and deploy it to computers. The process will be similar with the new approach. Automatically install the OS from the network then hand over to SMS, which will install all the apps. Then image this and deploy. There seems to be so many different method of deploying the Windows OS that the hard part is select a method and sticking with it. I appreciate all the input, hopefully soon we will start work on this project and your input is saving us a lot of time.
  13. Interesting...So you just install xp on a computer and then image it. Then you can use that image on different PC's with differenct hardware as long as you rung sysprep -mini??
  14. I sort of left this for a while. What I am trying to get around is the process of manuall building an SOE each time some id*** buys a new computer in our organisation. Application install is not an issue as we will either use scripting or SMS to install all the apps. We just need a base OS with the SMS client and then we can let SMS do it all. This is where the problem comes in. Each time a new model comes in we currently have to make a whole new unattended setup. These are the things that change: -winnt.sif (for PnP Drivers) -Drivers in $OEM$ -Post installation of drivers (PnPDriverPath doesn't always work) -Model specific post install tasks I've heard some people say that as long as the harward is close to the same you can use disk imaging and run sysprep....is this true? I know you have all suggested very valid methods for building SOE/MOE environments but non that really tackle the problem of varying hardware. I'm seriously considering making a small .net the will automatically create the necessary dir in the $oem$ folder and configure everything that we need. What do you guys think about this?
  15. Manual Tasks: -Model specific settings in the Unattend.ini/winnt.sif -Drivers for each model -Post installation task -OS customization ie. is it win2k or xp That is all i can think of atm. I've almost convinced work to let me do RIS, how does that actually work?
  16. Unfortunately we are not allowed to persue PXE based solutions. We have about 1800 PC so ghost seems to be the best way to address this number of PC's. I think we will make our own. We have been playing with the idea of writing a small .net app to automate a lot of the manual task.
  17. What we currently do is build the entire OS and appz via a long series of batch scripts and then ghost the machines for deployment. We have probably a dozen or so models and this is where the problem comes in. We can quite easily develop an unattended install for a specific model but we don't want to have to do it all over again every time we get a new model of PC. So we need an unattended management system. Most would argue the SMS is the way to go for this and we agree, however SMS still needs a base operating system. At the very least we need to install the OS and apply any tweaks before installing an SMS client and kicking app installs off. There must be a method of organising Unattend.ini files, drivers, model specific things in such a way that each time a new build comes along you just add the needed drivers and model specific files to a dir structure and then kick off a common installer. If you have a look at Business Desktop Deployment article I linked to you will get an idea of what I mean. This doesn't however exactly meet our requirements. I'm just wondering exactly what others do with a varying hardware fleet.
  18. Hi all, I've been a member of this forum for a while now but haven't really made any posts......here we go. I've been given the task to develop an SOE for the organisation I work for. I've had a look at their old method and it is a mess. It used a dos floopy and a LOT of batch scripts to install win2k and all the apps....not nice. Has anyone seen Business Desktop Deployment at microsoft?? It is very interesting. Uses a HTA to automate a lot of stuff. I'm just wondering how other organisations have approached the SOE in there organisation. How did you build a method of coping with a large number of pc models? Did you use sms? What about WinPE? I've done many Windows XP unattends but this isn't really suitable as we have quite a few different hardware platforms and software requirements. What does everyone think?

  • Create New...