Showing posts with label Deployment Server. Show all posts
Showing posts with label Deployment Server. Show all posts

Wednesday, 3 August 2011

PXE Boot Option Removal

If you ever wanted to remove a boot option from the PXE configuration utility that was flagged in use then you know it can be quite a pain figuring out what jobs are referencing the boot option and changing them. I have even had a couple occasions where the boot options were changed but I still couldn't remove the old PXE option.

So do you just leave it and act like it doesn't exist?

No I say, to the database we must go.

A full guide on this matter can be found here

http://www.symantec.com/connect/blogs/pxe-boot-option-removal

Tuesday, 8 March 2011

Symantec Altiris ITMS 7.1 released

The latest version of Symantec Altiris ITMS 7.1 has been officially released !

Monday, 20 April 2009

Computer import function isn't working after upgrading to DS 6.9 SP2

After upgrading  the computer import function

Upgrading from DS 6.9 SP1 MP1 to DS 6.9 SP2 apparently breaks the Import Computers function.

clip_image002

Everything seems to work but at the end you get the following message:"An unhandled win32 exception occurred in Express.exe" and the DS console shuts down without importing the computers.

A workaround for this issue has been found by "Stefan Cleuren"

Step 1: File > New Computer

clip_image002[6]

Step 2: Now you get the option of importing once more

clip_image002[8]

Step 3 : Select your import file

clip_image002[10]

Step : Done !

Friday, 20 March 2009

What Primary Lookup Key should I use with Deployment Server?

If you choose a Primary Lookup Key that is identical on two or more of your computers or if that key is missing on any of your computers, Deployment Server will not be able to identify them. To identify which Primary Lookup Key is best, open SQL Query Analyzer, select to the Deployment Server database, and run the the query against the Deployment Server database. The result will tell you which keys have duplicate computers and which ones don't. It will also show you which keys have duplicates.

DECLARE @sn INT SET @sn=(SELECT COUNT(1) FROM (SELECT T.serial_num AS [Serial Number], T.duplicates AS [Duplicates], C.computer_id AS [Computer ID], C.name AS [Console Name], C.computer_name AS [Computer Name] FROM computer C, (SELECT COUNT(1) AS duplicates, serial_num FROM computer GROUP BY serial_num HAVING COUNT(1) > 1) T WHERE C.serial_num = T.serial_num) T )
DECLARE @at INT SET @at=(SELECT COUNT(1) FROM (SELECT T.asset_tag AS [Asset Tag], T.duplicates AS [Duplicates], C.computer_id AS [Computer ID], C.name AS [Console Name], C.computer_name AS [Computer Name] FROM computer C, (SELECT COUNT(1) AS duplicates, asset_tag FROM computer GROUP BY asset_tag HAVING COUNT(1) > 1) T WHERE C.asset_tag = T.asset_tag) T )
DECLARE @uuid INT SET @uuid=(SELECT COUNT(1) FROM (SELECT T.uuid AS [UUID], T.duplicates AS [Duplicates], C.computer_id AS [Computer ID], C.name AS [Console Name], C.computer_name AS [Computer Name] FROM computer C, (SELECT COUNT(1) AS duplicates, uuid FROM computer GROUP BY uuid HAVING COUNT(1) > 1) T WHERE C.uuid = T.uuid) T )
DECLARE @mac INT SET @mac=(SELECT COUNT(1) FROM (SELECT T.mac_addr AS [MAC Address], T.duplicates AS [Duplicates], N.computer_id AS [Computer ID], C.name AS [Console Name], C.computer_name AS [Computer Name] FROM nics N, (SELECT COUNT(1) AS duplicates, mac_addr FROM nics GROUP BY mac_addr HAVING COUNT(1) > 1) T, computer C WHERE N.mac_addr = T.mac_addr AND C.computer_id = N.computer_id) T )

IF @sn = 0
  SELECT 'Serial Number OK' AS Message, 'You may use Serial Number as your Primary Lookup Key' AS Details
ELSE
  SELECT 'You have computers with duplicate Serial Numbers' AS Warning, 'Do not use Serial Number as your Primary Lookup Key' AS Details
IF @at = 0
  SELECT 'Asset Tag OK' AS Message, 'You may use Asset Tag as your Primary Lookup Key' AS Details
ELSE
  SELECT 'You have computers with duplicate Asset Tags' AS Warning, 'Do not use Asset Tag as your Primary Lookup Key' AS Details
