Windows Vista Forums
Vista Forums Home Join Vista Forums Windows 7 Forum Vista Tutorials Tags
Welcome to Windows Vista Forums. Our forum is dedicated to helping you find solutions with any problems, errors or issues you are experiencing with Windows Vista. The Vista forum also covers news and updates and has an extensive Windows Vista tutorial section that covers a wide range of tips and tricks.

Go Back   Vista Forums > Misc Newsgroups > PowerShell

Vista - CTP3 Registry provider: incorrect location info for keys with '/'

Reply
 
Old 01-06-2009   #1 (permalink)
Roman Kuzmin


 
 

CTP3 Registry provider: incorrect location info for keys with '/'

After these commands on my machine:
Quote:

> Set-Location HKCU:\Software\Far\PluginHotkeys
> Get-ChildItem
I can see a bunch of keys with '/' in their names:

Plugins/Brackets/Brackets.dll
Plugins/DrawLine/DrawLine.dll
Plugins/EditCase/EditCase.dll
....

Now let's step into one of this keys with funny names:
Quote:

> Set-Location Plugins/Brackets/Brackets.dll
It works, more or less, at least the current location is really
changed. But Get-Location shows incorrect paths where relevant '/' are
replaced with '\':
Quote:

> Get-Location | Format-List
Drive : HKCU
Provider : Microsoft.PowerShell.Core\Registry
ProviderPath : HKEY_CURRENT_USER\Software\Far\PluginHotkeys\Plugins
\Brackets\Brackets.dll
Path : HKCU:\Software\Far\PluginHotkeys\Plugins\Brackets
\Brackets.dll

Both paths shows not existing or different location (the latter case
is quite nasty).

Expected result should have two '/' instead of two last '\' in both
ProviderPath and Path.

=====
I recently posted this as a bug:
https://connect.microsoft.com/feedba...9657&SiteID=99

And got the answer: Closed (By Design): The registry provider treats
them as identical, and the provider infrastructure normalizes paths as
you navigate.
=====

Well, I do not really mind, but I just do not understand the answer.
Can anybody help me to understand what they mean?

Do they mean that paths

HKCU:\Software\Far\PluginHotkeys\Plugins\Brackets\Brackets.dll
HKCU:\Software\Far\PluginHotkeys\Plugins/Brackets/Brackets.dll

are identical for registry? If yes, it still looks wrong to me. The
first path points to the last key "Brackets.dll", the second to the
last key "Plugins/Brackets/Brackets.dll"

What am I missing?

My System SpecsSystem Spec
Old 01-06-2009   #2 (permalink)
Vadims Podans


 
 

Re: CTP3 Registry provider: incorrect location info for keys with '/'

in fact backslash is not the same as foreward slash. You can use foreward
slash ( / ) in key names but backslash ( \ ) is recognized as subkeys
separator. I confirm your report.


"Roman Kuzmin" <nightroman@xxxxxx> rakstija zinojuma
"news:4dcf50a8-65db-4f60-bdb4-91f39a7a0e98@xxxxxx"...
Quote:

> After these commands on my machine:
Quote:

>> Set-Location HKCU:\Software\Far\PluginHotkeys
>> Get-ChildItem
>
> I can see a bunch of keys with '/' in their names:
>
> Plugins/Brackets/Brackets.dll
> Plugins/DrawLine/DrawLine.dll
> Plugins/EditCase/EditCase.dll
> ...
>
> Now let's step into one of this keys with funny names:
>
Quote:

>> Set-Location Plugins/Brackets/Brackets.dll
>
> It works, more or less, at least the current location is really
> changed. But Get-Location shows incorrect paths where relevant '/' are
> replaced with '\':
>
Quote:

