Advertisement
About80Ninjas

DynamicParam.snippets.ps1xml

Dec 9th, 2016
687
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?xml version='1.0' encoding='utf-8' ?>
  2.     <Snippets  xmlns='http://schemas.microsoft.com/PowerShell/Snippets'>
  3.         <Snippet Version='1.0.0'>
  4.             <Header>
  5.                 <Title>DynamicParam</Title>
  6.                 <Description></Description>
  7.                 <Shortcut></Shortcut>
  8.                 <Keywords>editor,console</Keywords>
  9.                 <Author></Author>
  10.                 <DifficultyLevel>1</DifficultyLevel>
  11.                 <Example>False</Example>
  12.                 <SnippetTypes>
  13.                     <SnippetType>Expansion</SnippetType>
  14.                 </SnippetTypes>
  15.                 <Requirements>
  16.                     <MinimumPowerShellVersion>3</MinimumPowerShellVersion>
  17.                     <RequiredModules></RequiredModules>
  18.                     <AdminPrivileges>False</AdminPrivileges>
  19.                     <ProcessorArchitecture>x64</ProcessorArchitecture>
  20.                 </Requirements>
  21.             </Header>
  22.  
  23.             <Code>
  24.                 <Script Language='PowerShell' CaretOffset='1021'>
  25.                     <![CDATA[[CmdletBinding()]
  26. param
  27. ()
  28. DynamicParam {
  29. $attributes = new-object System.Management.Automation.ParameterAttribute
  30. $attributes.ParameterSetName = "__AllParameterSets"
  31. $attributes.Mandatory = $true
  32. $attributeCollection =new-object -Type System.Collections.ObjectModel.Collection[System.Attribute]
  33. $attributeCollection.Add($attributes)
  34. $_Values = Get-WmiObject -Class win32_volume| Where-Object -FilterScript {$_.DriveLetter -NE $null} | Select-Object -ExpandProperty DriveLetter
  35. $ValidateSet =new-object System.Management.Automation.ValidateSetAttribute($_Values)
  36. $attributeCollection.Add($ValidateSet)
  37. $dynParam1 =new-object -Type System.Management.Automation.RuntimeDefinedParameter("DriveLetter", [string], $attributeCollection)
  38. $paramDictionary =new-object -Type System.Management.Automation.RuntimeDefinedParameterDictionary
  39. $paramDictionary.Add("DriveLetter", $dynParam1)
  40. return $paramDictionary
  41. }
  42.  
  43. process{
  44. $DriveLetter = $PSBoundParameters.DriveLetter
  45. Write-output (get-item $DriveLetter)
  46. }]]>
  47.                 </Script>
  48.             </Code>
  49.  
  50.     </Snippet>
  51. </Snippets>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement