# Get reg key info

**URL:** <https://forums.powershell.org/t/get-reg-key-info/7281>\
**Category:** PowerShell Help\
**Created:** [September 29, 2016, 1:42pm UTC](https://forums.powershell.org/t/get-reg-key-info/7281 "2016-09-29T13:42:29Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![brad-sam](https://avatars.discourse-cdn.com/v4/letter/b/258eb7/32.png) [@brad-sam](https://forums.powershell.org/u/brad-sam)\
**Post date:** [September 29, 2016, 1:42pm UTC](https://forums.powershell.org/t/get-reg-key-info/7281/1 "2016-09-29T13:42:29Z")

</div>

Hi,

i try to get reg key information from remote comp:

$InstFile = {  
$AllKeys = @()  
$key\_Wow6432 = Get-ItemProperty “HKLM:\SOFTWARE\Wow6432Node\Microsoft\Test”  
Foreach ($key in $key\_Wow6432)  
{  
$Object1 = New-Object PSObject  
Add-Member -inputObject $Object1 -memberType NoteProperty -name “StubPath” -value $key.StubPath  
Add-Member -inputObject $Object1 -memberType NoteProperty -name “Version” -value $key.Version  
$AllKeys += $Object1  
}  
#Additional registry check  
If ($key\_32 = Get-ItemProperty “HKLM:\SOFTWARE\Microsoft\Test2” -ErrorAction SilentlyContinue)  
{  
Foreach ($key2 in $key\_32)  
{  
$Object2 = New-Object PSObject  
Add-Member -inputObject $Object2 -memberType NoteProperty -name “StubPath” -value $key2.StubPath  
Add-Member -inputObject $Object2 -memberType NoteProperty -name “Version” -value $key2.Version  
$AllShareFileKeys += $Object2  
}  
#Additional registry check  
If ($key\_33 = Get-ItemProperty “HKCU:\Software\Citrix\ShareFile\SSO” -ErrorAction SilentlyContinue)  
{  
Foreach ($key3 in $key\_33)  
{  
$Object3 = New-Object PSObject  
Add-Member -inputObject $Object3 -memberType NoteProperty -name “Method” -value $key3.Method  
Add-Member -inputObject $Object3 -memberType NoteProperty -name “Subdomain” -value $key3.Subdomain

$AllShareFileKeys += $Object3

}  
}  
}  
$AllKeys  
}  
#Establish remote connection  
$InstSoftObj = Invoke-Command -ComputerName “TEST12” -ScriptBlock $InstFile | Export-Csv “C:\Reg.csv” -NoTypeInformation

in output i see just one line, but i want to see 6 lines per machine

Thanks.

---

<div class="post-metadata">

**Author:** ![dan-potter](https://sea1.discourse-cdn.com/flex019/user_avatar/forums.powershell.org/dan-potter/32/138_2.png) [@dan-potter](https://forums.powershell.org/u/dan-potter)\
**Post date:** [September 29, 2016, 3:28pm UTC](https://forums.powershell.org/t/get-reg-key-info/7281/2 "2016-09-29T15:28:17Z")

</div>

1…100 | %{[string]$\_ + ‘. six lines /machine’}

---

<div class="post-metadata">

**Author:** ![brad-sam](https://avatars.discourse-cdn.com/v4/letter/b/258eb7/32.png) [@brad-sam](https://forums.powershell.org/u/brad-sam)\
**Post date:** [September 29, 2016, 8:59pm UTC](https://forums.powershell.org/t/get-reg-key-info/7281/3 "2016-09-29T20:59:19Z")

</div>

??? ☹

---

<div class="post-metadata">

**Author:** ![random-commandline](https://avatars.discourse-cdn.com/v4/letter/r/e56c9b/32.png) [@random-commandline](https://forums.powershell.org/u/random-commandline)\
**Post date:** [September 30, 2016, 10:42am UTC](https://forums.powershell.org/t/get-reg-key-info/7281/4 "2016-09-30T10:42:35Z")

</div>

Try something like this for your scriptblock.

```
# Scriptblock
$command = {
$regpaths = @"
HKLM:\SOFTWARE\Wow6432Node\Microsoft\Test
HKLM:\SOFTWARE\Microsoft\Test2
HKCU:\Software\Citrix\ShareFile\SSO
"@ -split "`n"
$regpaths = $regpaths.Trim()

# Get Registry key info
$regkeys = foreach ($path in $regpaths){
$reg = Get-ChildItem -Path $path -Recurse -ErrorAction SilentlyContinue | Get-ItemProperty
$reg | ForEach-Object {[PSCustomObject]@{
        StubPath = $_.StubPath
        Version = $_.Version
        Method = $_.Method
        Subdomain = $_.Subdomain}
}}  
$regkeys | Export-Csv C:\regkeys.csv -NoTypeInformation
}

# Connect
Invoke-Command -ComputerName "TEST12" -ScriptBlock $command
```

---

<div class="post-metadata">

**Author:** ![brad-sam](https://avatars.discourse-cdn.com/v4/letter/b/258eb7/32.png) [@brad-sam](https://forums.powershell.org/u/brad-sam)\
**Post date:** [September 30, 2016, 12:34pm UTC](https://forums.powershell.org/t/get-reg-key-info/7281/5 "2016-09-30T12:34:32Z")

</div>

Thank you for example, but i get error:  
Method invocation failed because [System.String] doesn’t contain a method named ‘Trim’.

---

<div class="post-metadata">

**Author:** ![random-commandline](https://avatars.discourse-cdn.com/v4/letter/r/e56c9b/32.png) [@random-commandline](https://forums.powershell.org/u/random-commandline)\
**Post date:** [September 30, 2016, 1:55pm UTC](https://forums.powershell.org/t/get-reg-key-info/7281/6 "2016-09-30T13:55:00Z")

</div>

I was using PowerShell v.3 for my previous post. Your remote systems may be running PowerShell v.2. Try this.

```
# Scriptblock
$command = {
$regpaths = "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Test
HKLM:\SOFTWARE\Microsoft\Test2
HKCU:\Software\Citrix\ShareFile\SSO" 
$regpaths = ($regpaths.Trim() -split "`n")

# Get Registry key info
$array = New-Object -TypeName System.Collections.ArrayList
foreach ($path in $regpaths){
Get-ChildItem -Path $path -Recurse -ErrorAction SilentlyContinue | 
Get-ItemProperty | ForEach-Object {
$regobj = New-Object -TypeName PSObject
Add-Member -InputObject $regobj -MemberType NoteProperty -Name 'StubPath' -Value $_.StubPath
Add-Member -InputObject $regobj -MemberType NoteProperty -Name 'Version' -Value $_.Version
Add-Member -InputObject $regobj -MemberType NoteProperty -Name 'Method' -Value $_.Method
Add-Member -InputObject $regobj -MemberType NoteProperty -Name 'Subdomain' -Value $_.Subdomain
$array.add($regobj) | Out-Null
}} 
$array | Export-Csv C:\regkeys.csv -NoTypeInformation
}

# Connect
Invoke-Command -ComputerName "TEST12" -ScriptBlock $command
```

---

<div class="post-metadata">

**Author:** ![brad-sam](https://avatars.discourse-cdn.com/v4/letter/b/258eb7/32.png) [@brad-sam](https://forums.powershell.org/u/brad-sam)\
**Post date:** [October 3, 2016, 9:00am UTC](https://forums.powershell.org/t/get-reg-key-info/7281/7 "2016-10-03T09:00:06Z")

</div>

Hi random commandline,

Thank you for help  
now script working with no error, but scv file empty

also how if i need run this script on multiple machines, can it create scv file on my machine not on user

Thanks.

---

<div class="post-metadata">

**Author:** ![random-commandline](https://avatars.discourse-cdn.com/v4/letter/r/e56c9b/32.png) [@random-commandline](https://forums.powershell.org/u/random-commandline)\
**Post date:** [October 3, 2016, 9:37am UTC](https://forums.powershell.org/t/get-reg-key-info/7281/8 "2016-10-03T09:37:56Z")

</div>

Verify if the property names, stubpath, version, method, and subdomain, exist and have values in your registry.  
For example, this should display property names and values.

```
Get-ChildItem HKLM:\HARDWARE\DESCRIPTION | Get-ItemProperty
```

To export all results for each machine to your local, change the export part to this and run Invoke cmdlet in a loop for multiple machines.

```
Export-Csv “C:\$($machine)_regkeys.csv” -NoTypeInformation
Foreach ($machine in $listofmachines){Invoke-Command -ComputerName “$machine" -ScriptBlock $command}
```

---

<div class="post-metadata">

**Author:** ![brad-sam](https://avatars.discourse-cdn.com/v4/letter/b/258eb7/32.png) [@brad-sam](https://forums.powershell.org/u/brad-sam)\
**Post date:** [October 3, 2016, 1:40pm UTC](https://forums.powershell.org/t/get-reg-key-info/7281/9 "2016-10-03T13:40:16Z")

</div>

Hi,  
i checked and 2 keys have stubpath and version, and one key have method and subdomain but no stubpath and version

and it’s still create blank csv on user computer

Thanks.

---

<div class="post-metadata">

**Author:** ![brad-sam](https://avatars.discourse-cdn.com/v4/letter/b/258eb7/32.png) [@brad-sam](https://forums.powershell.org/u/brad-sam)\
**Post date:** [October 6, 2016, 3:11pm UTC](https://forums.powershell.org/t/get-reg-key-info/7281/10 "2016-10-06T15:11:09Z")

</div>

Hi,  
still need help

Thanks

---

<div class="post-metadata">

**Author:** ![dotnVo](https://avatars.discourse-cdn.com/v4/letter/d/4af34b/32.png) [@dotnVo](https://forums.powershell.org/u/dotnVo)\
**Post date:** [May 16, 2024, 8:40pm UTC](https://forums.powershell.org/t/get-reg-key-info/7281/11 "2024-05-16T20:40:12Z")

</div>


