gpt4 book ai didi

powershell - 使用 Powershell 从 HKCR 返回值

转载 作者:行者123 更新时间:2023-12-04 23:28:28 26 4
gpt4 key购买 nike

我在 Powershell 中有一个函数,它返回注册 COM dll 的路径;在函数内返回正确的路径,但是当调用此函数时,输出前面有一个额外的字符串“HKCR”

function com_registeredpath()
{
param([string]$guid)

New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT

$key = Get-Item "HKCR:\CLSID\$guid\InprocServer32"
$values = Get-ItemProperty $key.PSPath

[string] $defaultValue = [string] $values."(default)"
write-host ">>>: $defaultValue" # returns a value like: c:\somefolder\somefile.dll

remove-psdrive -name HKCR
return $defaultValue
}

write-host "~~~" (com_registeredpath "{00F97463-DF44-11D1-BED5-00600831F894}") # returns a value like: HKCR c:\somefolder\somefile.dll

有人可以解释这种奇怪的行为吗?我希望两个返回值都相同。

最佳答案

我没有得到以 reg hive 为前缀的路径。
首先,您需要抑制新 psdrive 的结果,您不希望该函数返回除 dll 路径以外的任何内容(我将其分配为 null)。
最后,您无需创建 psdrive 即可获得该值,只需使用 HKCR 的提供程序路径

function Get-ComRegisteredPath
{
param( [string]$Guid )

try
{
$reg = Get-ItemProperty "Registry::HKEY_CLASSES_ROOT\CLSID\$Guid\InprocServer32" -ErrorAction Stop
$reg.'(default)'
}
catch
{
Write-Error $_
}
}

PS> Get-ComRegisteredPath -Guid '{00F97463-DF44-11D1-BED5-00600831F894}'

关于powershell - 使用 Powershell 从 HKCR 返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8633307/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com