There's something called "Inventory Max Random Delay", which is a sorta kinda
hidden setting. You can adjust it, just not via the console. My understanding
of what it is for is to randomize when, for example, someone uses client push
to say... their entire, newly discovered, every single system discovered in AD.
It's so that there isn't a flood of full inventory within 10 minutes in those
cases. Of course, if you're a mature installation--it's unlikely that you'll
have that. By default it is 240 minutes (4 hours)--we've changed ours to 60.
To see what it is set to, here's the SQL you'd run in SQL Server Management
Studio against your cm_sitecode database, just to see what yours it set at:
(view only, it changes nothing.) Each primary will have it set. (If you are
unlucky to have a CAS, it will have it as well; but a CAS has no clients so
it's not really relevant; but for consistency may want to change it) SELECT
SD.SiteCode, SCC.ClientComponentName, SCP.Name, SCP.Value1, SCP.Value2,
SCP.Value3 FROM SC_ClientComponent SCCJOIN SC_SiteDefinition SD ON
SD.SiteNumber = SCC.SiteNumberJOIN SC_ClientComponent_Property SCP ON
SCP.ClientComponentID = SCC.IDWHERE SCP.Name like '%Inventory Max Random
Delay%' To adjust the Max Random Delay, you run the attached vbscript, after
modifying the SiteCode to match the one you are changing You run it as cscript
whatever.vbs YourPrimaryServerName The3CharSiteCode (after changing the
desiredvalue and sitecode inside). If you have multiple primaries, you need to
run it on each one--it's per sitecode.
=============================
Take a look at inventoryagent.log.
-----Original Message-----
From: Roland Janus [[email protected]]
Sent: Tuesday, June 23, 2015 05:43 AM Eastern Standard Time
To: [email protected]
Subject: [mssms] hardware inventory not triggered on new client installation
I have that same issue on two 2012 R2 SP1 installations and never noticed that
before: The schedule for hw inv is set to once a day (regular, not custom).When
installing a system using OSD the ddr is sent right away, but hardware
inventory isn’t (software inv is empty).The action is available, so it knows
that it needs to or at least that it is enabled, I can trigger it manually and
it works fine then but unless I trigger it manually it just sits there . The
same happens when installing the client on existing machines. Not on all of
them but some. (given they are a mess and will be refreshed later on)But as it
seems to have the policy, why isn’t it triggering it right after the agent
install or OSD? I’ve never noticed that behavior on previous versions (I think)
-R
The information transmitted is intended only for the person or entity to which
it is addressed
and may contain CONFIDENTIAL material. If you receive this material/information
in error,
please contact the sender and delete or destroy the material/information.
On Tuesday, June 23, 2015 5:04 AM, Daniel Ratliff <[email protected]>
wrote:
#yiv3697595947 -- filtered {panose-1:2 4 5 3 5 4 6 3 2 4;}#yiv3697595947
filtered {font-family:Calibri;panose-1:2 15 5 2 2 2 4 3 2 4;}#yiv3697595947
p.yiv3697595947MsoNormal, #yiv3697595947 li.yiv3697595947MsoNormal,
#yiv3697595947 div.yiv3697595947MsoNormal
{margin:0cm;margin-bottom:.0001pt;font-size:11.0pt;}#yiv3697595947 a:link,
#yiv3697595947 span.yiv3697595947MsoHyperlink
{color:#0563C1;text-decoration:underline;}#yiv3697595947 a:visited,
#yiv3697595947 span.yiv3697595947MsoHyperlinkFollowed
{color:#954F72;text-decoration:underline;}#yiv3697595947
span.yiv3697595947EmailStyle17 {color:windowtext;}#yiv3697595947
.yiv3697595947MsoChpDefault {}#yiv3697595947 filtered {margin:70.85pt 70.85pt
2.0cm 70.85pt;}#yiv3697595947 div.yiv3697595947WordSection1 {}#yiv3697595947
On Error Resume Next
'*** Define string variables for device, device Resource ID and user of
interest
Class_Name = "SMS_SCI_ClientComp"
Class_ItemName = "Hardware Inventory Agent" '
"Software Inventory Agent" for SINV
Class_ItemType = "Client Component"
Property_Name = "Hardware Inventory Max Random Delay Minutes" '
"Software Inventory Max Random Delay Minutes" for SINV
Property_SiteCode = "PR1" '
Replace Site Code for Primary Site here
DesiredValue = 60 '
Desired Value in Minutes
'*** Check parameters - we need the provider server name and the site code
set args=wscript.arguments
If args.Count = 2 then
SMSProviderServer = UCASE(Wscript.Arguments(0))
SiteCode = UCASE(Wscript.Arguments(1))
Else
wscript.Echo "Incorrect command line arguments." & vbCrLf & "Usage:
cscript /nologo ModifySCFProperty.vbs <smsproviderserver> <sitecode>" & vbCrLf
& "Example: cscript /nologo ModifySCFProperty.vbs SERVER1 S01" & vbCrLf
WScript.Quit(1)
End If
'*** Connect to the provider - report the error and terminate on failure
SMSProviderServer = "\\" + SMSProviderServer + "\"
Set ObjSvc = GetObject("winmgmts:" &
"{impersonationLevel=Impersonate,authenticationLevel=Pkt}!" & SMSProviderServer
& "root\sms\site_" & SiteCode)
If Err.Number <> 0 Then
wscript.Echo "Failed to connect to provider server with code: " &
Err.Number & ". Aborting!"
WScript.Quit(2)
End If
'*** Get the desired instance of the class
Set objInst = ObjSvc.Get(Class_Name & ".ItemName='" & Class_ItemName &
"',ItemType='" & Class_ItemType & "',SiteCode='" & Property_SiteCode &"'")
If Err.Number <> 0 Then
WScript.Echo "Failed to open desired object with error code " &
Err.Number & " (" & Err.Description & "). Aborting!"
WScript.Quit(3)
End If
'*** Loop through the Properties until we find a match or run out
bFoundProperty = False
For Each objProp in objInst.Props
If objProp.PropertyName = Property_Name Then
bFoundProperty = True
Exit For
End If
Next
If bFoundProperty = False Then
WScript.Echo "Desired object was found but property was not found.
Exiting without making any changes."
WScript.Quit(4)
End If
'*** Property found so check to see if existing value matches desired,
changing it as appropriate
If objProp.Value = DesiredValue Then
WScript.Echo "Property '" & Property_Name & "' found with desired value
'" & DesiredValue & "'. Not making any changes."
WScript.Quit(0)
Else
OriginalValue = objProp.Value
objProp.Value = DesiredValue
objProp.Put_
objInst.Put_
If Err.Number <> 0 Then
wscript.Echo "Failed to save the desired change with code: " &
Err.Number & ". Aborting!"
WScript.Quit(5)
Else
WScript.Echo "Property '" & Property_Name & "' successfully
changed from '" & OriginalValue & "' to '" & DesiredValue & "'."
End If
End If