>> Get-Location | Format-List
>
> Drive : HKCU
> Provider : Microsoft.PowerShell.Core\Registry
> ProviderPath : HKEY_CURRENT_USER\Software\Far\PluginHotkeys\Plugins
> \Brackets\Brackets.dll
> Path : HKCU:\Software\Far\PluginHotkeys\Plugins\Brackets
> \Brackets.dll
>
> Both paths shows not existing or different location (the latter case
> is quite nasty).
>
> Expected result should have two '/' instead of two last '\' in both
> ProviderPath and Path.
>
> =====
> I recently posted this as a bug:
> https://connect.microsoft.com/feedba...9657&SiteID=99
>
> And got the answer: Closed (By Design): The registry provider treats
> them as identical, and the provider infrastructure normalizes paths as
> you navigate.
> =====
>
> Well, I do not really mind, but I just do not understand the answer.
> Can anybody help me to understand what they mean?
>
> Do they mean that paths
>
> HKCU:\Software\Far\PluginHotkeys\Plugins\Brackets\Brackets.dll
> HKCU:\Software\Far\PluginHotkeys\Plugins/Brackets/Brackets.dll
>
> are identical for registry? If yes, it still looks wrong to me. The
> first path points to the last key "Brackets.dll", the second to the
> last key "Plugins/Brackets/Brackets.dll"
>
> What am I missing?
My System SpecsSystem Spec
Old 01-06-2009   #3 (permalink)
Roman Kuzmin


 
 

Re: CTP3 Registry provider: incorrect location info for keys with '/'

Something is definitely wrong with '/' in registry names. Yet another
example:

Import this file test.reg into the registry:

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\a1]
[HKEY_CURRENT_USER\a1\foo]
[HKEY_CURRENT_USER\a1\foo\bar]
[HKEY_CURRENT_USER\a1\foo/bar]

Run regedit.exe and see what keys and paths we actually have there.
Key a1 contains two child keys "foo" and "foo/bar".

Now try to use PowerShell:
0> cd hkcu:\a1
0> ls

Hive: HKEY_CURRENT_USER\a1
SKC VC Name Property
--- -- ---- --------
1 0 foo {}
Hive: HKEY_CURRENT_USER\a1\foo
SKC VC Name Property
--- -- ---- --------
0 0 bar {}

So it shows two items with names "foo" and "bar". This is just wrong.
My System SpecsSystem Spec
Old 01-06-2009   #4 (permalink)
Vadims Podans


 
 

Re: CTP3 Registry provider: incorrect location info for keys with '/'

Yes, I tryied this way. PowerShell Registry Provider recognize all slashes
as key-subkey separator (as FileSystem Provider. But we can't create a file
or folder with any slash in name and it works as expected). However, how I
mentioned, Registry allow foreward slashes in key or subkeys name. Therefore
I think that bug exist.

"Roman Kuzmin" <nightroman@xxxxxx> rakstija zinojuma
"news:000debdc-9903-4c25-ad31-05beb7ce1e06@xxxxxx"...
Quote:

> Something is definitely wrong with '/' in registry names. Yet another
> example:
>
> Import this file test.reg into the registry:
>
> Windows Registry Editor Version 5.00
> [HKEY_CURRENT_USER\a1]
> [HKEY_CURRENT_USER\a1\foo]
> [HKEY_CURRENT_USER\a1\foo\bar]
> [HKEY_CURRENT_USER\a1\foo/bar]
>
> Run regedit.exe and see what keys and paths we actually have there.
> Key a1 contains two child keys "foo" and "foo/bar".
>
> Now try to use PowerShell:
> 0> cd hkcu:\a1
> 0> ls
>
> Hive: HKEY_CURRENT_USER\a1
> SKC VC Name Property
> --- -- ---- --------
> 1 0 foo {}
> Hive: HKEY_CURRENT_USER\a1\foo
> SKC VC Name Property
> --- -- ---- --------
> 0 0 bar {}
>
> So it shows two items with names "foo" and "bar". This is just wrong.
My System SpecsSystem Spec
Reply

Thread Tools


Similar Threads
Thread Forum
Registry Keys for Controlling Provider Security PowerShell
Incorrect Recipient Column Info Live Mail
WinNT provider and CTP3 PowerShell
How do I operate on (default) property of Registry provider? PowerShell
Info: Powershell provider for Visual Source safe. Anyone have one? PowerShell


Vista Forums is an independent web site and has not been authorized,
sponsored, or otherwise approved by Microsoft Corporation.
"Windows Vista", the Start Orb, and related materials are trademarks of Microsoft Corp.
© Designer Media Ltd

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46