IF @uuid = 0
  SELECT 'UUID OK' AS Message, 'You may use UUID as your Primary Lookup Key' AS Details
ELSE
  SELECT 'You have computers with duplicate UUIDs' AS Warning, 'Do not use UUID as your Primary Lookup Key' AS Details
IF @mac = 0
  SELECT 'MAC Address OK' AS Message, 'You may use MAC Address as your Primary Lookup Key' AS Details
ELSE
  SELECT 'You have computers with duplicate MAC Addresses' AS Warning, 'Do not use MAC Address as your Primary Lookup Key' AS Details

SELECT T.serial_num AS [Serial Number], T.duplicates AS [Duplicates], C.computer_id AS [Computer ID], C.name AS [Console Name], C.computer_name AS [Computer Name] FROM computer C, (SELECT COUNT(1) AS duplicates, serial_num FROM computer GROUP BY serial_num HAVING COUNT(1) > 1) T WHERE C.serial_num = T.serial_num
SELECT T.asset_tag AS [Asset Tag], T.duplicates AS [Duplicates], C.computer_id AS [Computer ID], C.name AS [Console Name], C.computer_name AS [Computer Name] FROM computer C, (SELECT COUNT(1) AS duplicates, asset_tag FROM computer GROUP BY asset_tag HAVING COUNT(1) > 1) T WHERE C.asset_tag = T.asset_tag
SELECT T.uuid AS [UUID], T.duplicates AS [Duplicates], C.computer_id AS [Computer ID], C.name AS [Console Name], C.computer_name AS [Computer Name] FROM computer C, (SELECT COUNT(1) AS duplicates, uuid FROM computer GROUP BY uuid HAVING COUNT(1) > 1) T WHERE C.uuid = T.uuid
SELECT T.mac_addr AS [MAC Address], T.duplicates AS [Duplicates], N.computer_id AS [Computer ID], C.name AS [Console Name], C.computer_name AS [Computer Name] FROM nics N, (SELECT COUNT(1) AS duplicates, mac_addr FROM nics GROUP BY mac_addr HAVING COUNT(1) > 1) T, computer C WHERE N.mac_addr = T.mac_addr AND C.computer_id = N.computer_id

Monday, 26 January 2009

Windows Boot Manager error after laying down a 2008 r2 or Windows 7 image

Article ID: 45191

Problem/Symptoms

Windows Boot Manager gives the error "winload.exe 0xc000000f " after placing down a 2008 r2 or Windows 7 image.

Resolution

By creating a run script task that runs before capturing the image while in windows, this error should be resolved.

Place the following script into that run script task.

REM Execute BCDEdit and prepare for imaging.
REM Find the system root and append system32 and BCDedit
%SYSTEMROOT%/system32/Bcdedit.exe -set {bootmgr} device BOOT
%SYSTEMROOT%/system32/Bcdedit.exe -set {default} device BOOT
%SYSTEMROOT%/system32/Bcdedit.exe -set {default} osdevice BOOT
shutdown /r

Friday, 16 January 2009

How can I force my clients (AClient) to check in to the Altiris Deployment Solution server (or refresh its connection)?

Article ID: 34227

Problem/Symptoms

AClients may show as active in the Deployment Server console but are unresponsive. They may also show as inactive and need to "wake up" to reconnect to the Deployment Server console.

Resolution

Support has created an AClient Tool or AClient Refresh Tool that sends a modified Wake on LAN packet to AClients connected to the Deployment Server to have them check back in. Some customers have found this more useful than the built-in method, but it should be noted that this is not a supported product at Symantec. This is offered as-is and is a very rough tool.  It is attached to this KB.

Instructions
  1. Download the tool https://kb.altiris.com/utility/getfile.asp?rid=2557&aid=34227
  2. The best place to save and run it is on the actual Deployment Server. These instructions will assume as much.
  3. Launch the tool on the Deployment Solution server by double-clicking the executable. No installation is necessary.
  4. Select Load From Database at the top.
    1. The page this loads is to select from the Deployment Solution eXpress database those computers you wish to "wake up".
    2. There are several options that will not be discussed in this article. However, some options include selecting only those computers in an IP Range (via the IP address), and computers that match certain criteria like the Computer Name, if you happen to know one or two computers specifically you want to contact.
  5. Select Use ODBC and then click Connect at the right. When you see your systems populate the viewing area, it has completed.
  6. Select Use Table. Type in a name in the File Name field, and click Save. This saves your selected records out to CSV for later.
  7. Close the Load Database window.
  8. Select File > Load from the top-left of the main product window. Open the CSV file created in step 5.
    1. An additional option is to select the IP Address at the top-left of the main window while performing this step. If you have issues with DSN or WINS, you may find this beneficial.
  9. Click Send Wake on LAN. In the lower window, you will see the process as well as whether or not it succeeds for each client. For those that fail, you may need to do remediation such as determining why it is not turned on or otherwise unable to connect to Deployment Solution.

