2010-03-13 3 views

답변

3

확실하지 정확히 후 당신 만 비교할 경우 32 비트 및 64 비트 GAC'd 어셈블리 이런 식으로 뭔가를 시도 :

PS> $gac64 = gci C:\Windows\assembly\GAC_64 -r *.dll | 
    select @{n='AQN';e={"$($_), $((Split-Path $_.PSParentPath -leaf) -split '__' -join ', ')"}} | 
    Sort AQN 
PS> $gac32 = gci C:\Windows\assembly\GAC_32 -r *.dll | 
    select @{n='AQN';e={"$($_), $((Split-Path $_.PSParentPath -leaf) -split '__' -join ', ')"}} | 
    Sort AQN 

PS> diff $gac32 $gac64 -Property AQN 

AQN               SideIndicator 
---               ------------- 
Mcx2Dvcs.dll, 6.1.0.0, 31bf3856ad364e35      => 
Microsoft.MediaCenter.Interop.dll, 6.1.0.0, 31bf3856ad36... => 
Microsoft.MediaCenter.iTV.Media.dll, 6.1.0.0, 31bf3856ad... => 
Microsoft.MediaCenter.Mheg.dll, 6.1.0.0, 31bf3856ad364e35 => 
Microsoft.MediaCenter.Playback.dll, 6.1.0.0, 31bf3856ad3... => 
Microsoft.MediaCenter.TV.Tuners.Interop.dll, 6.1.0.0, 31... => 
Microsoft-Windows-HomeGroupDiagnostic.NetListMgr.Interop... => 
SoapSudsCode.dll, 2.0.0.0, b03f5f7f11d50a3a     => 
Expression.DevHost.dll, 3.0.0.4000, 31bf3856ad364e35  <= 
Expression.DevHost.resources.dll, 3.0.0.4000_en_31bf3856... <= 
Microsoft.Expression.Encoder.Api2.dll, 3.0.0.0, 31bf3856... <= 
Microsoft.Expression.Encoder.dll, 3.0.0.0, 31bf3856ad364e35 <= 

분할이 절대적이지는 않지만 32 비트와 64 비트 GAC의 차이점을 비교하는 것으로 충분해야합니다.

+0

도움 주셔서 감사합니다. 명령 줄을 자세히 설명해 주실 수 있습니까? $ gac64 = gci C : \ Windows \ assembly \ GAC_64 -r * .dll | 선택 @ {n = 'AQN'; e = { "$ ($ _), $ ((Split-Path $ _. PSParentPath -leaf) -split '__'-join ',") "}} | AQN 을 정렬하여 내 요구 사항에 따라 사용자 지정할 수 있습니다. –

+0

gci path -r * .dll은 경로에있는 모든 dll을 재귀 적으로 가져옵니다. select (select-object) cmdlet은 FileInfo의 다양한 속성을 가져 와서 AQN이라는 단일 속성에서 해당 속성을 조작하여 들어오는 개체 (Syste.IO.FileInfo)를 다른 개체 (PSCustomObject)로 투영 할 수 있습니다. Select-Object는이 프로젝트를 정의하는 해시 테이블을 허용합니다. Name 항목 (간단히 'n')은 속성 이름을 정의하고 Expression 항목 (간단히 'e')은 속성 값을 정의합니다. –

관련 문제