I thought of another way to ensure hinv first, sinv later...
- enable hinv in default client settings. Disable sinv in default client settings.
- Create a collection; where that collection relies on an attribute only available once a successful hardware inventory has occurred. Like Operating System.Caption is not null. (aka something every box will submit)
- Create a Custom Client Agent Setting, where all it does is enable sinv, with your sinv rules.
- Deploy that custom client agent setting to the collection of "machines which have submitted hinv"
End result--new clients won't even WANT to do sinv, until they submit Hinv, and get into that collection, and get the custom policy saying "ok, now you can do sinv".