我已经在上安装(并注册)了一个 DCOM 应用程序W2K8R2机器,并且它的GUID可以在dcomcnfg显示的DCOM列表中找到。
我也可以使用 Powershell 查找Win32_DCOM应用程序或者Win32_DCOM应用程序设置对象的 GUID:
PS C:\Windows\system32> Get-WMIObject Win32_DCOMApplicationSetting -Filter "AppID='{1CECFD4D-2CFB-4626-95C7-0266C26960FA
}'"
__GENUS : 2
__CLASS : Win32_DCOMApplicationSetting
__SUPERCLASS : Win32_COMSetting
__DYNASTY : CIM_Setting
__RELPATH : Win32_DCOMApplicationSetting.AppID="{1CECFD4D-2CFB-4626-95C7-0266C26960FA}"
__PROPERTY_COUNT : 12
__DERIVATION : {Win32_COMSetting, CIM_Setting}
__SERVER : MYSRV
__NAMESPACE : root\cimv2
__PATH : \\MYSRV\root\cimv2:Win32_DCOMApplicationSetting.AppID="{1CECFD4D-2CFB-4626-95C7-0266C269
60FA}"
AppID : {1CECFD4D-2CFB-4626-95C7-0266C26960FA}
AuthenticationLevel :
Caption :
CustomSurrogate :
Description :
EnableAtStorageActivation : False
LocalService :
RemoteServerName :
RunAsUser :
ServiceParameters :
SettingID :
UseSurrogate : False
输出显示我的 GUID 有一个 DCOM 应用程序条目。但是它没有显示可执行文件的路径。有没有办法使用 WMI 检索应用程序可执行文件的完整路径?
答案1
在 Powershell 中使用 Win32_ClassicCOMClassSetting 类
Get-WMIObject Win32_ClassicCOMClassSetting -Filter "AppID='{1CECFD4D-2CFB-4626-95C7-0266C26960FA}'" | select -ExpandProperty InProcServer32
或使用 WMIC
wmic /namespace:\\root\cimv2 path Win32_ClassicCOMClassSetting WHERE AppID^="{1CECFD4D-2CFB-4626-95C7-0266C26960FA}" Get InProcServer32
*在 Windows 8.1 x64 上进行了测试
或使用 reg.exe
reg QUERY HKCR\Wow6432Node\CLSID\{1CECFD4D-2CFB-4626-95C7-0266C26960FA}\Inprocserver32 /ve
答案2
当您在注册表中搜索时会发生什么{1CECFD4D-2CFB-4626-95C7-0266C26960FA}
?
因此 powershell 组件应该可以帮助您入门:
$cred = Get-Credential domain\user
Enter-PSSession <name of computer> -Credential $cred
Set-Location HKCR:\Wow6432Node\CLSID\{1CECFD4D-2CFB-4626-95C7-0266C26960FA}\LocalServer32
Get-ChildItem