Hi, we are looking at deploying the OS via K2000 appliance and I was wondering if there is a way to use a post-install task on the K2000 that will force the client to check in and install any managed installations assigned to that device in the K1000?  We would prefer if this was automated in a sense so you don't have to log into K1000 for each device and force inventory via the web gui.

Thanks

0 Comments   [ + ] Show Comments

Comments

Please log in to comment

Community Chosen Answer

1

This is exactly how we handle our imaging. We use the K2000 to lay down just the base OS, drivers, and the K1000 agent (along with some other customizations). We also set "bread crumbs" in the registry (we use the image name) and key off of that on the K1000 as custom inventory and use smart labels to assign managed installs.

The problem we ran into (and it sounds like you're running into) is that the initial checkin performed when the agent first installs doesn't populate any custom inventory fields. So what we did is create a post-install script that does a runkbot 4 0 and runkbot 6 0. Here is the batch file we use:

@echo off
GOTO %PROCESSOR_ARCHITECTURE%
:x86
start "" /min /wait "%programfiles%\Dell\KACE\runkbot.exe" -s 4 0
ping 127.0.0.1 -n 30 -w 1000 > nul
start "" /min /wait "%programfiles%\Dell\KACE\runkbot.exe" -s 6 0
goto END
:AMD64
start "" /min /wait "%programfiles(x86)%\Dell\KACE\runkbot.exe" -s 4 0
ping 127.0.0.1 -n 30 -w 1000 > nul
start "" /min /wait "%programfiles(x86)%\Dell\KACE\runkbot.exe" -s 6 0
goto END
:END

We make that the very LAST task that runs. We also found in necessary in some cases to add a 3 minute pause before the force check-in, using something like:

@echo off
echo Pausing for 3 minutes
PING 127.0.0.1 -n 180 -w 1000 > nul

Hope this helps!

Answered 01/14/2014 by: BHC-Austin
Fourth Degree Black Belt

  • We do something similar with a vb script. I added a sub to wait for the ampagent to start and then wait for a connection to be established on k1000:52230 before each kbot launches.
    One of the biggest advantages I see for using the K1000 for POs is that you can make updates and changes on the fly. So instead of just calling kbot 4 or 6 I created custom kbots that call 4 or 6 with a timeout. If I want to alter the timeout, I can do it between PO's without having to restart the SI.

    Task 1
    Launch Timeout.bat. (PING 127.0.0.1 -n 5 -w 1000 > nul) wait=true
    Launch $(KACE_APP_DIR)\runkbot.exe with params 6 0. wait=true
    Launch $(KACE_APP_DIR)\runkbot.exe with params 4 0. wait=true
Please log in to comment

Answers

0
Although its a bit late to answer this question, however this is how i have achieved agressive patching and managed installs during the scripted install process.


@cls&echo off&prompt :&mode con cols=50 lines=10
set processname=runkbot.exe

:AMD64
cls&echo Running Kbot....
start "" /min /wait "%programfiles(x86)%\Dell\KACE\runkbot.exe" -s 4 0
ping 127.0.0.1 -n 10 -w 1000 > nul
goto :loop

:x86
start "" /min /wait "%programfiles%\Dell\KACE\runkbot.exe" -s 4 0
ping 127.0.0.1 -n 30 -w 1000 > nul
goto :loop

:loop
cls&cls&echo Searching for %processname%...
for /f "tokens=1 delims=," %%a in ('tasklist /fo csv ^|FINDSTR /C:"%processname%"') do call :waitKbot %%a
ping -n 6 127.0.0.1>NUL
goto :loop

:waitKbot
set name=%*
set name=.,;%name:"=%;,.
cls
cls&echo Waiting for Kbot to finish inventory...
ping 127.0.0.1 -n 20 -w 1000 > nul
tasklist /FI "IMAGENAME eq runkbot.exe" | findstr "runkbot.exe" >nul
if %ERRORLEVEL% == 0 goto :waitKbot
cls&echo Getting Managed Installs....
if %ERRORLEVEL% == 1 goto :waitMI



:waitMI
ping 127.0.0.1 -n 20 -w 1000 > nul
cls
cls&echo Waiting for k1000 Installs...
tasklist /FI "IMAGENAME eq KDeploy.exe" | findstr "KDeploy.exe" >nul
if %ERRORLEVEL% == 0 goto :waitMI
goto :waitPatch


:waitPatch
ping 127.0.0.1 -n 20 -w 1000 > nul
cls&echo Waiting patch Schedule...
tasklist /FI "IMAGENAME eq Kpatch.exe" | findstr "Kpatch.exe" >nul
if %ERRORLEVEL% == 1 goto :waitPatch1

:waitPatch2
ping 127.0.0.1 -n 20 -w 1000 > nul
cls&echo Waiting  patches to finish...
tasklist /FI "IMAGENAME eq Kpatch.exe" | findstr "Kpatch.exe" >nul
if %ERRORLEVEL% == 0 goto :waitPatch2

cls&echo Exiting....
goto End
:End
%ERRORLEVEL% = 0
Exit
Answered 07/09/2015 by: PortZero
Senior White Belt

Please log in to comment
0

I have heard many people using this method but personally i like to make these tasks a post installation tasks, as of 5.5 you can import your k1000 managed installs over to k2000 post installation tasks. I am a bit under the weather but when i am better i will find and post the instructions if anyone is interested. 

Answered 01/15/2014 by: jlbob
Orange Belt

  • We looked into this method initially, too. The problem we ran into is that a Managed Install and a Post-Install Task get executed slightly differently and ran into a lot of problems with our install commands. We have a lot of LOB apps with very strange install procedures, though. The other reason we decided to have the K1000 do the "heavy lifting" of app install is the whole export/import process gets to be a bit tedious. If they ever include automatic syncing of MI and PI in a future version of the K2000 we may go back to having it all as post-install tasks.
  • It is relatively easy to export on k1 and import into k2...plus no waiting..
Please log in to comment
Answer this question or Comment on this question for clarity
Admin Script Editor
Admin Script Editor is an integrated scripting environment available free here at ITNinja

Share