Le retour de la valeur de HKCR à l'aide de Powershell
J'ai une fonction dans Powershell qui renvoie le chemin d'où une dll COM est enregistrée; au sein de la fonction chemin d'accès correct est retourné, mais lorsque cette fonction est invoquée, il ya un supplément de chaîne "HKCR" précédé de la sortie
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
Peut-on expliquer ce comportement étrange? Je dirais que les deux valeurs de retour en même.
Vous devez vous connecter pour publier un commentaire.
Je n'ai pas de chemin le préfixe avec le reg de la ruche.
Tout d'abord, vous devez supprimer le résultat de la nouvelle psdrive, vous ne voulez pas la fonction pour renvoyer rien, mais la dll chemin (j'ai attribué à null).
Enfin, vous pouvez obtenir la valeur sans l'emballage d'un psdrive, il suffit d'utiliser le chemin d'accès de fournisseur pour HKCR
Je viens de la nettoyer un peu et cette version me donne le droit de chaîne.