When it comes to Tests, a wide array of objects could be "infrastructure". The most obvious is hostnames, but it could just as easily be Processes, Virtual environment components, Accounts, etc.
Each Control/Test is capable of connecting to and evaluating those objects with it being "provided" by the main driver Invoke-Infraspective but I think it would be more natural for the user to "point" a run at a specific set of targets. Something like:
Get-ADComputer -Filter Name -like "DC*" | Invoke-Infraspective
The invocation would then pass each object off to each Control which could be written to accept it as input on the pipeline. If a Control was expecting a different type of object, either the Control or the invocation would need to handle and "pass over" the exception
When it comes to Tests, a wide array of objects could be "infrastructure". The most obvious is hostnames, but it could just as easily be Processes, Virtual environment components, Accounts, etc.
Each Control/Test is capable of connecting to and evaluating those objects with it being "provided" by the main driver
Invoke-Infraspective
but I think it would be more natural for the user to "point" a run at a specific set of targets. Something like:The invocation would then pass each object off to each Control which could be written to accept it as input on the pipeline. If a Control was expecting a different type of object, either the Control or the invocation would need to handle and "pass over" the exception