none
PowerShell에서 Class ID 검색 RRS feed

답변

  • 안녕하십니까? 김도남 님

    Microsoft TechNet Forum 사이트를 방문해 주셔서 감사합니다.

     

    문의 하신 “PowerShell에서 Class ID 검색에 대한 답변을 드리겠습니다.

     

    Step 1 : Registry 정보

     

    Get-ItemProperty Cmdlet Path 인자 값에 와일드 문자를 이용해서 각 키 값에 있는 SubDirectory를 정보를 제공할 수 있습니다.

     

    아래의 Cmdlet은 와일드 문자를 이용해서 각 키 값에 있는  InprocServer32 서브 키의 정보를 제공을 합니다.

     

    Get-ItemProperty 'HKLM:\Software\Classes\CLSID\*\InprocServer32'

     

     

    Step 2 : 필터

     

    Match 연산자를 이용해서 문자열에서 특정한 부분만을 출력을 할 수 있습니다. 표현식에 일치된 문자값은 matches변수에 저장이 됩니다.

     

    아래의 Script는 일치된 문자열이 있으면 그 문자열을 출력을 합니다.

     

    If(“Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\Software\Classes\CLSID\{3F4DACA4-160D-11D2-A8E9-00104B365C9F}\InprocServer32” -match '{.*}')

    {

     Write-Host $_.PSPath  ":"  $matches[0]

    }

     

    Step 3 : Full Script

     

    function Get-ClassID {

     

      param($fileName = 'windowscodecs.dll')

     

     

      Write-Warning '잠시 기다려주세요.'

     

      

     

    Get-ItemProperty 'HKLM:\Software\Classes\CLSID\*\InprocServer32' |

     

      Where-Object { $_.'(Default)' -like "*$FileName" } |

     

      ForEach-Object {

     

      if ($_.PSPath -match '{.*}') { Write-Host $_.PSPath  ":"  $matches[0]

     

       }

     

      }

    } 

     

     

    Get-ClassID

     

     

     

    참고 자료

    Write-Warning

    http://technet.microsoft.com/ko-kr/library/dd347569.aspx

    Get-ItemProperty

    http://technet.microsoft.com/ko-kr/library/dd315312.aspx

     

    Using the Where-Object Cmdlet

    http://technet.microsoft.com/en-us/library/ee177028.aspx

     

    Using the Foreach-Object Cmdlet

    http://technet.microsoft.com/en-us/library/ee176828.aspx

     

    제가 문제에 대해 더 알아야 할 것이 있다면 응답 주시면 감사하겠습니다.

    제시해 드린 답변이 도움이 되었기를 바랍니다.

    • 답변으로 표시됨 김도남 2011년 11월 15일 화요일 오전 9:01
    2011년 11월 14일 월요일 오전 9:27
    중재자