【发布时间】:2010-10-14 04:53:55
【问题描述】:
在 Powershell 中,我可以创建可用于控制 Microsoft Office 应用程序的 COM 对象:
$excel = New-Object -com "Excel.Application"
$excel.visible = $true
如何列出可以在 Powershell 中创建的所有可用 COM 对象?
【问题讨论】:
标签: com powershell
在 Powershell 中,我可以创建可用于控制 Microsoft Office 应用程序的 COM 对象:
$excel = New-Object -com "Excel.Application"
$excel.visible = $true
如何列出可以在 Powershell 中创建的所有可用 COM 对象?
【问题讨论】:
标签: com powershell
我发现这个 powershell 单行脚本应该列出所有 COM 对象。
gci HKLM:\Software\Classes -ea 0| ? {$_.PSChildName -match '^\w+\.\w+$' -and
(gp "$($_.PSPath)\CLSID" -ea 0)} | ft PSChildName
让我们知道它是否有效!
【讨论】:
HKLM\Software\Classes其实对应HKCR
ft PSChildName,而是管道到select -ExpandProperty PSChildName。这会将结果作为数组返回,可以使用 -match 或 Select-String 进行过滤。
Format-Text,你不会得到strings,而是一些格式相关的类
使用 Microsoft 的 OleView.exe。我认为它可能随 Visual Studio 一起提供。如果没有,您可以在Windows SDK 中找到它。下载量很大;您可以下载整个内容,也可以尝试使用 setup.exe 安装程序分段下载。
在 OleView 中,查看“类型库”。例如 Excel 出现在“Microsoft Exel”下。
【讨论】:
另一个需要注意的选项是通过 WMI:
Get-WMIObject Win32_ClassicCOMClassSetting
【讨论】: