function Get-GAC
{
[CmdletBinding()]
param()
& 'C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\gacutil.exe' /L |
? { $_ -match '^ ([\w\.]+,.*)$' } |
% {
$fullName = ($Matches[1])
try
{
$assembly = [System.Reflection.Assembly]::Load($fullName)
$assembyName = $assembly.GetName()
new-object PSObject -prop @{
FullName = $assembly.FullName;
GAC = $assembly.GlobalAssemblyCache;
Version = $assembly.ImageRuntimeVersion;
FullyTrusted = $assembly.IsFullyTrusted;
Location = $assembly.Location;
Name = $assembyName.name;
ReferencedAssemblie = $assembly.GetReferencedAssemblies();
Token = ($assembyName.GetPublicKeyToken() | foreach {$_.ToString("X2")}) -join '';
HashAlgorithm = $assembyName.HashAlgorithm;
CultureInfo = $assembyName.CultureInfo;
}
}
catch [system.exception]
{
Write-Verbose $_
}
}| sort Name -unique
}
Przykład użycia jest poniżej. Dodatkowo dodajemy parametr verbose, gdyż nie wszystkie biblioteczki są załadowywane. Jeszcze troszkę będę musiał przy tym posiedzieć i sprawdzić dlaczego nie wszystko zostaje załadowane. Może ty masz jakiś pomysł??
( Get-GAC -Verbose ) | out-gridview
Brak komentarzy:
Prześlij komentarz