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