How to Get Aclient or Dagent to Log to Unique File Names in Automation
When troubleshooting Aclient issues in automation there are cases where a problem only duplicated when multiple aclients are connected during automation. By default the Aclient can only log to a static log file name. This can cause confusion and make a log relatively useless when two or more Aclients are logging to the same log file. To resolve this issue I have put together a batch file that can be included with the WinPE boot to set the log file name to include a unique identifier of either the IP address or MAC address.
This batch file will use the output of ipconfig and parse for the IP address or MAC address then modify the registry in automation and the aclient.inp before the agent loads to give the agents a unique log file.
Step 1: Modify / Create the WinPE boot
Modify / Create the WinPE boot you would like to enable unique log files on. For PXE boot options you will need to go through the PXE configuration utility. Otherwise open Boot Disk Creator.
Go to the edit configuration screen
Step 2: Add the batch file
Right click the startup folder and select new > text file. Name the text file with the .bat extension, for example LogFileChange.bat. Copy in the following contents:
@echo off set temp_i=default for /f "tokens=1,2 delims=:" %%i in ('ipconfig') do call:setname "%%i" "%%j" echo your IP is %IP_ADDR% set LogName=f:\\temp\\%IP_ADDR%-WinPE_aclient.log echo Windows Registry Editor Version 5.00 >> %_work%\temp.reg echo >> %_work%\temp.reg echo [HKEY_LOCAL_MACHINE\SOFTWARE\Altiris\Client Service] >> %_work%\temp.reg echo "InstallDir"="%_work%\" >> %_work%\temp.reg echo "LogFile"=dword:00000001 >> %_work%\temp.reg echo "LogFilename"="%LogName%" >> %_work%\temp.reg echo "LogInformation"=dword:00000001 >> %_work%\temp.reg echo "LogErrors"=dword:00000001 >> %_work%\temp.reg echo "LogDebug"=dword:00000001 >> %_work%\temp.reg echo "LogSize"=dword:00064000 >> %_work%\temp.reg if not exist %_work%\aclient.inp copy x:\aclient.inp %_work%\ set _Agent_cfgpath=%_work%\ echo LogFile=%LogName% >> %_work%\aclient.inp echo LogSize=409600 >> %_work%\aclient.inp echo LogErrors=Yes >> %_work%\aclient.inp echo LogInformation=Yes >> %_work%\aclient.inp echo LogDebug=Yes >> %_work%\aclient.inp regedit /s %_work%\temp.reg goto:eof :setname if NOT %1=="" set temp_i=%~1 set temp_j=%~2 set temp_j=%temp_j: =% set temp_i=%temp_i:~3,2% if "%temp_i%"=="IP" set IP_ADDR=%temp_j% goto:eof
Step 3: Configure the Batch file
It is recommended that you go through the batch file and set the settings here you would like to use for logging.
Items of interest are going to be the log file name and the log file size (if you need it larger than 400k). The %IP_ADDR% is the system variable that is set in the batch file.
To alter the log to use MAC address instead of the IP address in the log file name change the following lines
for /f "tokens=1,2 delims=:" %%i in ('ipconfig') do call:setname "%%i" "%%j" to for /f "tokens=1,2 delims=:" %%i in ('ipconfig /all') do call:setname "%%i" "%%j"
echo your IP is %IP_ADDR% to echo your MAC is %IP_ADDR%
if "%temp_i%"=="IP" set IP_ADDR=%temp_j% to if "%temp_i%"=="Ph" set IP_ADDR=%temp_j%
This will then set the IP_ADDR variable to the MAC address of the machine instead of the IP address.
Step 4: Build WinPE
Click next and continue to build WinPE as normal. When clients boot up they will log to the directory specified in the batch file above.
- There must be a RAMDRIVE setup (z: winpe 1.6) for the WinPE configuration. By default this is on for all PXE and Automation partition WinPE boots. For WinPE boot CDs the user must select the "Boot into ramdisk" option when building the CD
- Aclient.inp has a semi-colon in front of LogFile=