changes
This commit is contained in:
parent
a0c8a19a72
commit
d636da7e6a
@ -9,7 +9,7 @@ param (
|
|||||||
$comType,
|
$comType,
|
||||||
|
|
||||||
[Parameter(Mandatory=$true)]
|
[Parameter(Mandatory=$true)]
|
||||||
[ValidateSet('export', 'import', 'delete', 'createRegFiles')]
|
[ValidateSet('query', 'import', 'delete', 'generate')]
|
||||||
[string]
|
[string]
|
||||||
$action,
|
$action,
|
||||||
|
|
||||||
@ -95,11 +95,11 @@ $progId = "$versionIndependentProgId.1";
|
|||||||
|
|
||||||
|
|
||||||
switch ($action) {
|
switch ($action) {
|
||||||
'createRegFiles' {
|
'generate' {
|
||||||
}
|
}
|
||||||
'delete' {
|
'delete' {
|
||||||
}
|
}
|
||||||
'export' {
|
'query' {
|
||||||
}
|
}
|
||||||
'import' {
|
'import' {
|
||||||
if (!$comDir) {
|
if (!$comDir) {
|
||||||
@ -163,16 +163,16 @@ try {
|
|||||||
Write-Error "An error occurred trying to discover network path to COM server at $comPath"
|
Write-Error "An error occurred trying to discover network path to COM server at $comPath"
|
||||||
}
|
}
|
||||||
|
|
||||||
function Get-ClsidPaths {
|
function Get-ClsidData {
|
||||||
param(
|
param(
|
||||||
[Parameter(Mandatory=$true)]
|
[Parameter(Mandatory=$false)]
|
||||||
[string]
|
[string]
|
||||||
$architectureNode
|
$architectureNode = '\'
|
||||||
)
|
)
|
||||||
return @(
|
return @(
|
||||||
@{
|
@{
|
||||||
Key = "\SOFTWARE\Classes$($architectureNode)CLSID\{$clsid}"
|
Key = "\SOFTWARE\Classes$($architectureNode)CLSID\{$clsid}"
|
||||||
Values = @(
|
ValueItems = @(
|
||||||
@{
|
@{
|
||||||
Name = '(default)'
|
Name = '(default)'
|
||||||
Value = $classLabel
|
Value = $classLabel
|
||||||
@ -185,7 +185,7 @@ function Get-ClsidPaths {
|
|||||||
},
|
},
|
||||||
@{
|
@{
|
||||||
Key = "\SOFTWARE\Classes$($architectureNode)CLSID\{$clsid}\LocalServer32"
|
Key = "\SOFTWARE\Classes$($architectureNode)CLSID\{$clsid}\LocalServer32"
|
||||||
Values = @(
|
ValueItems = @(
|
||||||
@{
|
@{
|
||||||
Name = '(default)'
|
Name = '(default)'
|
||||||
Value = $comPath
|
Value = $comPath
|
||||||
@ -194,7 +194,7 @@ function Get-ClsidPaths {
|
|||||||
},
|
},
|
||||||
@{
|
@{
|
||||||
Key = "\SOFTWARE\Classes$($architectureNode)CLSID\{$clsid}\ProgID"
|
Key = "\SOFTWARE\Classes$($architectureNode)CLSID\{$clsid}\ProgID"
|
||||||
Values = @(
|
ValueItems = @(
|
||||||
@{
|
@{
|
||||||
Name = '(default)'
|
Name = '(default)'
|
||||||
Value = $progId
|
Value = $progId
|
||||||
@ -203,11 +203,11 @@ function Get-ClsidPaths {
|
|||||||
},
|
},
|
||||||
@{
|
@{
|
||||||
Key = "\SOFTWARE\Classes$($architectureNode)CLSID\{$clsid}\Programmable"
|
Key = "\SOFTWARE\Classes$($architectureNode)CLSID\{$clsid}\Programmable"
|
||||||
Values = @()
|
ValueItems = @()
|
||||||
},
|
},
|
||||||
@{
|
@{
|
||||||
Key = "\SOFTWARE\Classes$($architectureNode)CLSID\{$clsid}\TypeLib"
|
Key = "\SOFTWARE\Classes$($architectureNode)CLSID\{$clsid}\TypeLib"
|
||||||
Values = @(
|
ValueItems = @(
|
||||||
@{
|
@{
|
||||||
Name = '(default)'
|
Name = '(default)'
|
||||||
Value = "{$typeLibId}"
|
Value = "{$typeLibId}"
|
||||||
@ -216,7 +216,7 @@ function Get-ClsidPaths {
|
|||||||
},
|
},
|
||||||
@{
|
@{
|
||||||
Key = "\SOFTWARE\Classes$($architectureNode)CLSID\{$clsid}\VersionIndependentProgID"
|
Key = "\SOFTWARE\Classes$($architectureNode)CLSID\{$clsid}\VersionIndependentProgID"
|
||||||
Values = @(
|
ValueItems = @(
|
||||||
@{
|
@{
|
||||||
Name = '(default)'
|
Name = '(default)'
|
||||||
Value = $versionIndependentProgId
|
Value = $versionIndependentProgId
|
||||||
@ -226,16 +226,16 @@ function Get-ClsidPaths {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
function Get-InterfacePaths {
|
function Get-InterfaceData {
|
||||||
param(
|
param(
|
||||||
[Parameter(Mandatory=$true)]
|
[Parameter(Mandatory=$false)]
|
||||||
[string]
|
[string]
|
||||||
$architectureNode
|
$architectureNode = '\'
|
||||||
)
|
)
|
||||||
return @(
|
return @(
|
||||||
@{
|
@{
|
||||||
Key = "\SOFTWARE\Classes$($architectureNode)Interface\{$interfaceId}"
|
Key = "\SOFTWARE\Classes$($architectureNode)Interface\{$interfaceId}"
|
||||||
Values = @(
|
ValueItems = @(
|
||||||
@{
|
@{
|
||||||
Name = '(default)'
|
Name = '(default)'
|
||||||
Value = $interfaceName
|
Value = $interfaceName
|
||||||
@ -244,7 +244,7 @@ function Get-InterfacePaths {
|
|||||||
},
|
},
|
||||||
@{
|
@{
|
||||||
Key = "\SOFTWARE\Classes$($architectureNode)Interface\{$interfaceId}\ProxyStubClsid32"
|
Key = "\SOFTWARE\Classes$($architectureNode)Interface\{$interfaceId}\ProxyStubClsid32"
|
||||||
Values = @(
|
ValueItems = @(
|
||||||
@{
|
@{
|
||||||
Name = '(default)'
|
Name = '(default)'
|
||||||
Value = "{$interfaceStubClsid}"
|
Value = "{$interfaceStubClsid}"
|
||||||
@ -253,7 +253,7 @@ function Get-InterfacePaths {
|
|||||||
},
|
},
|
||||||
@{
|
@{
|
||||||
Key = "\SOFTWARE\Classes$($architectureNode)Interface\{$interfaceId}\TypeLib"
|
Key = "\SOFTWARE\Classes$($architectureNode)Interface\{$interfaceId}\TypeLib"
|
||||||
Values = @(
|
ValueItems = @(
|
||||||
@{
|
@{
|
||||||
Name = '(default)'
|
Name = '(default)'
|
||||||
Value = "{$typeLibId}"
|
Value = "{$typeLibId}"
|
||||||
@ -266,7 +266,7 @@ function Get-InterfacePaths {
|
|||||||
},
|
},
|
||||||
@{
|
@{
|
||||||
Key = "\SOFTWARE\Classes$($architectureNode)Interface\{$eventInterfaceId}"
|
Key = "\SOFTWARE\Classes$($architectureNode)Interface\{$eventInterfaceId}"
|
||||||
Values = @(
|
ValueItems = @(
|
||||||
@{
|
@{
|
||||||
Name = '(default)'
|
Name = '(default)'
|
||||||
Value = $eventInterfaceName
|
Value = $eventInterfaceName
|
||||||
@ -275,7 +275,7 @@ function Get-InterfacePaths {
|
|||||||
},
|
},
|
||||||
@{
|
@{
|
||||||
Key = "\SOFTWARE\Classes$($architectureNode)Interface\{$eventInterfaceId}\ProxyStubClsid32"
|
Key = "\SOFTWARE\Classes$($architectureNode)Interface\{$eventInterfaceId}\ProxyStubClsid32"
|
||||||
Values = @(
|
ValueItems = @(
|
||||||
@{
|
@{
|
||||||
Name = '(default)'
|
Name = '(default)'
|
||||||
Value = "{$eventInterfaceStubClsid}"
|
Value = "{$eventInterfaceStubClsid}"
|
||||||
@ -284,7 +284,7 @@ function Get-InterfacePaths {
|
|||||||
},
|
},
|
||||||
@{
|
@{
|
||||||
Key = "\SOFTWARE\Classes$($architectureNode)Interface\{$eventInterfaceId}\TypeLib"
|
Key = "\SOFTWARE\Classes$($architectureNode)Interface\{$eventInterfaceId}\TypeLib"
|
||||||
Values = @(
|
ValueItems = @(
|
||||||
@{
|
@{
|
||||||
Name = '(default)'
|
Name = '(default)'
|
||||||
Value = "{$typeLibId}"
|
Value = "{$typeLibId}"
|
||||||
@ -298,11 +298,11 @@ function Get-InterfacePaths {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
function Get-ProgIdPaths {
|
function Get-ProgIdData {
|
||||||
return @(
|
return @(
|
||||||
@{
|
@{
|
||||||
Key = "\SOFTWARE\Classes\$versionIndependentProgId"
|
Key = "\SOFTWARE\Classes\$versionIndependentProgId"
|
||||||
Values = @(
|
ValueItems = @(
|
||||||
@{
|
@{
|
||||||
Name = '(default)'
|
Name = '(default)'
|
||||||
Value = $classLabel
|
Value = $classLabel
|
||||||
@ -311,7 +311,7 @@ function Get-ProgIdPaths {
|
|||||||
},
|
},
|
||||||
@{
|
@{
|
||||||
Key = "\SOFTWARE\Classes\$versionIndependentProgId\CLSID"
|
Key = "\SOFTWARE\Classes\$versionIndependentProgId\CLSID"
|
||||||
Values = @(
|
ValueItems = @(
|
||||||
@{
|
@{
|
||||||
Name = '(default)'
|
Name = '(default)'
|
||||||
Value = "{$clsid}"
|
Value = "{$clsid}"
|
||||||
@ -320,7 +320,7 @@ function Get-ProgIdPaths {
|
|||||||
},
|
},
|
||||||
@{
|
@{
|
||||||
Key = "\SOFTWARE\Classes\$versionIndependentProgId\CurVer"
|
Key = "\SOFTWARE\Classes\$versionIndependentProgId\CurVer"
|
||||||
Values = @(
|
ValueItems = @(
|
||||||
@{
|
@{
|
||||||
Name = '(default)'
|
Name = '(default)'
|
||||||
Value = $progId
|
Value = $progId
|
||||||
@ -329,7 +329,7 @@ function Get-ProgIdPaths {
|
|||||||
}
|
}
|
||||||
@{
|
@{
|
||||||
Key = "\SOFTWARE\Classes\$progId"
|
Key = "\SOFTWARE\Classes\$progId"
|
||||||
Values = @(
|
ValueItems = @(
|
||||||
@{
|
@{
|
||||||
Name = '(default)'
|
Name = '(default)'
|
||||||
Value = $classLabel
|
Value = $classLabel
|
||||||
@ -338,7 +338,7 @@ function Get-ProgIdPaths {
|
|||||||
},
|
},
|
||||||
@{
|
@{
|
||||||
Key = "\SOFTWARE\Classes\$progId\CLSID"
|
Key = "\SOFTWARE\Classes\$progId\CLSID"
|
||||||
Values = @(
|
ValueItems = @(
|
||||||
@{
|
@{
|
||||||
Name = '(default)'
|
Name = '(default)'
|
||||||
Value = "{$clsid}"
|
Value = "{$clsid}"
|
||||||
@ -348,20 +348,20 @@ function Get-ProgIdPaths {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
function Get-TypeLibPaths {
|
function Get-TypeLibData {
|
||||||
param(
|
param(
|
||||||
[Parameter(Mandatory=$true)]
|
[Parameter(Mandatory=$false)]
|
||||||
[string]
|
[string]
|
||||||
$architectureNode
|
$architectureNode = '\'
|
||||||
)
|
)
|
||||||
return @(
|
return @(
|
||||||
@{
|
@{
|
||||||
Key = "\SOFTWARE\Classes$($architectureNode)TypeLib\{$typeLibId}"
|
Key = "\SOFTWARE\Classes$($architectureNode)TypeLib\{$typeLibId}"
|
||||||
Values = @()
|
ValueItems = @()
|
||||||
},
|
},
|
||||||
@{
|
@{
|
||||||
Key = "\SOFTWARE\Classes$($architectureNode)TypeLib\{$typeLibId}\$typeLibVersion"
|
Key = "\SOFTWARE\Classes$($architectureNode)TypeLib\{$typeLibId}\$typeLibVersion"
|
||||||
Values = @(
|
ValueItems = @(
|
||||||
@{
|
@{
|
||||||
Name = '(default)'
|
Name = '(default)'
|
||||||
Value = $typeLibLabel
|
Value = $typeLibLabel
|
||||||
@ -370,11 +370,11 @@ function Get-TypeLibPaths {
|
|||||||
},
|
},
|
||||||
@{
|
@{
|
||||||
Key = "\SOFTWARE\Classes$($architectureNode)TypeLib\{$typeLibId}\$typeLibVersion\0"
|
Key = "\SOFTWARE\Classes$($architectureNode)TypeLib\{$typeLibId}\$typeLibVersion\0"
|
||||||
Values = @()
|
ValueItems = @()
|
||||||
},
|
},
|
||||||
@{
|
@{
|
||||||
Key = "\SOFTWARE\Classes$($architectureNode)TypeLib\{$typeLibId}\$typeLibVersion\0\win32"
|
Key = "\SOFTWARE\Classes$($architectureNode)TypeLib\{$typeLibId}\$typeLibVersion\0\win32"
|
||||||
Values = @(
|
ValueItems = @(
|
||||||
@{
|
@{
|
||||||
Name = '(default)'
|
Name = '(default)'
|
||||||
Value = $comNetworkPath
|
Value = $comNetworkPath
|
||||||
@ -383,7 +383,7 @@ function Get-TypeLibPaths {
|
|||||||
},
|
},
|
||||||
@{
|
@{
|
||||||
Key = "\SOFTWARE\Classes$($architectureNode)TypeLib\{$typeLibId}\$typeLibVersion\FLAGS"
|
Key = "\SOFTWARE\Classes$($architectureNode)TypeLib\{$typeLibId}\$typeLibVersion\FLAGS"
|
||||||
Values = @(
|
ValueItems = @(
|
||||||
@{
|
@{
|
||||||
Name = '(default)'
|
Name = '(default)'
|
||||||
Value = '0'
|
Value = '0'
|
||||||
@ -392,7 +392,7 @@ function Get-TypeLibPaths {
|
|||||||
},
|
},
|
||||||
@{
|
@{
|
||||||
Key = "\SOFTWARE\Classes$($architectureNode)TypeLib\{$typeLibId}\$typeLibVersion\HELPDIR"
|
Key = "\SOFTWARE\Classes$($architectureNode)TypeLib\{$typeLibId}\$typeLibVersion\HELPDIR"
|
||||||
Values = @(
|
ValueItems = @(
|
||||||
@{
|
@{
|
||||||
Name = '(default)'
|
Name = '(default)'
|
||||||
Value = "$comDir\"
|
Value = "$comDir\"
|
||||||
@ -402,11 +402,11 @@ function Get-TypeLibPaths {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
function Get-Paths {
|
function Get-Data {
|
||||||
param(
|
param(
|
||||||
[Parameter(Mandatory=$false)]
|
[Parameter(Mandatory=$false)]
|
||||||
[switch]
|
[switch]
|
||||||
$bothArchitectures = $false
|
$includeWrongArchitecturePaths = $false
|
||||||
)
|
)
|
||||||
|
|
||||||
if ($env:PROCESSOR_ARCHITECTURE -eq 'x86') {
|
if ($env:PROCESSOR_ARCHITECTURE -eq 'x86') {
|
||||||
@ -416,53 +416,30 @@ function Get-Paths {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$paths = New-Object System.Collections.Generic.List[System.Object]
|
$paths = New-Object System.Collections.Generic.List[System.Object]
|
||||||
$paths.AddRange((Get-ProgIdPaths))
|
$paths.AddRange((Get-ProgIdData))
|
||||||
$paths.AddRange((Get-ClsidPaths -architectureNode $wow6432Node))
|
$paths.AddRange((Get-ClsidData -architectureNode $wow6432Node))
|
||||||
$paths.AddRange((Get-InterfacePaths -architectureNode $wow6432Node))
|
if ($includeWrongArchitecturePaths -and $wow6432Node -ne '\') {
|
||||||
$paths.AddRange((Get-TypeLibPaths -architectureNode $wow6432Node))
|
$paths.AddRange((Get-ClsidData))
|
||||||
|
}
|
||||||
|
$paths.AddRange((Get-InterfaceData -architectureNode $wow6432Node))
|
||||||
if ($wow6432Node -ne '\') {
|
if ($wow6432Node -ne '\') {
|
||||||
if ($bothArchitectures) {
|
$paths.AddRange((Get-InterfaceData))
|
||||||
$paths.AddRange((Get-ClsidPaths -architectureNode $wow6432Node))
|
}
|
||||||
}
|
$paths.AddRange((Get-TypeLibData -architectureNode $wow6432Node))
|
||||||
$paths.AddRange((Get-InterfacePaths -architectureNode '\'))
|
if ($wow6432Node -ne '\') {
|
||||||
$paths.AddRange((Get-TypeLibPaths -architectureNode '\'))
|
$paths.AddRange((Get-TypeLibData))
|
||||||
}
|
}
|
||||||
return $paths
|
return $paths
|
||||||
}
|
}
|
||||||
|
|
||||||
function Read-Registry {
|
|
||||||
$paths = Get-Paths -bothArchitectures
|
|
||||||
foreach ($path in $paths) {
|
|
||||||
$path = "$($hiveShort):\$($path.Key)"
|
|
||||||
try {
|
|
||||||
$foundKey = Get-Item -Path $path -ErrorAction Stop
|
|
||||||
}
|
|
||||||
catch {
|
|
||||||
Write-Warning "Failed to find $path"
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
$pathShort = $foundKey.PSPath -replace '^.*::', ''
|
|
||||||
Write-Host
|
|
||||||
Write-Host $pathShort
|
|
||||||
$itemProperty = Get-ItemProperty -Path $foundKey.PSPath
|
|
||||||
if (!$itemProperty) {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
foreach ($property in $itemProperty.PSObject.Properties) {
|
|
||||||
Write-Host "$($property.Name)=$property.Value"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
switch ($action) {
|
switch ($action) {
|
||||||
'delete' {
|
'delete' {
|
||||||
$paths = Get-Paths -bothArchitectures
|
$data = Get-Data -includeWrongArchitecturePaths
|
||||||
foreach ($path in $paths) {
|
foreach ($dataEntry in $data) {
|
||||||
$path = "$($hiveShort):\$($path.Key)"
|
$path = "$($hiveShort):\$($dataEntry.Key)"
|
||||||
try {
|
try {
|
||||||
$foundKey = Get-Item -Path $path -ErrorAction Stop
|
Remove-Item -Path $path -Recurse -Force -ErrorAction Stop
|
||||||
#Remove-Item -Path $path -Recurse -Force
|
Write-Information "Deleted registry key: $path"
|
||||||
Write-Information "Deleted registry key: $foundKey"
|
|
||||||
}
|
}
|
||||||
catch {
|
catch {
|
||||||
Write-Error "Failed to find $path"
|
Write-Error "Failed to find $path"
|
||||||
@ -471,38 +448,59 @@ switch ($action) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
'import' {
|
'import' {
|
||||||
$paths = Get-Paths
|
$data = Get-Data
|
||||||
foreach ($path in $paths) {
|
foreach ($dataEntry in $data) {
|
||||||
$path = "$($hiveShort):\$($path.Key)"
|
$path = "$($hiveShort):\$($dataEntry.Key)"
|
||||||
try {
|
try {
|
||||||
# $newKey = New-Item -Path $keyEl.Key -Force
|
New-Item -Path $path -Force -ErrorAction Stop
|
||||||
$newKey = Get-Item -Path $path -ErrorAction Stop
|
Write-Information "Imported key: $path"
|
||||||
Write-Information "Imported key: $newKey"
|
|
||||||
}
|
}
|
||||||
catch {
|
catch {
|
||||||
Write-Error "Failed to import key: $path"
|
Write-Error "Failed to import key: $path"
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
foreach ($value in $key.Values) {
|
foreach ($valueItem in $dataEntry.ValueItems) {
|
||||||
try {
|
try {
|
||||||
#$newItem = New-ItemProperty -Path $key.Key -Name $value.Name -Value $value.Value -PropertyType 'String' -Force
|
New-ItemProperty -Path $path -Name $valueItem.Name -Value $valueItem.Value -PropertyType 'String' -Force -ErrorAction Stop
|
||||||
#Write-Information "Imported value: $newItem"
|
Write-Information "Imported value: $($valueItem.Name) in $path"
|
||||||
Write-Information "Imported value: $($value.Name) in $($key.Key)"
|
|
||||||
}
|
}
|
||||||
catch {
|
catch {
|
||||||
Write-Error "Failed to create entry: $($value.Name) in $($key.Key)"
|
Write-Error "Failed to create entry: $($valueItem.Name) in $path"
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
'export' {
|
'query' {
|
||||||
Read-Registry
|
$data = Get-Data -includeWrongArchitecturePaths
|
||||||
|
foreach ($dataEntry in $data) {
|
||||||
|
$path = "$($hiveShort):\$($dataEntry.Key)"
|
||||||
|
try {
|
||||||
|
$foundKey = Get-Item -Path $path -ErrorAction Stop
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
Write-Warning "Failed to find $path"
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
$pathShort = $foundKey.PSPath -replace '^.*::', ''
|
||||||
|
Write-Host
|
||||||
|
Write-Host $pathShort
|
||||||
|
$itemProperty = Get-ItemProperty -Path $path
|
||||||
|
if (!$itemProperty) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
foreach ($property in $itemProperty.PSObject.Properties) {
|
||||||
|
if ($property.Name.StartsWith('PS')) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
Write-Host "$($property.Name)=$($property.Value)"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
'createRegFiles' {
|
'generate' {
|
||||||
$outFileAdd = "$appName-add.reg"
|
$outFileAdd = "$appName-add.reg"
|
||||||
$outFileDel = "$appName-del.reg"
|
$outFileDel = "$appName-del.reg"
|
||||||
$paths = Get-Paths
|
$data = Get-Data
|
||||||
if (Test-Path $outFileAdd) {
|
if (Test-Path $outFileAdd) {
|
||||||
try {
|
try {
|
||||||
Remove-Item -Path $outFileAdd -ErrorAction Stop
|
Remove-Item -Path $outFileAdd -ErrorAction Stop
|
||||||
@ -514,12 +512,12 @@ switch ($action) {
|
|||||||
}
|
}
|
||||||
Write-Output 'Windows Registry Editor Version 5.00' > $outFileAdd
|
Write-Output 'Windows Registry Editor Version 5.00' > $outFileAdd
|
||||||
Write-Output 'Windows Registry Editor Version 5.00' > $outFileDel
|
Write-Output 'Windows Registry Editor Version 5.00' > $outFileDel
|
||||||
foreach ($pathItem in $paths) {
|
foreach ($dataEntry in $data) {
|
||||||
$path = "$($hive)$($pathItem.Key)"
|
$path = "$($hive)$($dataEntry.Key)"
|
||||||
Write-Output '' >> $outFileAdd
|
Write-Output '' >> $outFileAdd
|
||||||
Write-Output "[$path]" >> $outFileAdd
|
Write-Output "[$path]" >> $outFileAdd
|
||||||
Write-Output "[-$path]" >> $outFileDel
|
Write-Output "[-$path]" >> $outFileDel
|
||||||
foreach ($valueItem in $pathItem.Values) {
|
foreach ($valueItem in $dataEntry.ValueItems) {
|
||||||
if ($valueItem.Name -eq '(default)') {
|
if ($valueItem.Name -eq '(default)') {
|
||||||
$name = '@'
|
$name = '@'
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -53,22 +53,6 @@ Windows Registry Editor Version 5.00
|
|||||||
@="{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}"
|
@="{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}"
|
||||||
"Version"="1.0"
|
"Version"="1.0"
|
||||||
|
|
||||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WOW6432Node\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}]
|
|
||||||
|
|
||||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WOW6432Node\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0]
|
|
||||||
@="QWDevice 1.0 Type Library"
|
|
||||||
|
|
||||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WOW6432Node\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0\0]
|
|
||||||
|
|
||||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WOW6432Node\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0\0\win32]
|
|
||||||
@="C:\\temp\\ua\\UA-SUITE\\39.1.3\\UAGRDEV\\6.0-cute\\uagrdevs.exe"
|
|
||||||
|
|
||||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WOW6432Node\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0\FLAGS]
|
|
||||||
@="0"
|
|
||||||
|
|
||||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WOW6432Node\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0\HELPDIR]
|
|
||||||
@="C:\\temp\\ua\\UA-SUITE\\39.1.3\\UAGRDEV\\6.0-cute\\"
|
|
||||||
|
|
||||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{D178FEAC-4969-45B4-92BF-4582EA5C6F47}]
|
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{D178FEAC-4969-45B4-92BF-4582EA5C6F47}]
|
||||||
@="IQWDev"
|
@="IQWDev"
|
||||||
|
|
||||||
@ -89,6 +73,22 @@ Windows Registry Editor Version 5.00
|
|||||||
@="{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}"
|
@="{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}"
|
||||||
"Version"="1.0"
|
"Version"="1.0"
|
||||||
|
|
||||||
|
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WOW6432Node\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}]
|
||||||
|
|
||||||
|
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WOW6432Node\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0]
|
||||||
|
@="QWDevice 1.0 Type Library"
|
||||||
|
|
||||||
|
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WOW6432Node\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0\0]
|
||||||
|
|
||||||
|
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WOW6432Node\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0\0\win32]
|
||||||
|
@="C:\\temp\\ua\\UA-SUITE\\39.1.3\\UAGRDEV\\6.0-cute\\uagrdevs.exe"
|
||||||
|
|
||||||
|
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WOW6432Node\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0\FLAGS]
|
||||||
|
@="0"
|
||||||
|
|
||||||
|
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WOW6432Node\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0\HELPDIR]
|
||||||
|
@="C:\\temp\\ua\\UA-SUITE\\39.1.3\\UAGRDEV\\6.0-cute\\"
|
||||||
|
|
||||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}]
|
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}]
|
||||||
|
|
||||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0]
|
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0]
|
||||||
|
|||||||
@ -16,18 +16,18 @@ Windows Registry Editor Version 5.00
|
|||||||
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WOW6432Node\Interface\{FDE206D5-EB3E-4DB1-AC3E-6CF314417443}]
|
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WOW6432Node\Interface\{FDE206D5-EB3E-4DB1-AC3E-6CF314417443}]
|
||||||
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WOW6432Node\Interface\{FDE206D5-EB3E-4DB1-AC3E-6CF314417443}\ProxyStubClsid32]
|
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WOW6432Node\Interface\{FDE206D5-EB3E-4DB1-AC3E-6CF314417443}\ProxyStubClsid32]
|
||||||
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WOW6432Node\Interface\{FDE206D5-EB3E-4DB1-AC3E-6CF314417443}\TypeLib]
|
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WOW6432Node\Interface\{FDE206D5-EB3E-4DB1-AC3E-6CF314417443}\TypeLib]
|
||||||
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WOW6432Node\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}]
|
|
||||||
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WOW6432Node\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0]
|
|
||||||
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WOW6432Node\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0\0]
|
|
||||||
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WOW6432Node\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0\0\win32]
|
|
||||||
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WOW6432Node\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0\FLAGS]
|
|
||||||
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WOW6432Node\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0\HELPDIR]
|
|
||||||
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{D178FEAC-4969-45B4-92BF-4582EA5C6F47}]
|
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{D178FEAC-4969-45B4-92BF-4582EA5C6F47}]
|
||||||
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{D178FEAC-4969-45B4-92BF-4582EA5C6F47}\ProxyStubClsid32]
|
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{D178FEAC-4969-45B4-92BF-4582EA5C6F47}\ProxyStubClsid32]
|
||||||
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{D178FEAC-4969-45B4-92BF-4582EA5C6F47}\TypeLib]
|
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{D178FEAC-4969-45B4-92BF-4582EA5C6F47}\TypeLib]
|
||||||
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{FDE206D5-EB3E-4DB1-AC3E-6CF314417443}]
|
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{FDE206D5-EB3E-4DB1-AC3E-6CF314417443}]
|
||||||
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{FDE206D5-EB3E-4DB1-AC3E-6CF314417443}\ProxyStubClsid32]
|
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{FDE206D5-EB3E-4DB1-AC3E-6CF314417443}\ProxyStubClsid32]
|
||||||
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{FDE206D5-EB3E-4DB1-AC3E-6CF314417443}\TypeLib]
|
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{FDE206D5-EB3E-4DB1-AC3E-6CF314417443}\TypeLib]
|
||||||
|
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WOW6432Node\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}]
|
||||||
|
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WOW6432Node\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0]
|
||||||
|
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WOW6432Node\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0\0]
|
||||||
|
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WOW6432Node\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0\0\win32]
|
||||||
|
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WOW6432Node\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0\FLAGS]
|
||||||
|
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WOW6432Node\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0\HELPDIR]
|
||||||
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}]
|
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}]
|
||||||
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0]
|
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0]
|
||||||
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0\0]
|
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0\0]
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
Windows Registry Editor Version 5.00
|
Windows Registry Editor Version 5.00
|
||||||
|
|
||||||
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\QSRDevice.QSRDev]
|
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\QSRDevice.QSRDev]
|
||||||
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\QSRDevice.QSRDev\CLSID]
|
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\QSRDevice.QSRDev\CLSID]
|
||||||
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\QSRDevice.QSRDev\CurVer]
|
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\QSRDevice.QSRDev\CurVer]
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user