December 10, 2017 at 11:45 pm
Hello,
I am really trying to get my head around dynamic parameters, but I just dont know enough PS to get this right. I'd like to select an environment from a drop down (validateset, no issues here), but then I'd like a related list to become available in the next parameter, in other works..
-Env1 <list of environments> (I pick env1) -servers <list of env1 servers>
or if I chose env2, the -servers parameter would present me with a list of servers in env2
...I dont mind typing in a list of available servers for each environment, I'll come up with something for that later. So this is what I have so far, that does not work, here I am just trying to get it to work for just one of the choices to get me started..
Param(
[Parameter(Mandatory = $true, Position=0, HelpMessage="Choose your source environment")]
[ValidateSet("Env1", "Env2")][string]$Enviroment,
[Parameter(Mandatory = $true, Position=1)]
[ValidateSet(fn_if_env)] $servers
)
function fn_if_env ($Enviroment)
{
if( $Enviroment -eq "Env1")
{
$ParamDictionary = New-Object System.Management.Automation.RuntimeDefinedParameterDictionary
} if ($Environmet -eq "Env1") {
$servers = New-Object System.Management.Automation.ParameterAttribute -Property @{
Position = 3
Mandatory = $true,
[ValidateSet("Server1","server2","Server3")][string]$servers
}
$attributeCollection = new-object System.Collections.ObjectModel.Collection[System.Attribute]
$attributeCollection.Add($EnvProdAttribute)
$EnvProdAttribute = New-Object System.Management.Automation.RuntimeDefinedParameter('Env1', [String], $attributeCollection)
$paramDictionary.Add('Server1', $servers)
$paramDictionary.Add('Server2', $servers)
$paramDictionary.Add('Server3', $servers) }
}
...am I even close? Would love some help, I have found examples, but its normally the same one on different sites, and does not match very closely to what I want to do it. for example, I dont understand where I am supposed to put the servers options after the initial choice of environment, I'm fairly sure I've got wrong here.
Thank you all in advance.
Regards,
D.
Viewing post 1 (of 1 total)
You must be logged in to reply to this topic. Login to reply
This website stores cookies on your computer.
These cookies are used to improve your website experience and provide more personalized services to you, both on this website and through other media.
To find out more about the cookies we use, see our Privacy Policy