Video Screencast Help

How to make a Target update?

Created: 22 Dec 2010 | 12 comments

We are having issues with Targets not updating as needed.  In NS6 you could add a computer to a collection, update the collection, update the PCs configuration and immediately the new policy would apply.  In NS7 this does not appear to be the same behavior.  We add a PC to a filter, update the filter, Update the client config but it doesn't get the new policy.  It will only get the new policy after the Delta Update Schedule runs and updates all of the Targets.  When I go and manually look at the policy I can see that the target is not updating its list when the filter is updated.

We are in desperate need to find a way to make a target update its membership so that the policies can apply immediately.  We have a large environment so the Update schedule is set to run every 30 minutes.  This means that after we add a PC to a filter you have to wait 30 minutes before they PC will get the new policy.  Is there anything that can be done to make this more immediate?  Perhaps some function or stored procedure that can be ran to tell it to update just this one target list?

Comments 12 CommentsJump to latest comment

Thomas Baird's picture

This is an interesting thing you're seeing.  It should work, in theory, the same way it did in NS6, but I've never quite tested it this way.  I'd probably check the targets to see if there's anything in it we missed (it can have more than one filter).

That said, I'm really interested in testing this.  Can you give steps to dup, including what kind of filter/target and what kind of policy?


Thomas Baird
Enthusiast for making things better!

robertser's picture

I have a filter that contains as an include "Windows computers with application metering plugin" and a list of PCs in the exclude.  In the App Metering policy it has one target and that target is assigned to this one filter only. 

I will add a computer to the exclusion list in the filter and update the filter. I then verify that the computer has been added and that it no longer shows in the membership of the filter.  Next open up the policy and change the view from Targets to Computers.  The computer that is no longer showing up in the filter is STILL showing up in this Target list.  I can either wait for the Scheduled Delta Update to run or edit the target and do a Update results and then the computer will no longer show up in the Target list.

I have found one potential workaround.  I found a Stored Procedure called spResourceTargetDeltaUpdate.  I saved the Target and gave it a name, looked up the GUID of the newly saved target in the Item table, and pass that GUID into this stored procedure.  When I run this stored proc it will update the target list inside the policy.

As a temporary and painful workaround I created a Job and assigned it 4 tasks.  First task does a Filter membership update on the filter we are using.  The 2nd task runs a SQL script on the server to execute the Stored Procedure.  The 3rd task runs a vbscript on the server to pause for 30 seconds.  Finally the 4th task runs a configuration update on the client PC so that it can get the new policy.

This is the SQL query we are running to update the target:
exec spResourceTargetDeltaUpdate @resourceTargetGuid='C831299F-9748-475B-A1E0-E5455D9163AE', @flush=1

Thomas Baird's picture

and I'll ping around to see if anyone knows more about this.

Thanks again.  :D

Thomas Baird
Enthusiast for making things better!

EMercado's picture

I'm very interested in this as well. It's happening in my environment too.

robertser's picture

Talked to support on this topic and they said it is working as designed.  I guess there is not supposed to be a method to update a target on demand.  You just have to wait for the update all policies schedule to execute and then wait for the PCs configuration to update.

It doesn't make sense as to why their are tasks in task server to update filters when that still does not update the targets that are using them.

What I have discerned so far is that there is not a supported method to update a Target on demand. If anyone else has some thoughts on that I would like to hear about them.

Thomas Baird's picture

Working as designed doesn't "always" mean the design is good.  :P  Did they mention anything about a feature request?  Or WHY it's designed this way perhaps?

Thomas Baird
Enthusiast for making things better!

robertser's picture

I started an Idea thread on Connect ( so vote it up.

I am waiting to hear back from the Platform PMs on what direction this is going to take.

ianatkin's picture

I've voted this idea up. I advise that anyone reading this do the same! 

Kind Regards,

Ian Atkin, IT Services, Oxford University, UK

Connect Etiquette: "Mark as Solution" those posts which assist you most in resolving your problem, and give a thumbs up to useful articles and downloads

mclemson's picture

Am I understanding right?  If the target of a policy changes, force computers to update configuration if they're affected?

e.g. 'MClemson Custom Inventory' policy runs weekly on a filter that includes all Toronto computers.  I modify the filter to specifically exclude TORONTO4 and specifically include TORONTOSERV.  After saving the filter, the target for the policy should immediately update, then force TORONTO4 and TORONTOSERV to get an updated policy?

Mike Clemson, Senior Systems Engineer, ASC
Intuitive Technology Group -- Symantec Platinum Partner

Thomas Baird's picture

This applies only to Targets, not filters, but since we often use Targets, it's still a valid complaint.

an update has to be run on the SERVER for the TARGET membership to be updated.  Filters are updated automatically when you view them.  Targets are not.  The agent has nothing to do with it.

Thomas Baird
Enthusiast for making things better!

schnyders's picture

If you know the guid of the target you can update it with the following sql statement

USE [Symantec_CMDB]


DECLARE @return_value int,

@added int,

@removed int,

@runMode bit

EXEC @return_value = [dbo].[spResourceTargetDeltaUpdate]

@resourceTargetGuid = '07782064-8F29-46A4-90E5-8CB4FAB644B2',

@flush = 0,

@added = @added OUTPUT,

@removed = @removed OUTPUT,

@runMode = @runMode OUTPUT

SELECT @added as N'@added',

@removed as N'@removed',

@runMode as N'@runMode'

SELECT 'Return Value' = @return_value


If a forum post solves your problem, please flag it as a solution. If you like an article, blog post or download vote it up.
robertser's picture

Thanks for the SQL code.  That is the same code I mentioned above that we are using as a temporary fix.  We are looking for some type of supported method.  I was also hoping to bring this issue to light for the community so we can push Symantec to make a change.  In my opinion it was a major oversight to not have this ability built-in from the start. Product Management has been telling me that this is working as designed by not being able to update a Target.  That means we all need to vote this idea up so they will see that the userbase wants it changed.