Kaseya Community

Application - Ninite - Deploy Standard Package Example

  • Hi all. How many of you have tried Ninite? I really like the Debian/Ubuntu command line approach for updating applications and with Ninite you can do this on a Windows box. Check it out the Ninite Blog for more info: http://blog.ninite.com/post/2349758171/apt-get-for-windows-ninite-gets-command-line-app

    You have to subscribe to get the Pro version for MSP use. Here are some example scripts to use.

    <?xml version="1.0" encoding="utf-8"?>
    <ScriptExport xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.kaseya.com/vsa/2008/12/Scripting">
      <Folder name="Ninite" treePres="3">
        <Procedure name="Application - Ninite -  Deploy Standard Package " treePres="3">
          <Body description="Description: Deploys a standard application list to specified machine with the Ninite command line tool (www.ninite.com).&#xA;&#xA;Kaseya customer value: Procedure to secure clients with the latest software.&#xA;&#xA;End user value: Limiting the risks for attacks, downtime and data loss due to old applications.&#xA;&#xA;Dependencies: Ninite Pro subscription (www.ninite.com).&#xA;&#xA;Usage: Run at any given time.&#xA;&#xA;Report options: Look in the Documents folder on each agent or use the procedure log to report on this procedure and look for the content &quot;OK&quot;.&#xA;&#xA;Script maintainer: ronny [at] upstream.se&#xA;Support: This script is delivered &quot;as is&quot;. No support included.">
            <Statement description="" name="WriteFile" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
              <Parameter xsi:type="StringParameter" name="Path" value="#vAgentConfiguration.agentTempDir#\niniteone.exe" />
              <Parameter xsi:type="StringParameter" name="ManagedFile" value="VSASharedFiles\Ninite One.exe" />
            </Statement>
            <Statement description="Execute the specified file - full path to file required." name="ExecuteFile" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
              <Parameter xsi:type="StringParameter" name="Path" value="#vAgentConfiguration.agentTempDir#\niniteone.exe" />
              <Parameter xsi:type="StringParameter" name="Arguments" value="/select Firefox Flash Java Skype /silent #vAgentConfiguration.agentTempDir#\niniteone-deploy.txt" />
              <Parameter xsi:type="EnumParameter" name="ExecuteAccount" value="System" />
              <Parameter xsi:type="BooleanParameter" name="WaitComplete" value="True" />
            </Statement>
            <Statement description="Create a named procedure variable and assign a value retrieved from the managed machine by the agent." name="GetVariable" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
              <Parameter xsi:type="EnumParameter" name="VariableType" value="FileContent" />
              <Parameter xsi:type="StringParameter" name="SourceContent" value="#vAgentConfiguration.agentTempDir#\niniteone-deploy.txt" />
              <Parameter xsi:type="StringParameter" name="VariableName" value="niniteone-deploy" />
            </Statement>
            <Statement description="Get the specified file - full path to file required." name="GetFile" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
              <Parameter xsi:type="StringParameter" name="RemoteFileName" value="#vAgentConfiguration.agentTempDir#\niniteone-deploy.txt" />
              <Parameter xsi:type="StringParameter" name="KServerFileName" value="..\Docs\Application - Ninite - Deploy Standard Package\niniteone-deploy.txt" />
              <Parameter xsi:type="EnumParameter" name="Action" value="OverwriteNoAlert" />
            </Statement>
            <Statement description="Delete the specified file - full path to the filename required." name="DeleteFile" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
              <Parameter xsi:type="StringParameter" name="Path" value="#vAgentConfiguration.agentTempDir#\niniteone.exe" />
            </Statement>
            <Statement description="Delete the specified file - full path to the filename required." name="DeleteFile" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
              <Parameter xsi:type="StringParameter" name="Path" value="#vAgentConfiguration.agentTempDir#\niniteone-deploy.txt" />
            </Statement>
            <Statement description="Write an Entry into the Procedure Log" name="WriteScriptLogEntry" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
              <Parameter xsi:type="StringParameter" name="Comment" value="#niniteone-deploy#" />
            </Statement>
          </Body>
        </Procedure>
        <Procedure name="Application - Ninite - Audit Current Applications" treePres="3">
          <Body description="Description: Audit the supported application list on specified machine with the Ninite command line tool (www.ninite.com).&#xA;&#xA;Kaseya customer value: Procedure to secure clients with the latest software.&#xA;&#xA;End user value: Limiting the risks for attacks, downtime and data loss due to old applications.&#xA;&#xA;Dependencies: Ninite Pro subscription (www.ninite.com).&#xA;&#xA;Usage: Run at any given time.&#xA;&#xA;Report options: Look in the Documents folder on each agent or use the procedure log to report on this procedure and look for the content &quot;OK&quot;.&#xA;&#xA;Script maintainer: ronny [at] upstream.se&#xA;Support: This script is delivered &quot;as is&quot;. No support included.">
            <Statement description="" name="WriteFile" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
              <Parameter xsi:type="StringParameter" name="Path" value="#vAgentConfiguration.agentTempDir#\niniteone.exe" />
              <Parameter xsi:type="StringParameter" name="ManagedFile" value="VSASharedFiles\Ninite One.exe" />
            </Statement>
            <Statement description="Execute the specified file - full path to file required." name="ExecuteFile" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
              <Parameter xsi:type="StringParameter" name="Path" value="#vAgentConfiguration.agentTempDir#\niniteone.exe" />
              <Parameter xsi:type="StringParameter" name="Arguments" value="/audit /silent #vAgentConfiguration.agentTempDir#\niniteone-audit.txt" />
              <Parameter xsi:type="EnumParameter" name="ExecuteAccount" value="System" />
              <Parameter xsi:type="BooleanParameter" name="WaitComplete" value="True" />
            </Statement>
            <Statement description="Create a named procedure variable and assign a value retrieved from the managed machine by the agent." name="GetVariable" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
              <Parameter xsi:type="EnumParameter" name="VariableType" value="FileContent" />
              <Parameter xsi:type="StringParameter" name="SourceContent" value="#vAgentConfiguration.agentTempDir#\niniteone-audit.txt" />
              <Parameter xsi:type="StringParameter" name="VariableName" value="niniteone-audit" />
            </Statement>
            <Statement description="Get the specified file - full path to file required." name="GetFile" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
              <Parameter xsi:type="StringParameter" name="RemoteFileName" value="#vAgentConfiguration.agentTempDir#\niniteone-audit.txt" />
              <Parameter xsi:type="StringParameter" name="KServerFileName" value="..\Docs\Application - Ninite - Deploy Standard Package\niniteone-update.txt" />
              <Parameter xsi:type="EnumParameter" name="Action" value="OverwriteNoAlert" />
            </Statement>
            <Statement description="Delete the specified file - full path to the filename required." name="DeleteFile" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
              <Parameter xsi:type="StringParameter" name="Path" value="#vAgentConfiguration.agentTempDir#\niniteone.exe" />
            </Statement>
            <Statement description="Delete the specified file - full path to the filename required." name="DeleteFile" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
              <Parameter xsi:type="StringParameter" name="Path" value="#vAgentConfiguration.agentTempDir#\niniteone-audit.txt" />
            </Statement>
            <Statement description="Write an Entry into the Procedure Log" name="WriteScriptLogEntry" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
              <Parameter xsi:type="StringParameter" name="Comment" value="#niniteone-audit#" />
            </Statement>
          </Body>
        </Procedure>
        <Procedure name="Application - Ninite - Auto-update Supported Applications" treePres="3">
          <Body description="Description: Aut-update supported standard application list on specified machine with the Ninite command line tool (www.ninite.com).&#xA;&#xA;Kaseya customer value: Procedure to secure clients with the latest software.&#xA;&#xA;End user value: Limiting the risks for attacks, downtime and data loss due to old applications.&#xA;&#xA;Dependencies: Ninite Pro subscription (www.ninite.com).&#xA;&#xA;Usage: Run at any given time.&#xA;&#xA;Report options: Look in the Documents folder on each agent or use the procedure log to report on this procedure and look for the content &quot;OK&quot;.&#xA;&#xA;Script maintainer: ronny [at] upstream.se&#xA;Support: This script is delivered &quot;as is&quot;. No support included.">
            <Statement description="" name="WriteFile" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
              <Parameter xsi:type="StringParameter" name="Path" value="#vAgentConfiguration.agentTempDir#\niniteone.exe" />
              <Parameter xsi:type="StringParameter" name="ManagedFile" value="VSASharedFiles\Ninite One.exe" />
            </Statement>
            <Statement description="Execute the specified file - full path to file required." name="ExecuteFile" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
              <Parameter xsi:type="StringParameter" name="Path" value="#vAgentConfiguration.agentTempDir#\\niniteone.exe" />
              <Parameter xsi:type="StringParameter" name="Arguments" value="/updateonly /silent #vAgentConfiguration.agentTempDir#\niniteone-update.txt" />
              <Parameter xsi:type="EnumParameter" name="ExecuteAccount" value="System" />
              <Parameter xsi:type="BooleanParameter" name="WaitComplete" value="True" />
            </Statement>
            <Statement description="Create a named procedure variable and assign a value retrieved from the managed machine by the agent." name="GetVariable" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
              <Parameter xsi:type="EnumParameter" name="VariableType" value="FileContent" />
              <Parameter xsi:type="StringParameter" name="SourceContent" value="#vAgentConfiguration.agentTempDir#\niniteone-update.txt" />
              <Parameter xsi:type="StringParameter" name="VariableName" value="niniteone-update" />
            </Statement>
            <Statement description="Get the specified file - full path to file required." name="GetFile" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
              <Parameter xsi:type="StringParameter" name="RemoteFileName" value="#vAgentConfiguration.agentTempDir#\niniteone-update.txt" />
              <Parameter xsi:type="StringParameter" name="KServerFileName" value="..\Docs\Application - Ninite - Deploy Standard Package\niniteone-update.txt" />
              <Parameter xsi:type="EnumParameter" name="Action" value="OverwriteNoAlert" />
            </Statement>
            <Statement description="Delete the specified file - full path to the filename required." name="DeleteFile" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
              <Parameter xsi:type="StringParameter" name="Path" value="#vAgentConfiguration.agentTempDir#\niniteone.exe" />
            </Statement>
            <Statement description="Delete the specified file - full path to the filename required." name="DeleteFile" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
              <Parameter xsi:type="StringParameter" name="Path" value="#vAgentConfiguration.agentTempDir#\niniteone-deploy.txt" />
            </Statement>
            <Statement description="Write an Entry into the Procedure Log" name="WriteScriptLogEntry" continueOnFail="false" osType="NT4|2000|XP|2003|Vista|2008">
              <Parameter xsi:type="StringParameter" name="Comment" value="#niniteone-update#" />
            </Statement>
          </Body>
        </Procedure>
      </Folder>
    </ScriptExport>



    [edited by: Ronny Tunfjord at 10:36 AM (GMT -8) on 1-24-2011] Updated procedure
  • Nice job as always, Ronny! :)

  • If you use Execute file instead of Execute Shell command, Niniteone will still work fine and you don't have to use the Pause step.

  • Thanks Ben. I will adjust this right away and repost.

  • I have updated the procedure above. The procedure now executes a file instead of the previous shell command. This eleminates the pause step as Ben mentioned above.

  • Here are the switches I have been using:

    /select Flash "Flash (IE)" Reader Java Firefox Chrome /updateonly /nocache /silent #vAgentConfiguration.agentTempDir#\Ninite.txt

  • Beware that Ninite will jump major versions.  This has caught me out a few times eg Team Viewer 5 -> 6 (new license required), FF3 -> 4, AVG 9 (KES) -> 10 etc.



    [edited by: Simon Wong at 6:11 AM (GMT -7) on 4-2-2011] spelling
  • I am curious to find out the process that others are using to verify that the applications have actually updated on each machine for each account? Obviously just becasue the script ran it doesn't mean that all computers got updated (maybe because offline machines, it skipped because an app was open).

  • Check the log file generated it is "#vAgentConfiguration.agentTempDir#\Ninite.txt" in SMason's example.  I check for the words "Install failed".  The problem is that you cannot generate an Alarm from this so if you use Windows then create an Event Log entry and monitor for that...

  • Is there a way to aggregate the logs into one report? We use Kaseya on many machines on multiple domains. It would be quite cumbersome to check the logs of each individual computer for failures.

  • You don't have to check the logs if you script a variable check based on what Simon said.  The KAgent can parse the ninite log at each computer and create a windows event log error or warning based on the agent discovering the words "Install Failed" in the log.  You can then have Kaseya react to that event log with an event monitor set.

  • Everyone should also be aware that Ninite just jumped pricing by a large amount over the weekend.  Went from $20 per month for unlimited to $20 per month for 100 machines, and upwards from there to near $200 per month if you want more than 500 machines.

  • Hi Guys,

    I just asked Ninite about existing customers and they replied.

    "Existing customers get to keep their $20/month unlimited plans. The new pricing is just for new accounts."