Création d’une clé de registre avec des composants de chemin via PowerShell

Pour une application héritée, je dois créer une clé de registre avec un nom au format c:/foo/bar/baz . (Remarque: barres obliques inversées, pas de barres obliques inverses.) Pour être clair: il s’agit du nom d’une seule clé, avec des barres obliques, qui ressemble à un chemin Windows. Parce que je dois créer un script contre beaucoup de serveurs, PowerShell semble être une excellente option.

Le problème est que je ne peux pas comprendre comment créer une clé dans ce format via PowerShell. New-Item -Path HKLM:\SOFTWARE\Some\Key -Name 'c:/foo/bar/baz' erreurs avec PowerShell pensant utiliser / comme séparateur de chemin et ne pas trouver le chemin HKLM:\Software\Some\Key\c:\foo\bar , qui n’existe pas (et ne devrait pas). Je ne peux trouver aucun autre moyen d’utiliser (ab) New-Item pour obtenir ce que je veux.

Y a-t-il quelque chose qui me manque ou devrais-je abandonner et simplement générer et charger une sauvegarde de registre à l’ancienne?

Vous devez faire deux choses. Vous devez d’abord obtenir un object RegistryKey accessible en écriture, sinon vous ne pourrez rien modifier. Deuxièmement, utilisez CreateSubKey méthode CreateSubKey sur l’object RegistryKey .

 $writable = $true $key = (get-item HKLM:\).OpenSubKey("SOFTWARE", $writable).CreateSubKey("C:/test") $key.SetValue("Item 1", "Value 1") 

Après avoir créé la clé, vous utilisez l’object résultant pour y append des valeurs.