Here is an agent procedure I've adapted for use with Ninite installers. We use the /freeze function to generate the LAN version of the file stored up on our KServer. The agent procedure determines whether it should run using the LAN vs Internet version.
We use this to update Adobe Reader, Flash, Silverlight, ActiveX, Java, Firefox
Curious anyone's thoughts, jubiliations, suggestions?
Glenn is this the free or paid for version of Ninite? I've found that the free version is very limited and doesn't allow some of the command line switches.
We use Ninite Pro, but I believe from a technical level the features we use are available in the free version.
I will check out your procedure but yes, Ninite is awesome. Considering you can run the installer to install or update/upgrade that beats the messing around with trying to imitate that with Agent procedures. I was just in the process of creating some wrapper Agent Procedures when I saw yours.
Another note if you're looking to do this for single application installs, this procedure will work for any ninite generated .exe file (single or multiple apps). Also, if you run a /freeze argument against it, it will build an offline exe containing the full installers for the apps.
Feel free to e-mail me at firstname.lastname@example.org, I'm also curious about any suggestions for the procedure, or other ideas of how your team handles updates.
Any idea how Ninite handles updates to these programs if they are in use at the time of script execution?
Ninite can't/won't update files that are in use (like anything in Windows). If you enable the logging to file feature it puts a "locked" entry in the log. Take a look at the agent procedure, I built this intelligence into it...it will prompt the user to close the affected software so it can be updated.
this procedure is great!
thanks a million Glenn!
What is the difference between an internet version and LAN version?
with the internet version ninite gets the files from the web when it is run - with the lan version it downloads the packages first so you would run the lan version if you were installing on multiple machines inside the lan as the files for the applications would be in the fileshare also. The other difference though is that the internet one you are guaranteed to always get the latest file whereas with the lan version it will be the file version from the time you created the package
Mmartin, that's correct.
Lsumarkb, write an agent procedure to update the lan version on the kaseya server itself, and then push that file via "distribute file" to the LAN share locations. :)
Example: "niniteupdateinternet.exe /silent /freeze niniteupdatelan.exe" will update the lan file based on the packages specified on the internet version.
Is there a document that you get this information from? how did you build this script?
Kaseya has this patch management thing all wrong. We buy a program like this to save time not to have to figure out more scripts in a different language then what we already used.
all documenation is on the ninite.com website - fairly straight forward it is just command line parameters. have a read of their help. This product has nothing to do with Kaseya, it is just a great and cheap way to deliver applications.
Yea. I spoke too soon before doing my own research. My frustration and the comments that came after have to do with the fact that I think Kaseya should provide the same service as Ninite in that I should be able to pick adobe, java, etc and it installs on their PCs.
also, this script would require the pro version for it to work. otherwise, the switches won't work.
Kaseya does provide a way to deliver the same services as Ninite.
I use Ninite because the $20 a month is well worth the 2 hours of my life I would have spent rewriting scripts every time an Adobe or Java product gets exploited.
Thanks Charles. that is exactly my point. They don't deliver the same service because I have to write a script! It defeats the purpose of a system's management suite! The problem with ninite is that I can't customize the installer but I still think it is better than writing scripts.
You still have to write a script(s) to use Ninite with Kaseya.
Ok I think maybe you missed my point and now this topic has become about my frustration but I just meant I want Kaseya to be as easy to use as ninite.
Lsumarkb, from past experience Kaseya is a great management platform if you compare it to the other options out there. We use Ninite to update nearly 1000 endpoints on a monthly interval. For $20/mo it's well worth it if you consider the hours it will take a seasoned Kaseya scripter to manually update/test the 3rd party app updates that come out each month (I've done it, and it is a gigantic pain). Kaseya does have some pre-canned procedures in 6.0.1 that update Adobe reader, etc; however, you'll have to update these each month as the 3rd party vendor changes how these updates occur. Checkout the community, there's several available.
Any way you slice it, updating systems efficiently/effectively is a total pain; however, the Ninite solution I think is great. Since I wrote the procedure we've used it several months successfully.
Thanks for the script! Ninite RULES! ;-)
Do you have a copy of the script you use to update the LAN file? I would like to see how the script was built.
I can't figure out how to add a file, did Kaseya remove that option? Hmm..
At any rate...the LAN file update script is pretty basic.
1) Execute command "del <path>\niniteupdatelan.exe /f"
2) Execute "<path>\niniteupdateinternet.exe /silent /freeze niniteupdatelan.exe" which rebuilds an updated LAN file from the prepackaged internet based update file. I just schedule the procedure, and add an else to send an email if the script fails.
In other news, I've done some extensive testing on NiniteOne which now has a GUI and offline update/cache options. You might consider checking this out as well...it's pretty slick and takes a lot of load off the Kaseya server and moves it to the customer network\system.
Thanks Glenn. :-)
Yes, I've also tried NiniteOne and found that it works really great.
You can still upload a file to the Kaseya server if that's what you mean by "can't figure out how to add a file". If you go to Agent Procedures, under File Transfer, select Distribute File and in the upper right corner of that screen there's a link "Manage Files". You can upload files to the Kserver that way. There's probably other ways as well (there usually always is more than one way... ;-) ).
So are you using NiniteOne instead of the Kaseya script now? or both?
Shelly, I meant upload a file (the xml agent procedure) as a reply on this forum. We're in the production testing stages with niniteone and fully automating it with kaseya. I'm interested what you have in place with niniteone at this point.
sorry everyone, probably a real dum question.
How do I get the ninite files the scripts requires?
Sorry Glenn for pointing out how to upload files to the Kserver... ugh... ;-) :-) After I posted, I thought you probably meant posting a file to the Kaseya forums. ;-)
So far I don't have anything in place with niniteone and Kaseya or just niniteone itself. I just got started using it but I will let you know what I figure out. :-)
Thanks again for all of your help!
@ NIKNAKS456 --
You can build the ninite files the script requires by building an installer from the ninite site and then (with the pro version) run the installer from the command line and use the "/freeze" switch.
For example... "niniteinstaller.exe /freeze ninitelanupdate.exe"
The ninitelanupdate.exe file will be created in the same folder where the niniteinstaller.exe file resides. I just ran it from my desktop.
Hope this helps.
Im trying to do this silently.
Have created a nice batch file with logging and all in it.
However, when i try to run a VBscript wich makes the batch run hidden, my Kaseya procedure just fails.
Here's my VBScript:
Set WshShell = CreateObject("WScript.Shell")
cmds=WshShell.RUN("update.bat", 0, True)
Set WshShell = Nothing
Heres the update.bat:
echo "Applicaties worden zo nodig geupdate / Applications are beeing updated."
echo "U kunt ondertussen gewoon verderwerken / You can continue working."
if exist result.txt (
) else (
ninite.exe /select Reader Firefox Java Flash "Flash (IE)" /locale nl-NL /updateonly /disableautoupdate /allusers /silent result.txt
copy result.txt "%date%_log.txt"
I used Execute command 'Cscript #TEMP#\update.vbs' due to the execute vbscript step not working.
Also noticed that the arguments on the vbscript step are REQUIRED?
Why is this a mandatory field? i just put a space in it, but it might be the reason why its not working correctly.
Any ideas? I want to get this script working ;)
Phone : (+31) 72 571 98 99
P.s. Just running the update.vbs works like a charm! (When i double click it on a system)
So it's realy all in the procedure not beeing able to run it.
Hi Krijn, I'm not certain why you'd want/need to write a batch or vbscript for this? I'd recommend using the built-in functions within kaseya 184.108.40.206.
If you want to get some additional logging on why your script isn't working add some steps to write out that info to the kaseya agent procedure log. It should tell you why the step is failing. My guess is you'll want to use the "Execute File" (cscript.exe, enter your script name in the arguments section). It's not intuitive, but I've noticed some weirdness with running the Execute command (which I agree should work).
Hopefully this helps.
Ive edited my .vbs and batch file to use full paths. (e.g. c:\kworking\update.vbs instead of just update.vbs)
This solved the running of the script.
Using the execute file step (cscript | Arguments #TEMP#\update.vbs) works like a charm. Thing is, i want the procedure to be fully silent.
This pops up a DosBox titled cscript. So it's not silent.
Ill keep working on getting it fully silent, im thinking of trying the execute command again, now that i have the files set up correctly.
Thanks for your help Glenn, ill post back my results here! ;)
using the execute file command; I directly call the full path of my update.vbs.
This works perfectly. Got it all solved.
If anyone needs help with ninite script to update from internet, send me a message ;)
Glad to hear you got it working Krijn. By default, the pre-packaged executable from ninite downloads updates from the Internet.
I've built some new scripts from the ground up with ninitepro, and once I get them tested in production will post those up on the community as well. Cheers all.
Looking forward to seeing your scripts on the community ;)
Any news on the NiniteOne scripts Glenn... desperately waiting for it... I have Kaseya 6.1 fully patched and updated and have bought NinitePro too ..just need to figure out the best way to get this working... I am thinking of distributing the NiniteOne.exe file first then running the commands to update via the internet...not sure what the best way to go about it tho...
I haven't looked at this for a few months, I've been tied up on other internal projects and customer rollouts.
I've attached the couple procedures &ninite.ini you'll need based on my testing a few months back. You'll need to create 2 variables in the machine group also.
Kaseya is releasing a Ninite module which will run inside the 3rd party integration module soon also. I hadn't heard any pricing on it, but I can only assume it's per node...hopefully they release it for free OR you can just continue to use this script with your $20/mo paid Ninite account :)
Copyright © 2012 Kaseya International Limited. All rights reserved. Kaseya and the Kaseya k-bug logo are among the trademarks or registered trademarks owned by or licensed to Kaseya International Limited. All other brand and product names are or may be trademarks of, and are used to identify products or services of, their respective owners.