Grtz,

Gert

ps. Feel free to leave a comment if you find this information helpfull and don't forget to click on an AD ;-) , THX once more

How to reconnect inactive clients to Altiris Deployment Server

rticle ID: 35439

There are a few methods of getting client computers reconnected up to the Deployment Server. Usually after the server has been down for a while and then it starts up, it takes clients a while to reconnect. This is because at first they attempt to reconnect at frequent intervals, but they add longer and longer timers after they receive no response. If these AClients receive a directed Wake on LAN packet from the Deployment Server on UDP 402, they will attempt to immediately reconnect to the Deployment Server.

There is a utility that can be found in article 34227, "How can I force my clients (AClient) to check in to the Deployment Solution server (or refresh its connection)?" This utility can send out a Wake on LAN packet out to AClients and will cause them to reconnect to the Deployment Server.

Sometimes a wake up packet will not cause a client computer to reconnect to the Deployment Server. It could be that the AClient process is not running (the service is stopped), the process could be in a hung state, or in some other state that is not listening to wake ups. In this case, the client computer needs to have the AClient.exe process started or restarted. Doing this on each inactive client can be very time consuming, however, so a process has been made to help automate this.

The VBScript file can be found on https://kb.altiris.com/utility/getfile.asp?rid=2865&aid=35439  and should be started from the Deployment Server to restart AClients on inactive client computers. This script queries the database (using the same ODBC connection that the Win32 console uses) and gets a list of all inactive client computers. It then attempts to connect remotely to the services of each of those computers and stops and restarts the "Altiris Client Service," that is, the AClient.exe process. With each attempt, it also logs to a text file if it was successfull or not with each client computer. This can take a long time if many client computers are disconnected from the network or powered off because of the timeout period for each client.

Grtz,

Gert

ps. Feel free to leave a comment if you find this information helpfull and don't forget to click on an AD ;-) , THX once more

Thursday, 4 December 2008

Altiris Notification Server (NS) reports for Altiris Deployment Server (DS)

Following links will give you some NS reports for DS

http://www.symantec.com/community/download/4659/ds-reporting-ns-6-pack-reports

Reports:

Shows a listing of all DS jobs that are currently (actively) deploying. 
Count of all computers with pending DS jobs. Right-click option will list the jobs pending for the selected computer. 
List of scheduled DS jobs that have been scheduled for more than X amount of days, with 30 as the default. 
List of all scheduled DS jobs, but you have the option of entering full/partial computer name and DS Job name to filter your results. The default is a full list of all scheduled DS jobs for all computers. 
Like report #2, but this is for Completed jobs, rather than pending. 
Like report #4, but this is for Completed Jobs, rather than pending. 

http://www.symantec.com/community/article/6349/reporting-deployment-solution-using-notification-server

Reports:

Report to give you jobs that are scheduled in the future for DS 
Report to find all of your WOL proxies 
Grtz,

Gert

Altiris Database Structure (Schema) of NS or any other database

Article ID: 1485

These are SQL scripts to show and capture the Database structure of the Notification Server or any other database.



-- SQL Script to capture the database table structure
select
[table_name] as [Table Name],
[column_name] as [Column Name],
case [data_type]
when 'varchar' then [data_type] + '(' + cast([character_maximum_length] as varchar) + ')'
when 'nvarchar' then [data_type] + '(' + cast([character_maximum_length] as nvarchar) + ')'
else [data_type]
end as [Data Type],
case [is_nullable]
when 'No' then 'No'
else 'Yes'
end as [Nullable],
isnull([column_default], '') as [Default Value],
isnull(cast([numeric_precision] as nvarchar),'') as [Precision],
isnull(cast([numeric_precision_radix] as nvarchar),'') as [Precision Radix],
isnull([collation_name],'') as [Collation Name]
from information_schema.[columns]
where [table_catalog] like '%'
and [table_schema] like 'dbo'
and [table_name] like '%'
and [column_name] like '%'
and [data_type] like '%'
order by [table_name], [ordinal_position]



