Posh-Certutil.psm1
|
$script:SessionPool = [System.Collections.Concurrent.ConcurrentDictionary[string, object]]::new() $script:ModuleRoot = $PSScriptRoot $script:ConfigPath = Join-Path -Path $PSScriptRoot -ChildPath 'Config\Posh-Certutil.json' Get-ChildItem -Path "$PSScriptRoot\Private" -Recurse -Filter '*.ps1' -ErrorAction Stop | ForEach-Object { . $_.FullName } Get-ChildItem -Path "$PSScriptRoot\Public" -Filter '*.ps1' -ErrorAction Stop | ForEach-Object { . $_.FullName Export-ModuleMember -Function $_.BaseName } $MyInvocation.MyCommand.ScriptBlock.Module.OnRemove = { $script:SessionPool.Values | ForEach-Object { if ($null -ne $_.Session) { Remove-PSSession -Session $_.Session -ErrorAction SilentlyContinue } } $script:SessionPool.Clear() } |