Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?xml version='1.0' encoding='utf-8' ?>
- <Snippets xmlns='http://schemas.microsoft.com/PowerShell/Snippets'>
- <Snippet Version='1.0.0'>
- <Header>
- <Title>DynamicParam</Title>
- <Description></Description>
- <Shortcut></Shortcut>
- <Keywords>editor,console</Keywords>
- <Author></Author>
- <DifficultyLevel>1</DifficultyLevel>
- <Example>False</Example>
- <SnippetTypes>
- <SnippetType>Expansion</SnippetType>
- </SnippetTypes>
- <Requirements>
- <MinimumPowerShellVersion>3</MinimumPowerShellVersion>
- <RequiredModules></RequiredModules>
- <AdminPrivileges>False</AdminPrivileges>
- <ProcessorArchitecture>x64</ProcessorArchitecture>
- </Requirements>
- </Header>
- <Code>
- <Script Language='PowerShell' CaretOffset='1021'>
- <![CDATA[[CmdletBinding()]
- param
- ()
- DynamicParam {
- $attributes = new-object System.Management.Automation.ParameterAttribute
- $attributes.ParameterSetName = "__AllParameterSets"
- $attributes.Mandatory = $true
- $attributeCollection =new-object -Type System.Collections.ObjectModel.Collection[System.Attribute]
- $attributeCollection.Add($attributes)
- $_Values = Get-WmiObject -Class win32_volume| Where-Object -FilterScript {$_.DriveLetter -NE $null} | Select-Object -ExpandProperty DriveLetter
- $ValidateSet =new-object System.Management.Automation.ValidateSetAttribute($_Values)
- $attributeCollection.Add($ValidateSet)
- $dynParam1 =new-object -Type System.Management.Automation.RuntimeDefinedParameter("DriveLetter", [string], $attributeCollection)
- $paramDictionary =new-object -Type System.Management.Automation.RuntimeDefinedParameterDictionary
- $paramDictionary.Add("DriveLetter", $dynParam1)
- return $paramDictionary
- }
- process{
- $DriveLetter = $PSBoundParameters.DriveLetter
- Write-output (get-item $DriveLetter)
- }]]>
- </Script>
- </Code>
- </Snippet>
- </Snippets>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement