Home > Windows にまつわる e.t.c.

PowerShell でロード済みのアセンブリを確認する


PowerShell では、.NET Framework を直接ハンドリングすることがありますが、アセンブリがロードされていないとエラーになる仕様になっています。

このため、必要に応じて実行前に「Add-Type -AssemblyName」でアセンブリをロードするのですが、何でもかんでもロードするのは美しくないですね。

実行環境でロードされているアセンブリを確認するには「[System.AppDomain]::CurrentDomain.GetAssemblies()」を使います。

そのままだと必要な情報が表示されないので、「GetName().Name」で名前だけを表示します。

PS C:\> [System.AppDomain]::CurrentDomain.GetAssemblies() | % { $_.GetName().Name }
mscorlib
Microsoft.PowerShell.ConsoleHost
System
System.Core
System.Management.Automation
System.Management.Automation.resources
Microsoft.Management.Infrastructure
Microsoft.PowerShell.ConsoleHost.resources
System.Xml
System.Management
System.DirectoryServices
System.Numerics
System.Data
mscorlib.resources
Anonymously Hosted DynamicMethods Assembly
Microsoft.PowerShell.Security
System.Transactions
System.Configuration
Microsoft.Powershell.PSReadline
Microsoft.CSharp
Microsoft.PowerShell.Commands.Utility
System.Configuration.Install
Microsoft.PowerShell.Commands.Management
System.ServiceProcess
System.xml.resources
Microsoft.PowerShell.Commands.Utility.resources
System.Security
System.Data.SqlXml
System.Web.Extensions
System.Xml.Linq
System.Windows.Forms
System.Drawing

 

実行のためにロードが必要なアセンブリであれば、「Add-Type -AssemblyName アセンブリ名」か「[void][System.Reflection.Assembly]::LoadWithPartialName(アセンブリ名)」でアセンブリをロードします。

 

back.gif (1980 バイト)

home.gif (1907 バイト)

Copyright © MURA All rights reserved.