Forcing Computer Refresh Through API

Is there a way to send a notice to agents to force the refresh that mimics the “Send Refresh” command in the console but using the API instead? Ive seen references to a possible task that sends a “notify client ForceRefresh” but I have no Idea what the actual task would look like if its possible.

1 Like

Here are some examples:

http://bigfix.me/fixlet/details/3942

http://bigfix.me/fixlet/details/3967


I would also like the ability to tell the client to force refresh, poll for commands, or other similar commands directly from the client command line, particularly when doing testing.

I was reading one of your other posts about the agent deep sleep options and the other “send” commands on the menu. I was hoping to use the force agent refresh to get it to respond back when we trigger an action and they are stuck in “not reported” status for a long time. But from what you were saying in your other thread, it sounds like if its in deep sleep then only the send alert will wake it up?

How does a refresh in such a case even work if it may just ignore it for a while or am I misunderstanding how that all works?

Other thread: What is "Send Client Alert Request"?

The clients don’t use deep sleep by default unless they are Android. You could configure Deep Sleep if you wanted, but that would probably only make sense for laptops. The right click to send a client alert brings the client out of deep sleep on demand, but it should only work if the client gets the UDP packet from the system or if it polls for commands.

If you have computers that are not reporting for a long time, it is likely that they are not receiving the UDP packets that the system sends to notify them of work to be done. In this case you should enable command polling.

Sending a ForceRefresh does nothing to cause the client to respond right away. It still must either get the UDP packet or do a poll for commands to see that it should refresh itself.

I would recommend all clients poll for commands at least once every 12 hours. Clients that are off network or mobile and unlikely to receive the UDP packets, they should poll for commands at once an hour, give or take. It is not a good idea to enable command polling that is too aggressive. Command polling primarily impacts the relays.

Clients will actually perform a command poll on startup and after relay selection “just in case” for this exact reason. Otherwise sites do automatically gather on a period (set up by the site or deployment) on their own but these type of command messages are only done this way.

1 Like

For this request @jgstew are you thinking something like running the client again with a command line and it would request the client to do something that would normally be sent via UDP?

1 Like

The client is already running, but I want a way to tell it to do something, like poll for commands, force refresh, client alert, or similar.

Currently restarting the Client service is the best option to approximate what I want, but this is an ugly solution and problematic if the client is already in the middle of something. I don’t necessarily want to interrupt what it is up to at that exact moment, but I want to give it things to do as if they had come from the console, like force refresh, or cause it to poll for commands right away, regardless of the current command polling settings or intervals.


One use case is I’m testing deploying something through the console, but the client I’m on does not get the UDP commands, but I don’t want to wait for a 1 hour command polling interval, but I also don’t want the command polling to be every 5 minutes or something aggressive all of the time when I am only testing things some of the time.

Another option is running a script that will change things on the computer in significant ways, and I want to force the client to update some/all of the related analysis properties so that they are accurate, but also check for actions that were not relevant before the script run, that might be relevant now.

Another case is when a machine wakes for a maintaince window from a scheduled task, we want to kick things off so they can get going as fast as possible during this window, but actions that were created while it was sleeping were missed and not checked for and found.

So would a ClientUI type of technician window solve most of the command type of things?

The second would be a ForceRefresh as that does alter the property times but it also forces the client to an elevated CPU state so are you asking for something different?

The third, are you defining a Quiet time for the client? And an option to run faster when it wakes from Quiet should solve this (and maybe include a command poll there automatically for safety)

1 Like

I am not defining a quiet time for the client, though I am curious about that for other reasons.

I’m fine with ForceRefresh causing an elevated CPU state. I often want both… for it to update properties, but also to temporarily elevate CPU. It would be nice to have list of the possible states of the client, the general effects, and how to trigger these states. Quite_Time, Deep_Sleep, Start_Up_Normal_Speed, During ForceRefresh/ClientAlert, others…

A clientUI type of technician window would help, but I would also like to somehow trigger it through an API or command line.

So I’ll try and come up with a post over the next few days that will help describe the “Normal” states and performance and the “Other” states (Sleep/Quiet etc) which make it move from the Idle speed

1 Like

I was thinking about this again recently.

I want to be able to force the client locally through the command line to do certain things without having to restart the client service. Some have already been discussed above, while others have not.

  • Reload client settings (changed by another process)
  • Poll for commands
  • ForceRefresh

Some things can be triggered by having a policy action that has relevance that looks for a particular condition, and then the action runs and makes changes, but the problem with that is the client won’t be responsive to quick changes depending on the evaluation loop, quiet times, power save states, etc…

Some examples I can think of are wanting to have the BigFix client behave more aggressively when a VPN connection is made temporarily so that it can trigger communication that requires the VPN. This is another example: Automatically adjust BESClient settings when on battery power

One thing I also thought of is that you might not want it to be too simple for a command to affect the BigFix client directly. It could be that providing the Computer ID along with the command would make it harder to do without some knowledge.

The main issue with this request I see is that how do you tell the BES Client that is already running to do something through a command line? Probably needs some sort of API or other mechanism.

CC: @AlanM