Client Management Suite

 View Only

AutoPatcher 

Nov 23, 2016 03:30 AM

AutoPatcher

Symantec End Point Management, Patch Management automation tool


Requirements:

  • Symantec Management Platform - Patch Management 8.0 or later.
  • Run as an account with sufficient permisions for Stagging, Distribution and PM package Integrity check.

Features:

  • Automate Staging, distribution and compliant bulletins cleanup
  • Accepts Dynamic date values (Last Week, Last Month etc) for bulletins select criteria (In addition to static date format)
  • Flixable bulletins and update select criteria based on
    • Platform
    • Vendor
    • Severity
    • Release date
    • Applicability count
    • Compliance per bulletin OR per each update
  • Stagging can download applicable updates only (Save bandwidth / disk space)
  • Organizes policies based on Vendor and bulletins release month.
  • Policies and folders name prefix
  • Select target filter for pilot testing
  • Clean-up superseded / compliant bulletins based on configurable compliance value
    • Disables bulletins and Deletes associated policies
    • Runs “SWU package integrity” task, (Offers internal run which forces orphaned packages delete)
  • No installation required and zero foot print, single self executable runs on SMP server (8.0 or later)
  • Automated update

Official repository: https://github.com/minagerges/AutoPatcher
Latest release: https://github.com/minagerges/AutoPatcher/releases/latest
For Reporting issues and feature requests, use: https://github.com/minagerges/AutoPatcher/issues
Usage and HOWTO: https://github.com/minagerges/AutoPatcher/wiki/Help-%28How-to-use%29

Screen shots

Configuration tab

Run tab

Bulletins tab (Reports)

Folders structure of created policies

 

NB.:This application is a result of individual contribution and is not an official release by Symantec Corporation.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

Statistics
0 Favorited
7 Views
0 Files
0 Shares
0 Downloads

Tags and Keywords

Comments

Nov 21, 2018 12:42 PM

Hi Hong Sue,

 

I solved it by installing SQL in English, since I had it installed in Spanish. I recommend this and use the latest version that works OK (build AutoPatcher 8.5.6884.33309).

Any questions, notify us.

Nov 13, 2018 12:56 PM

{subscribed}

Nov 02, 2018 11:33 AM

Will there be an 8.5 Build released?

GitHub Issue: https://github.com/minagerges/AutoPatcher/issues/17

Mar 08, 2018 06:51 AM

@Mina Gerges: With your tool you are able to "Disable bulletins and delete associated policies".

I am trying to implement the same in a workflow however I have not found the "function" for disabling the bulletin. See my post here: https://www.symantec.com/connect/forums/automatically-delete-unused-software-update-packages-problem-disabling-staged-bulletins

So if you could share some "code" that would help.

Thanks

Stefan
 

Mar 07, 2018 08:06 AM

Thank you all for reporting. All above mentioned issues are no fixed in the latest release here.

NB: If the environment has TLS 1.2 disabled, an manual update is required. I've fixed that as well to enfirce required TLS version

 

Please report all issues on git hub issue tracker, I'm not following this article, though I receive notification on creating issues on github.

Mar 04, 2018 10:37 PM

Hi MINA

I am a symantec partner engineer who needs your AutoPatcher (Symantec Endpoint Management) tool.

The AutoPatcher tool has an option called Target filter.
This option is shown by activating the default filter on the PMS.
Can I enter my custom filter of the Target filter option?
I entered a custom filter that I created and I get an error and ask if there is any other way.
please answer about my question. Thank you.

Mar 04, 2018 08:40 PM

I also have the same problem as Esteban_E said.


System.Data.SqlClient.SqlException: 문자열을 날짜 및/또는 시간으로 변환하지 못했습니다.
-----------------------------------------------------------------------------------------------------
Date: 2018-03-05 오전 10:26:55, Tick Count: 393539500 (4.13:18:59.5000000), Host Name: CYBERADAPTBMT, Size: 358 B
Process: AutoPatcher (5440), Thread ID: 44, Module: AutoPatcher.exe
Priority: 1, Source: AutoPatcher.Common::SQLHelper.RunQuery
File: C:\ProgramData\Symantec\SMP\Logs\a.log


Failed to run SQL query on SMP DataBase.

