У меня есть функция в 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
Может кто-нибудь объяснить это странное поведение? Я ожидаю, что оба возвращаемых значения будут одинаковыми.