CLSID für COM-Komponenten finden

Der folgende Praxistipp ist sehr speziell und allenfalls für Entwickler interessant, die noch mit COM-Komponenten zu tun haben. Er zeigt aber schön, wie sich mit den Mitteln der PowerShell keine Tools zusammenstellen lassen, ohne dafür ein richtiges Programm schreiben zu müssen.

Im Folgenden wird eine kleine Funktion vorgestellt, die zu einer bereits registrierten COM-Komponente über ihren Dateinamen die CLSID aus der Registry liest und ausgibt.

<#
.Synopsis
CLSID für eine Komponente abfragen
#>

function Get-CLSID
{
  param($COMLibName)
  “Suche wird gestartet… es kann eine Weile dauern”
  $CLSID = dir hklm:\Software\Classes\CLSID\`{*`}\InprocServer32 | `
   where { (“Registry::$($_.Name)” | Get-Itemproperty -Name “(Default)” -Ea 0) `
    -Match “$COMLibName” }  | Select @{Name=”Path”;Expression={$_.PSParentPath}} | Split-Path -Leaf
   “Fertig…”
  if ($CLSID)
  { $CLSID }
  else { “Keine CLSID gefunden – Komponente ist nicht registriert.” }
}

Get-CLSID -ComlibName VB6Lib.dll

Kommentar verfassen

Please log in using one of these methods to post your comment:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Log Out / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Log Out / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Log Out / Ändern )

Verbinde mit %s