문자열을 날짜 및/또는 시간으로 변환하지 못했습니다.
   [System.Data.SqlClient.SqlException @ .Net SqlClient Data Provider]
   위치: System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   위치: System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   위치: System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   위치: System.Data.SqlClient.SqlDataReader.TryHasMoreRows(Boolean& moreRows)
   위치: System.Data.SqlClient.SqlDataReader.TryReadInternal(Boolean setTimeout, Boolean& more)
   위치: System.Data.SqlClient.SqlDataReader.Read()
   위치: System.Data.Common.DataAdapter.FillLoadDataRow(SchemaMapping mapping)
   위치: System.Data.Common.DataAdapter.FillFromReader(DataSet dataset, DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32 startRecord, Int32 maxRecords, DataColumn parentChapterColumn, Object parentChapterValue)
   위치: System.Data.Common.DataAdapter.Fill(DataTable[] dataTables, IDataReader dataReader, Int32 startRecord, Int32 maxRecords)
   위치: System.Data.DataTable.Load(IDataReader reader, LoadOption loadOption, FillErrorEventHandler errorHandler)
   위치: AutoPatcher.Common.SQLHelper.RunQuery(String Query)

SQL Exception details: code=241, line=158

Exception logged from: 
   at AutoPatcher.Common.SQLHelper.RunQuery(String)
   at AutoPatcher.Common.SQLHelper.RunQuery(String, TimeSpan&)
   at AutoPatcher.Operation.AutoPatcherOperations.GetAllBulletinsDetails(System.DateTime, Boolean)
   at AutoPatcher.Operation.AutoPatcherOperations.GetAllBulletinsDetailsByPlatform(System.DateTime, AutoPatcher.Operation.AutoPatcherConfig+Constants+Platform)
   at AutoPatcher.Operation.AutoPatcherOperations+BulletinsCleaner.CleanSupersededBulletins()
   at AutoPatcher.Operation.AutoPatcherOperations+BulletinsCleaner.Run()
   at AutoPatcher.Operation.AutoPatcherOperations.Run(AutoPatcher.Operation.AutoPatcherConfig, Boolean)
   at AutoPatcher.UI.FormMain+<>c__DisplayClass45.<Run_Click>b__41()
   at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, Object)
   at System.Threading.ThreadHelper.ThreadStart()

User [CYBERADAPTBMT\symantecSMP], Auth [CYBERADAPTBMT\symantecSMP], AppDomain [AutoPatcher.exe]

-----------------------------------------------------------------------------------------------------
Date: 2018-03-05 오전 10:26:55, Tick Count: 393539515 (4.13:18:59.5150000), Host Name: CYBERADAPTBMT, Size: 3.08 KB
Process: AutoPatcher (5440), Thread ID: 44, Module: AutoPatcher.exe
Priority: 1, Source: AutoPatcher.Common.SQLHelper.RunQuery
File: C:\ProgramData\Symantec\SMP\Logs\a.log


It seems like a really good tool.
Please help me to use it well.

Jan 26, 2018 11:58 PM

Hi Mina,

 

I have problems executing the tool.
The task fails and the logs include the following:

System.Data.SqlClient.SqlException: Error converting a string of characters in date and / or time.

Failed to run SQL query on SMP DataBase.

Error converting a string of characters in date and / or time.
   [System.Data.SqlClient.SqlException @ .Net SqlClient Data Provider]
   in System.Data.SqlClient.SqlConnection.OnError (SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   in System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning (TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   in System.Data.SqlClient.TdsParser.TryRun (RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean & dataReady)
   in System.Data.SqlClient.SqlDataReader.TryHasMoreRows (Boolean & moreRows)
   in System.Data.SqlClient.SqlDataReader.TryReadInternal (Boolean setTimeout, Boolean & more)
   in System.Data.SqlClient.SqlDataReader.Read ()
   in System.Data.Common.DataAdapter.FillLoadDataRow (SchemaMapping mapping)
   in System.Data.Common.DataAdapter.FillFromReader (DataSet dataset, DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32 startRecord, Int32 maxRecords, DataColumn parentChapterColumn, Object parentChapterValue)
   in System.Data.Common.DataAdapter.Fill (DataTable [] dataTables, IDataReader dataReader, Int32 startRecord, Int32 maxRecords)
   in System.Data.DataTable.Load (IDataReader reader, LoadOption loadOption, FillErrorEventHandler errorHandler)
   in AutoPatcher.Common.SQLHelper.RunQuery (String Query) in c: \ Users \ Administrator.EPM \ Documents \ Visual Studio 2013 \ Projects \ AutoPatcher \ AutoPatcher \ AutoPatcher.Common \ SQLHelper.cs: line 129

SQL Exception details: code = 241, line = 158

Exception logged from:
   at AutoPatcher.Common.SQLHelper.RunQuery (String)
   at AutoPatcher.Common.SQLHelper.RunQuery (String, TimeSpan &)
   at AutoPatcher.Operation.AutoPatcherOperations.GetAllBulletinsDetails (System.DateTime, Boolean)
   at AutoPatcher.Operation.AutoPatcherOperations.GetAllBulletinsDetailsByPlatform (System.DateTime, AutoPatcher.Operation.AutoPatcherConfig + Constants + Platform)
   at AutoPatcher.Operation.AutoPatcherOperations + BulletinsCleaner.CleanSupersededBulletins ()
   at AutoPatcher.Operation.AutoPatcherOperations + BulletinsCleaner.Run ()
   at AutoPatcher.Operation.AutoPatcherOperations.Run (AutoPatcher.Operation.AutoPatcherConfig, Boolean)
   at AutoPatcher.UI.FormMain + <> c__DisplayClass45. <Run_Click> b__41 ()
   at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext, System.Threading.ContextCallback, Object, Boolean)
   at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext, System.Threading.ContextCallback, Object, Boolean)
   at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext, System.Threading.ContextCallback, Object)
   at System.Threading.ThreadHelper.ThreadStart ()

User [HUAPI \ xpearsbe], Auth [HUAPI \ xpearsbe], AppDomain [AutoPatcher.exe]

-------------------------------------------------- -------------------------------------------------- -
 

System.Data.SqlClient.SqlException: El nombre de columna 'UpdateGuid' no es válido.
El nombre de columna 'UpdateGuid' no es válido.
El nombre de columna 'UpdateGuid' no es válido.
El nombre de columna 'UpdateGuid' no es válido.

 

---------------------------------------------------------------------------------------------------------

Failed to run SQL query on SMP DataBase.

El nombre de columna 'UpdateGuid' no es válido.
El nombre de columna 'UpdateGuid' no es válido.
El nombre de columna 'UpdateGuid' no es válido.
El nombre de columna 'UpdateGuid' no es válido.
   [System.Data.SqlClient.SqlException @ .Net SqlClient Data Provider]
   en System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   en System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   en System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   en System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
   en System.Data.SqlClient.SqlDataReader.get_MetaData()
   en System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
   en System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds)
   en System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite)
   en System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   en System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
   en System.Data.SqlClient.SqlCommand.ExecuteReader()
   en AutoPatcher.Common.SQLHelper.RunQuery(String Query) en c:\Users\Administrator.EPM\Documents\Visual Studio 2013\Projects\AutoPatcher\AutoPatcher\AutoPatcher.Common\SQLHelper.cs:línea 127

SQL Exception details: code=207, line=93

Exception logged from: 
   at AutoPatcher.Common.SQLHelper.RunQuery(String)
   at AutoPatcher.Common.SQLHelper.RunQuery(String, TimeSpan&)
   at AutoPatcher.Operation.AutoPatcherOperations.GetAllUpdatesDetails(System.DateTime, Boolean)
   at AutoPatcher.UI.FormMain.<button_LoadBulletinsDetails_Click>b__4e()
   at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, Object)
   at System.Threading.ThreadHelper.ThreadStart()

User [HUAPI\xpearsbe], AppDomain [AutoPatcher.exe]

---------------------------------------------------------------------------------------------------------------------------------------

My environment is formed by the following:

NS
Windows 2012 R2 x64
Patch Management 8.1.5836

MS SQL on another server.
I attach images of the configuration.
Any help is welcome! Thank you!

 

 

Sep 08, 2017 08:50 AM

Hi Mina,

Great tool! thanks

Is it possible to request to add the category to the bulletin configuration, so when you only want to stage security updates only, or just service packs...

Regards,

Rufus Swart.

Apr 24, 2017 05:12 AM

I gave a thumb up. It look like a lot work was put into it.

I wonder what language it was written in ? Also how does it compare to Symantec Zero Day Workflow ?

This is private initiative while as for Workflow we can have the support from Symantec.

Nov 28, 2016 02:12 PM

this is great, thanks for sharing your tool!

Related Entries and Links

No Related Resource entered.