-- SQL Script to capture the names of the database objects
select distinct
case [xtype]
when 'C' then 'CHECK constraint'
when 'D' then 'DEFAULT constraint'
when 'F' then 'FOREIGN KEY constraint'
when 'L' then 'Log'
when 'FN' then 'Scalar function'
when 'IF' then 'Inlined table-function'
when 'P' then 'Stored procedure'
when 'PK' then 'PRIMARY KEY constraint'
when 'RF' then 'Replication filter stored procedure'
when 'S' then 'SYSTEM table'
when 'TF' then 'Table function'
when 'TR' then 'Trigger'
when 'U' then 'User table'
when 'UQ' then 'UNIQUE constraint'
when 'V' then 'View'
when 'X' then 'Extended stored procedure'
end as [xtype],
[name] as [Name]
from [dbo].[sysobjects]
where [xtype] in ('C', 'D', 'FN','P', 'PK', 'TR', 'U', 'V')
and [name] like '%'
order by [xtype], [name]



-- SQL Script to capture the Names and Definitions of Views
select
[table_name] as [View Name],
[view_definition] as [View Definition]
from information_schema.[views]
where [table_name] like '%'
order by [table_name]



-- SQL Script to capture the Names and Definitions of functions and procedures
select
[routine_type] as [Routine Type],
[routine_name] as [Routine Name],
[routine_definition] as [Routine Definition]
from information_schema.[routines]
where [routine_type] in ('FUNCTION','PROCEDURE')
and [routine_name] like '%'
order by [routine_name]

-- SQL Script to capture the Names and Parameters of functions and procedures
select

[specific_name] as [Routine Name],
[parameter_name] as [Parameter Name],
case [data_type]
when 'varchar' then [data_type] + '(' + cast([character_maximum_length] as varchar) + ')'
when 'nvarchar' then [data_type] + '(' + cast([character_maximum_length] as nvarchar) + ')'
else [data_type]
end as [Data Type]
from information_schema.[parameters]
where [specific_name] like '%'
order by [specific_name], [ordinal_position]



-- SQL Script to capture the GUID and Table names
-- This could help your SQL joins on what table have what guids.
select
[column_name] as [Guid Name],
[table_name] as [Table Name],
case [is_nullable]
when 'YES' then 'Yes'
else 'No'
end as [Nullable],
isnull([column_default], '') as [Default Value]
from information_schema.[columns]
where [table_schema] = 'dbo'
and [data_type] like 'uniqueidentifier'
order by [column_name], [table_name]



-- To look at the table or view definition

sp_help TableName
sp_help ViewName

sp_columns TableName

-- To look at what indexes are in a table

sp_helpindex TableName

-- To look at the definition of a stored procedure or a view

sp_helptext StoredProcedureName

sp_helptext ViewName

-- To look at the database object (tables, views, stored procedures) dependencies

sp_depends DatabaseObject



Notes:

  • Run these SQL scripts in Query Analyzer and save the result to a CSV file for study.
  • You will need to select the database (Altiris, Altiris_Incidents, express …) in Query Analyzer you wish to capture the schema.
  • In the where clause of the scripts, I left variables to filter (table_catalog, table_schema, table_name, column_name, data_type ...) and narrow your results.
  • These are SQL scripts will show you any database structure (Schema), but will not show the relationships between the tables (Data Dictionary).
  • The best joins for performance reasons will be on the columns that are indexed. Most table joins will be withuniqueidentifier (GUIDs) like (_ResourceGuid, Guid, ProductGuid, _KeyHash ...) or varchar/nvarchar (strings); so you may wish to filter on the data_type to see these.
  • To look at a text output (Ctrl + T) or a table output (Ctrl + D) use the control key combinations. Then viewing the output from the stored procedure sp_helptext, it is good to change the output to text.
  • The attached files (DatabaseTableRelationByGuid.txt, DatabaseTableRelationByString.txt) are SQL scripts that will show you the possible relations between tables and columns depending on the data that is in you database. These SQL scripts can be slow, due to the use of nested cursors in the script. There are variables in the scripts to filter /narrow you results to a set of tables.

Deploying a HP 6930 with Altiris Deployment Server DS 6.8

A howto was described in following thread

http://altirigos.com/vbulletin/imaging-bootworks-rdeploy/10161-hp-6930-a.html

Download the Intel Storage Matrix Softpaq from the HP site and change the included txtoem file.

Change the scsi= line from IaStor=*** to Iaachi=**
You need to know the version of SATA the 6930p needs to reference when booting. On our version we changed it to ICHM9_E/M (paraphrasing). If you have a clean install of XP with all the drivers loaded from scratch, you can find out what file this is.
Once found and changed int he TXTOEM, you need to re-create your PXE boot file, and select the correct NIC and the SATA files. I do this by dumping both the NIC and SATA drivers into one folder and selecting the 'Have Disk' option during NIC selection.
Changing the TXTOEM file is the hardest part of this process, but not impossible.
Keep in mind that while you may be able to boot the machine to WinPE, deploying an image with this drier requires re-sysprepping your base image to account for these new mass storage drivers. If not, the imaged computer WILL blue screen

Wednesday, 3 December 2008

Altiris : Remotely execute an Inventory Task on a client via Deployment Server (DS)

Got this from a thread on http://www.altirigos.com/

Create a VB script according to this specification

set objAltirisAgent = Createobject("Altiris.AeXNSClient")set objSWDAgent = objAltirisAgent.ClientPolicyMgr.ClientAgent("Altiris.SWD")
objSWDAgent.RunAdvertisement "{Guid of the inventory task to run}", 1
objSWDAgent.RunAdvertisement "{Guid of the inventory task to run}", 1

grtz,

Gert

Altiris : Unable to add drivers to WinPE using the Have Disk button in DS 6.9 SP1

Problem/Symptoms

Launch BDC WinPE wizard and add a driver using the "Have Disk" button. After adding the driver browse out to the CUSTOM folder. You'll see that a explanatory text file was created, but no driver files were copied.

Resolution

Run the attached Hotfix Installer (DS_BootWiz_Hotfix_6_9_357.exe) on your Deployment Server to resolve this issue.

https://kb.altiris.com/article.asp?article=44108&p=1

Tuesday, 2 December 2008

Altiris AClient vs DAgent on Xp and Deployment Server (DS) 6.9 SP1

Dagent which comes with DS 6.9 SP1 will not replace the AClient if this one is already installed on a workstation. When you upgrade to DS 6.9 SP1 , the already running AClient is upgraded to the latest version (6.9.355).

DAgent has limited support in remote control mode (as described in the release notes) and some disconnects to the DS server are occuring when using the DAgent on an XP machine

Altiris : Adding Dell Latitude E6400 NIC driver to WinPe 2.1

Following drivers can be added to the WinPe 2.1 boot image, via boot disk creator, for proper operation

HP 6930p Nic

How would you call this .... ? interoperatibility ? It works !

Monday, 1 December 2008

Altiris : TFTP is slow on download of boot disks or PE

Problem/Symptoms

TFTP takes 25 minutes to download, when it should be taking 2–3 minutes max.



Environment

Deployment Solution 6.8, 6.9



Cause

TFTP Logging under the PXE Configuration Utility is set to All.



Resolution

For normal use, TFTP logs should be set to Off or On with Errors. If it is not, then TFTP will log all traffic including packet response times and acknowledgements. This will cause slowdowns on TFTP boot disk downloads and WinPE ISO downloads.

To check this, go to the PXE Configuration Utility under Tools > PXE Configuration. Click on the Data Logs tab and either unselect the PXE MTFTP Logs or move the level to errors. Click Save or OK and check your TFTP traffic.

Compressing the WinPe PXE boot image

The next way to speed up the TFTP download time of your PXE image is to reduce its size. This can be achieved by compressing it -a tip which came from Mike Gibson, an Altiris Consultant, at the UK Altiris Forum meeting last year. The KB article however suffers from a lack in background information which makes it very difficult to troubleshoot in the event that your image compression doesn't work. So, consider that follows as KB22971 on steriods... and my hope is that this extra information will provide you a better starting point that I had. ;-)

The procedure for compressing the ISO image in broad terms is as follows,

  1. Install the Windows Embedded development Tools. This will give us the capability of using SDI technology (System Deployment Image) to convert our WinPE ISO image to the SDI format. This format is a portable XP Embedded file format, and it natively supports NTFS compression. It is this compression feature which we will make use of to bring our WinPE download size down.
  2. Convert the ISO image to an SDI file using the script attached to this article called called MakeSDI.bat. This is a modified version of the one downloadable directly from the Altiris KB.

    Substitute the existing WinPE boot option ISO image with the SDI file on the PXE server, adjusting the boot files accordingly.

  3. Give the PXE server a kick to resync

