Author Posts

July 15, 2016 at 11:47 pm

I am trying to add a new item to the registry. I have done this in the past. I am getting a vague error.

Normally I use a command like this:
new-item HKLM:\...\newitem

One thing that is different about the new item is that it is at the root level. That is, it is immediately after the HKLM.

Here is a command that works (well, there is no error, and I can use get-item on the path in PowerShell):
new-item -path HKEY_LOCAL_MACHINE\TempHive\Software\Microsoft\Windows\CurrentVersion4\Explorer33 -Type File -Force

There is no colon ":" in the above command. HKEY_LOCAL_MACHINE is spelled out.

Here is a command that does not work:
new-item -path HKLM:\TempHive\software\microsoft\windows\CurrentVersion4\Explorer23 -Type File -force

I get this error: "new-item: The parameter is incorrect...IOException..."

I cannot even get HKLM:\temphive to be created. I can create new registry entries if they are deep in a path that is already in existence. Ostensibly colons in new-item commands (e.g., new-item -path HKLM:\software\microsoft) don't necessarily cause new-item commands to fail — as long as the item being created is in a path that already exists.

If there is no colon with a new-item command, I've noticed that the command seems to work as an interactive PowerShell command. However, when I look into Regedit (the GUI application), I see no evidence that the command worked. When there is a colon in the command, as far as the interactive PowerShell prompt goes, everything seems to work, I find that in regedit I do see evidence of the command having worked.

My main question is how do I create HKLM:\temphive\? My other questions are, why do commands seem to work but do not appear in Regedit? Are colons necessary in the HKLM:\path[ syntax with the new-item command?

July 16, 2016 at 5:06 pm

Hi Kiran,
You don't create hives, you load them. Registry Hives are files located on your Hard Drive that contain all the Keys and Values stored within the Hive. New-Item created a new Key, not a new Hive. You cannot just create a random key as a child of HKEY_LOCAL_MACHINE (HKLM), not even with RegEdit.