pf-script.ps1
function New-ScriptBlock ($script, [string[]]$modules = @(), $snapins) { if ($snapins) { $registered = ( Get-PSSnapin -Registered ).Name $snapinList = Get-PSSnapin | Where-Object name -in $registered | Where-Object name -like $snapins | ForEach-Object { "Add-PSSnapin $($_.Name)" } } if ( $modules ) { $ipmo = @() foreach ($module in $modules) { $ipmo += Get-Module | Where-Object name -like $module } $ipmo = $ipmo | Select-Object -Unique $ipmoScript = $ipmo | ForEach-Object { "Import-Module $($_.Path) -DisableNameChecking" } } $inst = @() + $snapinList + $ipmoScript + $script $batch = $inst -join "`n" $result = [ScriptBlock]::Create( $batch ) return $result } function Get-ScriptFunctions_WithInvalidChars { Get-ChildItem pf-* -Recurse -Filter *.ps1 | Get-ScriptFunctions | Where-Object { $_ -match '\w+-\w+-' } } |