Sounds easy huh? Hmm... Lets give it a go...

Install the Windows XP SP1 Embedded Tools from Microsoft

  1. Download the web installer here.
  2. Run the Web Install program (XPEDDI.exe) and deselect all the products in theGUI with the exception of the topmost item, the Windows XP Embedded SP1 tools, and click 'Download Now'.

    Click to view.

  3. Once the tools are downloaded, click 'OK' to exit (you may receive a warning that disk 2 of setup cannot be found. I clicked 'OK' here, and everything seemed to work fine!)
  4. On the Windows Embedded setup screen, select Tools Setup to start installing the XP Embedded Studio tools. This suite of tools include the SDI utilities needed to create our compressed WinPE virtual disk image.

    Click to view.

  5. Click through the InstallShield wizard, leaving the defaults as is. The product key you'll find located in the text file C:\Program Files\Windows Embedded\Installer\DISK1\productkey.txt.

Create your WinPE source folder

Copy the contents of your WinPE ISO image to c:\WinPESrc. To remind yourself where the ISO is, open up the PXE Configuration utility and take a look at the WinPE boot options properties. The location of the ISO image is declared in the 'Final Location on PXE Server' text box, and should look similar to..\PXE\Images\MenuOption131.

The WinPE files can be grabbed from this ISO image in several ways,

  • Burn the ISO image to a CD, and then copy the contents to the folder
  • Use a Virtual CD-ROM application like Deamon Tools or Microsoft's XPVirtual CDROM Control Panel Applet to mount the ISO image.
  • Use a vitualisation product like VMWare Player or Workstation to mount the ISO image as a virtual CDROM Drive (yes, its overkill but if you already have VMWare installed and use if for development then this might actually be the fastest way!)
  • Use a disk imaging suite which supports ISO images like WinImage to explore and copy the contents off the ISO image.

Download and Run MakeSDI.bat

Download MakeSDI.bat from this article. Don't use the Altiris KB article download as it has a bug in the defrag commands and mine allows for a slightly bigger SDI file of 102MB rather than 94MB (I found the 94MB default to be a touch too small for my WinPE image).

The purpose of the MakeSDI batch file is to copy our WinPE source files onto a virtual disk represented by our SDI file. The syntax of MakeSDI.bat is as follows,

MakeSDI.bat WinPE-SOURCE TARGET-SDI UNUSED-DRV-LETTER


On my system, the X:\ is unused so I'm going to run this as



MakeSDI.bat C:\WinPESrc C:\WinPE.SDI X:


This script is does not (sadly) completely automate the process of creating your SDI file. There are three stages,




  1. Create the target SDI file, WinPE.SDI


    When the script runs, it will first use the SDI tools to create your SDI image fileC:\WinPE.SDI. This process creates a virtual disk, and sets its size to 103MB.


  2. Load the SDI Image as a virtual disk


    After the SDI file is created, the script pauses. In order to copy files to the SDI virtual disk image, we have to mount the image using the SDI Loader application. This is a manual process, and after pressing any key, the application loads. Click 'Add Disk' to browse to C:\WinPE.SDI. Once selected, click 'Done' to finish.



    Click to view.




  3. Clean, partition and mount the SDI Image


    After loading the SDI image as a virtual disk, we need to execute the following commands in DiskPart when it loads,


    1. list disk


      In order to point DiskPart to the correct disk for our disk operations, we must select the correct disk to operate on. This command reveals the currently attached disks. Our disk is the one listed as being 102MB, and should have the highest index (as it was the most recent disk to be attached to the system).


    2. select disk #


      Where # is the disk index discovered in the previous step. In most cases, the SDI disk will be disk 1, with disk 0 being your actual system harddisk.


    3. clean


      After selecting our SDI disk, we should ensure its completely blank. The clean command ensures the selected disk's partition table is wiped and ready for our next operation.


    4. create partition primary


      This command is quite remarkable in its clarity - this will create a primary partition on the disk. By default it will occupy the entire virtual space (minus a small overhead for the MBR, hence why I create the disk image 1MB more than the partition I want to write to it).


    5. assign letter=X


      This command assigns our newly made partition the drive letter X. At this point you should be able to view it in My Computer as an unformatted RAW filesystem.




  4. Format and File Copy


    Once you've completed the DiskPart, the X:\ drive is formatted with the NTFS filesystem (compression enabled) and the WinPE files are copied across. Viewing the X:\ drive in explorer should show this drive letter now as blue -reflecting the fact its been formatted as a compressed NTFS drive.


  5. Detach Virtual Disk


    After the files are copied across, the Storage Device Image Loader will be called again, this time to allow you to detach the virtual disk. Select your SDI file in the window, and click 'Remove Disk'.

    Notice this file is 102MB - nearly 50MB smaller than the original ISO image.





