The use of a Dell KACE K2000 RSA is a common scenario when it comes to the deployment of Operating Systems in distributed networks. The K2000 RSA then synchronizes the required resources (KBEs, Windows Setup files, pre- and post-installation tasks, Drivers etc.) and delivers them on the local subnet taking advantage of the available bandwidth within the subnet.

Since the K2000 RSA in the current version is only available for VMWare and not for HyperV it can’t be used in some environments where only HyperV and no VMWare is available. The same applies to networks where the RSA cannot be deployed to remote sites for other reasons (small sites without the option to run a virtual machine etc.)

For these scenarios I have developed a solution that will use Samba or DFS shares and load everything required for the unattended OS installation (scripted or image based) from those shares.

 

How it works:


  • The client boots a custom KBE via USB or PXE

  • A network connection to the K2000 appliance is established and inventory data gets uploaded to the K2000

  • A CSV file containing an IP subnet to Samba / DFS share mapping is loaded from the K2000 and the returns the information for the matching share

  • A network connection to the share is created and all the required resources for Windows setup are loaded from that share

 

Prerequisites:

 

  • Dell K2000 Systems Deployment appliance with all required setting configured and resources uploaded (OS media, pre- and postinstallation tasks, KBE drivers, drivers …)

  • Dell KACE K2000 RSA (Remote Site Appliance) configured and linked to the central K2000 (Optional)

  • Content to be published on the share synchronized to the RSA (Optional)

  • 2 DFS / Samba shares peinst and petemp created somewhere on the network and accessible from the client computers. Peinst can be read-only, petemp should have read-write access. The shares can be made available on the local client networks.

  • Only DFS Server namespaces are supported, Domain namespaces don't work with WinPE

  • A user that can access the DFS / Samba share(s)

  • A CSV file K2000Shares.csv with the mapping information of subnet to DFS / Samba share name or IP address (the format in the file is 192.168.182.0/23; 192.168.178.7 where 192.168.182.0 is the client’s local subnet and 192.168.178.7 is the IP address of the share), as shown below:

Subnet;share IP address
192.168.182.0;192.168.178.7
192.168.183.0;192.168.178.8
192.168.184.0;192.168.178.9
192.168.185.0;192.168.178.10

  • A script that copies / replicates the content of the K2000 or K2000 RSA peinst share to the DFS / Samba share

  • A computer with Windows ADK (4, 5 or 10) , K2000 Media Manager and KBE Manipulator (http://www.itninja.com/question/kbe-manipulator) installed



Create the custom solution:

 

  • Create the peinst and petemp shares

  • Copy the content of the K2000 or K2000 RSA peinst share to the peinst share created in the previous step

  • Create a folder named custom in the drivers_postinstall share on the K2000 appliance

  • Copy K2000Shares.csv to the custom folder

  • Download and install K2000 KBE Manipulator from http://www.itninja.com/question/kbe-manipulator

  • Create a new KBE with and select the option “Add custom DOS command(s)”

 

 


 

  • Add the custom commands to the KBE, the screenshot only shows some sample commands

 


 

  • Copy the following commands as content into the Commandline input window:

 

set DFS_IP=0

REM Reading the closest DFS share from KaceShareServers.csv

Setlocal enabledelayedexpansion

for /f  "tokens=2 delims=:" %%a in ('ipconfig ^| find /I "dress" ^| find "IP"') do (set IP=%%a && echo !IP:~1!) >>"%temp%\iplist.txt"

REM verify the path to K2000Shares.csv

REM %%A is the first IP address octet, %%B the second octet and %%C the third one, if only the first 2 octets shall be used for IP subnet to share mapping use %%A.%%B.

for /F "tokens=1,2,3 delims=." %%A in (%temp%\iplist.txt) do find "%%A.%%B.%%C." y:\drivers_postinstall\custom\K2000Shares.csv >>"%temp%\dfsservers.txt"

for /F "tokens=2 delims=;" %%A in (%temp%\dfsservers.txt) do set DFS_IP=%%A

SET DFS_IP=%DFS_IP: =%

 

@echo *** Found DFS Server with IP %DFS_IP%

if %DFS_IP% EQU 0 (@echo ERROR: could not find DFS Server

exit /b 1)

net use y: /d

net use t: /d

@echo.

@echo *** Mounting the install shares

@echo off

REM replace DFSUser and DFSPassword with the proper values

net use Y: \\%DFS_IP%\peinst /user:DFSUser "DFSPassword"

@if errorlevel 1 (@echo.

@echo ERROR: Unable to mount K2000 shares at \\%DFS_IP%\peinst

exit /b 1)

@echo off

net use T: \\%DFS_IP%\petemp

@if errorlevel 1 (@echo.

@echo ERROR: Unable to mount K2000 shares at \\%DFS_IP%\petemp

exit /b 1)


  • Save and upload the KBE

  • Boot the KBE via PXE or create a bootable USB media and boot the KBE via USB


NOTE: This is a custom solution that is not officially supported by Dell Software Support !