Assembly.psm1
function Initialize-Assembly { param ( [Parameter(Mandatory=$true, Position=0, ParameterSetName="Single")] [ValidateNotNullOrEmpty()] [string] $Name, [Parameter(Mandatory=$true, Position=0, ParameterSetName="Array")] [ValidateNotNullOrEmpty()] [string[]] $Names ) switch($PSCmdlet.ParameterSetName) { "Single" { [void][System.Reflection.Assembly]::LoadWithPartialName($Name) break } "Array" { $Names |% { [void][System.Reflection.Assembly]::LoadWithPartialName($_) } break } } } function Test-AssemblyLoaded { param ( [Parameter(Mandatory=$true, Position=0, ParameterSetName="Single")] [ValidateNotNullOrEmpty()] [string] $Name, [Parameter(Mandatory=$true, Position=0, ParameterSetName="Array")] [ValidateNotNullOrEmpty()] [string[]] $Names ) switch($PSCmdlet.ParameterSetName) { "Single" { (Get-AssemblyLoaded |? {$_ -match $Name}) -ne $null break } "Array" { $result = $true $assemblies = Get-AssemblyLoaded $Names |% { $assembly = $_ if(($assemblies |? {$_ -match $assembly}) -eq $null) { $result = $false } } $result break } } } function Get-AssemblyLoaded { [System.AppDomain]::CurrentDomain.GetAssemblies() } Export-ModuleMember *Assembly* |