Replacing the WinPE.iso PXE Image with WinPE.SDI



Now that your virtual disk has been detached, your SDI file is safe to copy over to the PXE server to be used in your WinPE boot option. This process is actually rather tricky as syncing the PXE server with your new image file isn't directly supported by the PXE Configuration Utility interface. This means some manipulation behind the scenes is required.



In order for the following manual changes to make sense, it's wise to spend another minute or two re-iterating what happens when images are built and edited.





  • First, the PXE Server stores the configuration for each PXE boot menu in aMaster folder called ..\PXE\MasterImages\MenuOption###, where ### is a MenuOption number.





  • When images are edited in the PXE Configurator, an equivalent folder with the.tmp extension is created as a temporary working area for the new master.





  • When you've finished your edits and the option is saved in the interface, the temporary MenuOption folder replaces the live version. That is to say, theMenuOption### folder in MasterImages is deleted, and theMenuOption###.tmp folder is renamed to MenuOption###. Once this is complete, this folder is synced down to the PXE Server's live distribution folder under ..\PXE\Images.





With the above in mind, the steps load up our new PXE MenuOption with our SDI file are as follows,




  1. Delete the WinPE ISO Image from the MasterImage\MenuOption### folder


    As we'll not be booting off the WinPE.iso anymore, lets remove it from the Master folder. This will prevent the PXE server sync process being delayed by the copying of a now unused 150MB ISO image each time the Image folder gets synced with the MasterImage folder.

    On my server, the WinPE ISO image was stored under..\PXE\MasterImage\MenuOption131 (as revealed by looking at the properties of the PXE Boot option in the PXE Configuration Utility). So, the ISO I need to delete is in here, within the x86PC subfolder. Double check your particular MenuOption index, and delete the corresponding WinPE.ISO in the MasterImage folder now.




  2. Copy WinPE.SDI to the MasterImage\MenuOption folder

    In the folder you've just deleted the ISO image from, copy over into it the WinPE.SDI file. This is the file we are going to be downloading by TFTP instead of that previous bulky occupant, the ISO image.


  3. Modify Winnt.sif

    Winnt.sif currently expects to boot the WinPE ISO image. We need to modify this now so that it will accept the SDI image instead.

    The default Winnt.sif will look like (remember, in what follows ### is yourMenuOption number),



    [SetupData]
    BootDevice = "ramdisk(0)"
    BootPath = "\i386\system32\"
    OsLoadOptions = "/noguiboot /fastdetect /minint /rdexportascd /rdpath=MenuOption###\X86PC\winpe.iso /PXE_SERVER:**PXE_NAME** /PXE_IP:**PXE_IP** /PXE_PATH:MenuOption###\X86PC"


    and to make this load the SDI file we need to ammend the OsLoadOptions line as follows,



    OsLoadOptions = "/noguiboot /fastdetect /minint /rdimageoffset=36352 /rdpath=MenuOption###\X86PC\winpe.sdi /PXE_SERVER:**PXE_NAME** /PXE_IP:**PXE_IP** /PXE_PATH:MenuOption###\X86PC"



  4. Resync the PXE Server

    This is where it gets tricky, as the syncing the master folder requires us to do a little fudging.


    1. Open up the PXE Configuration Utility


    2. Select the WinPE option, and click 'Edit'.


    3. In the Edit Shared Menu Option window, select the Image Creation Method of User Supplied, and click 'Manual Boot Image'


    4. In the PXE Boot Files box that pops up, browse to any small folder on your C:\ Drive which has some .exe files (I typically choose my DOS files folder) and click OK. This step gears puts the PXE configurator into the stage where it creates the .tmp Master folder. Don't worry about the fact you've just put some random small files in here -the in the next step we will delete them!


    5. Delete the ..\PXE\MasterImages\MenuOption###.tmp folder which was created by the last step. We'll be fooling the PXE Configuration Utility into using our own .tmp folder in the next step.


    6. Rename the ..\PXE\MasterImages\MenuOption### folder to..\PXE\MasterImages\MenuOption###.tmp folder. Remember, the .tmpfolder is a staging area for the PXE Configurator, and this now contains our SDI WinPE build


    7. Close the Edit Shared Menu Option window by clicking 'OK'. Our .tmpmaster folder is now moved to the last staging point in the PXE Server as a .wrk folder


    8. In the PXE Configuration Utility, click 'OK' and when prompted save your work. This process moves the .wrkfolder to the master folder, and resyncs with the files in the ..\PXE\Images\MenuOption### folder





And that's it - your PXE server should be loaded up with a nice new trip WinPE Image. Try downloading now, and you should see a further drop in the WinPE TFTP download time, of about one third.

Making your TFTP downloads, necessary for WinPE, faster

To increase the TFTP server block size do the following,

  1. Open up the PXE configuration utility
  2. Select the Multicast tab
  3. In the Packet Size text box, change the value from 768 to 1456

    Click to view.

  4. Click 'Save' to push these settings to the TFTP server
  5. Click 'OK' to exit the PXE configuration Utility

Try imaging with PXE now -your TFTP transfer time of the PXE image should now betwice as fast! Not bad for a minutes work at the console.

How To Add VMware Flexible NIC Driver For WinPE 2.1 x86/x64 Automation

By default, WinPE 2.1 x86/x64 supports the VMware NIC model e1000. When
possible, use this NIC model with your virtual machines. However, a
virtual machine created for Windows 2003 x86 Standard Edition can only
use the VMware Flexible NIC which is not supported by default.
To add VMware Flexible NIC support into the WinPE 2.1 x86/x64 automation
environment:
1.       On the Deployment Server, copy the VMware Tool ISO file from a
VMware ESX Server at /vmimages/tools-isoimages/windows.iso or create a
physical CD-ROM.
2.       Mount or extract the VMware Tool for ESX Server ISO/CD-ROM.
3.       Run the PXE Configuration utility.
4.       Select WinPE Managed boot menu option and click Edit.
5.       Click Edit Boot Image. The Altiris Boot Disk Creator will run.
6.       At Step 9, click Edit.
7.       At Step 1, click Next.
8.       At Step 2, click Have Disk.
9.       Click Browse and browse to the VMware Tool for ESX Server
ISO/CD-ROM contents and its \Program Files\VMware\VMware
Tools\Drivers\vmxnet\win2k\32bit directory.
10.      Select the vmware-nic.inf file and click Open. If prompted that
driver is an unsupported class type, click Yes and click Ok.
11.      Repeat step 7 through 9 to select the x64 driver, vmxnet.inf,
from the VMware Tool for ESX Server ISO/CD-ROM contents and its \Program
Files\VMware\VMware Tools\Drivers\vmxnet\win2k\64bit directory.
12.      Continue with the Boot Disk Creator wizard to generate the
WinPE images.
13.      After the wizard completes, click Save.
12.      After the save completes, click OK. It will take several
minutes for the PXE server to replicate the PXE images.

Using WinPE 2.1 with VMWare virtual machines

You must use Intel E1000 network card emulation instead of AMD pcnet network card emulation. See http://juice.altiris.com/tip/2919/tweaking-vmware-work-winpe-2x-and-microsoft-vista for instructions.
Excerpts from the link:

The following works for VMware WorkStation 5.5 and 6.0 and VMware Server 1.0+. By make the following alterations, WinPE 2.x will work seamlessly with network drivers.

  1. Make sure VMware is not running. Stop any virtual machines running and close VMware.
  2. Browse to the Virtual machine files and open the .vmx file with your favorite text editor.
  3. Add the following to the <Path to VM> .vmx file:
    ethernet0.virtualDev = "e1000"

    This is right after the ethernet0.present = "TRUE".

  4. Save the changes.
  5. Start your virtual machine.

Virtual machines with installed operating systems such as Microsoft Windows Vista or Microsoft Windows XP might have an issue with the drivers after this change. Change the network drivers and point to c:\windows\system32 for the drivers. Or download the latest e1000(Intel) driver.