dev app script
This commit is contained in:
parent
784fa8356b
commit
26940e0c46
Binary file not shown.
0
ua/registry/HKCU/SOFTWARE/Classes/QSRDevice.QSRDev
Normal file
0
ua/registry/HKCU/SOFTWARE/Classes/QSRDevice.QSRDev
Normal file
78
ua/registry/UAGRDEV-REGISTER.REG
Normal file
78
ua/registry/UAGRDEV-REGISTER.REG
Normal file
@ -0,0 +1,78 @@
|
||||
Windows Registry Editor Version 5.00
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3F52625C-F66C-43F5-B538-CDF7331E0B7D}]
|
||||
@="QWDev Class"
|
||||
"AppID"="{91D04D72-DCB6-11D3-957D-00409500D5AD}"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3F52625C-F66C-43F5-B538-CDF7331E0B7D}\LocalServer32]
|
||||
@="Z:\\ULT\\USERS\\UA\\GATEREADER\\4.4.5393\\UAGRDEVU.EXE"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3F52625C-F66C-43F5-B538-CDF7331E0B7D}\ProgID]
|
||||
@="QWDevice.QWDev.1"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3F52625C-F66C-43F5-B538-CDF7331E0B7D}\Programmable]
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3F52625C-F66C-43F5-B538-CDF7331E0B7D}\TypeLib]
|
||||
@="{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3F52625C-F66C-43F5-B538-CDF7331E0B7D}\VersionIndependentProgID]
|
||||
@="QWDevice.QWDev"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{D178FEAC-4969-45b4-92BF-4582EA5C6F47}]
|
||||
@="IQWDev"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{D178FEAC-4969-45b4-92BF-4582EA5C6F47}\ProxyStubClsid]
|
||||
@="{00020424-0000-0000-C000-000000000046}"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{D178FEAC-4969-45b4-92BF-4582EA5C6F47}\ProxyStubClsid32]
|
||||
@="{00020424-0000-0000-C000-000000000046}"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{D178FEAC-4969-45b4-92BF-4582EA5C6F47}\TypeLib]
|
||||
@="{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}"
|
||||
"Version"="1.0"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{FDE206D5-EB3E-4DB1-AC3E-6CF314417443}]
|
||||
@="_IQWDevEvents"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{FDE206D5-EB3E-4DB1-AC3E-6CF314417443}\ProxyStubClsid]
|
||||
@="{00020420-0000-0000-C000-000000000046}"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{FDE206D5-EB3E-4DB1-AC3E-6CF314417443}\ProxyStubClsid32]
|
||||
@="{00020420-0000-0000-C000-000000000046}"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{FDE206D5-EB3E-4DB1-AC3E-6CF314417443}\TypeLib]
|
||||
@="{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}"
|
||||
"Version"="1.0"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\QWDevice.QWDev]
|
||||
@="QWDev Class"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\QWDevice.QWDev\CLSID]
|
||||
@="{3F52625C-F66C-43F5-B538-CDF7331E0B7D}"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\QWDevice.QWDev\CurVer]
|
||||
@="QWDevice.QWDev.1"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\QWDevice.QWDev.1]
|
||||
@="QWDev Class"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\QWDevice.QWDev.1\CLSID]
|
||||
@="{3F52625C-F66C-43F5-B538-CDF7331E0B7D}"
|
||||
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}]
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0]
|
||||
@="QWDevice 1.0 Type Library"
|
||||
|
||||
[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\win32]
|
||||
@="Z:\\ULT\\USERS\\UA\\GATEREADER\\4.4.5393\\UAGRDEVU.EXE"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0\FLAGS]
|
||||
@="0"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0\HELPDIR]
|
||||
@="Z:\\ULT\\USERS\\UA\\GATEREADER\\4.4.5393\\"
|
||||
|
||||
78
ua/registry/UASRDEV-REGISTER.REG
Normal file
78
ua/registry/UASRDEV-REGISTER.REG
Normal file
@ -0,0 +1,78 @@
|
||||
Windows Registry Editor Version 5.00
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{35578409-F9F5-43e8-A6BD-8B77199ED854}]
|
||||
@="QSRDev Class"
|
||||
"AppID"="{C123476B-ABB6-4bcc-B557-2FDC0CDCD6A8}"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{35578409-F9F5-43e8-A6BD-8B77199ED854}\LocalServer32]
|
||||
@="M:\\users\\ua\\ua-suite\\1.6a\\UASRDEV\\2.4.0.1\\UASRDEVA.EXE"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{35578409-F9F5-43e8-A6BD-8B77199ED854}\ProgID]
|
||||
@="QSRDevice.QSRDev.1"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{35578409-F9F5-43e8-A6BD-8B77199ED854}\Programmable]
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{35578409-F9F5-43e8-A6BD-8B77199ED854}\TypeLib]
|
||||
@="{CD886C7B-B61C-49cf-B3B8-90DB303A502A}"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{35578409-F9F5-43e8-A6BD-8B77199ED854}\VersionIndependentProgID]
|
||||
@="QSRDevice.QSRDev"
|
||||
6B15E61A-381F-41e7-8B65-BA386473FE8C
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{6B15E61A-381F-41e7-8B65-BA386473FE8C}]
|
||||
@="IQSRDev"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{6B15E61A-381F-41e7-8B65-BA386473FE8C}\ProxyStubClsid]
|
||||
@="{00020424-0000-0000-C000-000000000046}"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{6B15E61A-381F-41e7-8B65-BA386473FE8C}\ProxyStubClsid32]
|
||||
@="{00020424-0000-0000-C000-000000000046}"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{6B15E61A-381F-41e7-8B65-BA386473FE8C}\TypeLib]
|
||||
@="{CD886C7B-B61C-49cf-B3B8-90DB303A502A}"
|
||||
"Version"="1.0"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{17DCFB07-18A9-4ffe-B34D-37B91D809C41}]
|
||||
@="_IQSRDevEvents"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{17DCFB07-18A9-4ffe-B34D-37B91D809C41}\ProxyStubClsid]
|
||||
@="{00020420-0000-0000-C000-000000000046}"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{17DCFB07-18A9-4ffe-B34D-37B91D809C41}\ProxyStubClsid32]
|
||||
@="{00020420-0000-0000-C000-000000000046}"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{17DCFB07-18A9-4ffe-B34D-37B91D809C41}\TypeLib]
|
||||
@="{CD886C7B-B61C-49cf-B3B8-90DB303A502A}"
|
||||
"Version"="1.0"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\QSRDevice.QSRDev]
|
||||
@="QSRDev Class"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\QSRDevice.QSRDev\CLSID]
|
||||
@="{35578409-F9F5-43e8-A6BD-8B77199ED854}"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\QSRDevice.QSRDev\CurVer]
|
||||
@="QSRDevice.QSRDev.1"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\QSRDevice.QSRDev.1]
|
||||
@="QSRDev Class"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\QSRDevice.QSRDev.1\CLSID]
|
||||
@="{35578409-F9F5-43e8-A6BD-8B77199ED854}"
|
||||
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{CD886C7B-B61C-49cf-B3B8-90DB303A502A}]
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{CD886C7B-B61C-49cf-B3B8-90DB303A502A}\1.0]
|
||||
@="QSRDevice 1.0 Type Library"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{CD886C7B-B61C-49cf-B3B8-90DB303A502A}\1.0\0]
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{CD886C7B-B61C-49cf-B3B8-90DB303A502A}\1.0\0\win32]
|
||||
@="M:\\users\\ua\\ua-suite\\1.6a\\UASRDEV\\2.4.0.1\\UASRDEVA.EXE"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{CD886C7B-B61C-49cf-B3B8-90DB303A502A}\1.0\FLAGS]
|
||||
@="0"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{CD886C7B-B61C-49cf-B3B8-90DB303A502A}\1.0\HELPDIR]
|
||||
@="M:\\users\\ua\\ua-suite\\1.6a\\UASRDEV\\2.4.0.1\\"
|
||||
|
||||
BIN
ua/registry/after.reg
Normal file
BIN
ua/registry/after.reg
Normal file
Binary file not shown.
BIN
ua/registry/before.reg
Normal file
BIN
ua/registry/before.reg
Normal file
Binary file not shown.
95
ua/registry/create-reg-file.ps1
Normal file
95
ua/registry/create-reg-file.ps1
Normal file
@ -0,0 +1,95 @@
|
||||
param (
|
||||
[parameter(Mandatory=$true)]
|
||||
[string]
|
||||
$templateFileName,
|
||||
|
||||
[parameter(Mandatory=$false)]
|
||||
[string]
|
||||
$outputFileName,
|
||||
|
||||
[parameter(Mandatory=$false)]
|
||||
[string]
|
||||
$registryHive = 'HKEY_LOCAL_MACHINE',
|
||||
|
||||
[parameter(Mandatory=$false)]
|
||||
[string]
|
||||
$comServerDirectory,
|
||||
|
||||
[parameter(Mandatory=$false)]
|
||||
[string]
|
||||
$comServerFileName
|
||||
)
|
||||
|
||||
if (!$outputFileName) {
|
||||
if ($templateFileName.EndsWith('.template') {
|
||||
$outputFileName = $templateFileName.Substring(0, $templateFileName.Length - 9)
|
||||
} else {
|
||||
$outputFileName = 'out.reg'
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function DoRegAction {
|
||||
param(
|
||||
# [parameter(Mandatory=$true)]
|
||||
# [String]
|
||||
# $regExe,
|
||||
|
||||
# [parameter(Mandatory=$true)]
|
||||
# [String]
|
||||
# $action,
|
||||
|
||||
[parameter(Mandatory=$true)]
|
||||
[String]
|
||||
$path
|
||||
)
|
||||
|
||||
$regExe32 = "$($env:SystemRoot)\system32\reg.exe"
|
||||
$regExe64 = "$($env:SystemRoot)\syswow64\reg.exe"
|
||||
if (Test-Path $regExe64) {
|
||||
$command = $regExe64
|
||||
} else {
|
||||
$command = $regExe32
|
||||
}
|
||||
|
||||
#$arguments = @($action, $path)
|
||||
$arguments = New-Object System.Collections.Generic.List[System.Object]
|
||||
$arguments.Add($action)
|
||||
$arguments.Add($path)
|
||||
switch ($action) {
|
||||
# 'add' {
|
||||
# }
|
||||
'delete' {
|
||||
$arguments.Add('/f')
|
||||
}
|
||||
default { # query
|
||||
$arguments.Add('/s')
|
||||
$errorMsg = "Missing key: $path"
|
||||
}
|
||||
}
|
||||
|
||||
if ($errorMsg) {
|
||||
try {
|
||||
& "$command" $arguments
|
||||
} catch {
|
||||
Write-Error $errorMsg
|
||||
}
|
||||
} else {
|
||||
& "$command" $arguments
|
||||
}
|
||||
}
|
||||
|
||||
# Write-Host "=-=-=-=-= DEBUG =-=-=-=-= type: $type"
|
||||
# Write-Host "=-=-=-=-= DEBUG =-=-=-=-= action: $action"
|
||||
# Write-Host "=-=-=-=-= DEBUG =-=-=-=-= registryHive: $registryHive"
|
||||
# Write-Host "=-=-=-=-= DEBUG =-=-=-=-= clsid: $clsid"
|
||||
# Write-Host "=-=-=-=-= DEBUG =-=-=-=-= interfaceId: $interfaceId"
|
||||
# Write-Host "=-=-=-=-= DEBUG =-=-=-=-= eventInterfaceId: $eventInterfaceId"
|
||||
# Write-Host "=-=-=-=-= DEBUG =-=-=-=-= libId: $libId"
|
||||
# Write-Host "=-=-=-=-= DEBUG =-=-=-=-= className: $className"
|
||||
DoRegAction "$registryHive\Software\Classes\CLSID\{$clsid}"
|
||||
DoRegAction "$registryHive\Software\Classes\Interface\{$interfaceId}"
|
||||
DoRegAction "$registryHive\Software\Classes\Interface\{$eventInterfaceId}"
|
||||
DoRegAction "$registryHive\Software\Classes\$ClassName"
|
||||
DoRegAction "$registryHive\Software\Classes\$ClassName.1"
|
||||
DoRegAction "$registryHive\Software\Classes\TypeLib\{$libId}"
|
||||
443
ua/registry/qlogic-devapp-tool.ps1
Normal file
443
ua/registry/qlogic-devapp-tool.ps1
Normal file
@ -0,0 +1,443 @@
|
||||
param (
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string]
|
||||
$airline = 'ua',
|
||||
|
||||
[Parameter(Mandatory=$true)]
|
||||
[ValidateSet('query', 'delete', 'import')]
|
||||
[string]
|
||||
$action,
|
||||
|
||||
[Parameter(Mandatory=$true)]
|
||||
[ValidateSet('gate', 'checkin')]
|
||||
[string]
|
||||
$comServerType,
|
||||
|
||||
[Parameter(Mandatory=$false)]
|
||||
[ValidateSet('HKEY_LOCAL_MACHINE', 'HKEY_CURRENT_USER', 'HKLM', 'HKCU')]
|
||||
[string]
|
||||
$registryHive = 'HKEY_LOCAL_MACHINE',
|
||||
|
||||
[Parameter(Mandatory=$false)]
|
||||
[string]
|
||||
$comServerDir,
|
||||
|
||||
[Parameter(Mandatory=$false)]
|
||||
[string]
|
||||
$comServerFileName,
|
||||
|
||||
[Parameter(Mandatory=$false)]
|
||||
[switch]
|
||||
$enableDebugging = $false
|
||||
)
|
||||
|
||||
if ($enableDebugging) {
|
||||
$DebugPreference = 'Continue'
|
||||
} else {
|
||||
$DebugPreference = 'SilentlyContinue'
|
||||
}
|
||||
|
||||
switch ($airline) {
|
||||
'as' {
|
||||
Write-Error "Not yet implemented for airline ""$airline"""
|
||||
exit 1
|
||||
}
|
||||
'4n' {
|
||||
Write-Error "Not yet implemented for airline ""$airline"""
|
||||
exit 1
|
||||
}
|
||||
'nz' {
|
||||
Write-Error "Not yet implemented for airline ""$airline"""
|
||||
exit 1
|
||||
}
|
||||
'ua' {
|
||||
switch ($comServerType) {
|
||||
'checkin' {
|
||||
$clsid = '35578409-F9F5-43e8-A6BD-8B77199ED854'
|
||||
$appId = '91D04D72-DCB6-11D3-957D-00409500D5AD'
|
||||
$classLabel = "QWDev Class"
|
||||
$interfaceId = '6B15E61A-381F-41e7-8B65-BA386473FE8C'
|
||||
$interfaceName = 'IQWDev'
|
||||
$eventInterfaceId = '17DCFB07-18A9-4ffe-B34D-37B91D809C41'
|
||||
$eventInterfaceName = '_IQWDevEvents'
|
||||
$typeLibId='CD886C7B-B61C-49cf-B3B8-90DB303A502A'
|
||||
$typeLibLabel = 'QSRDevice 1.0 Type Library'
|
||||
$versionIndependentProgId = 'QSRDevice.QSRDev';
|
||||
}
|
||||
'gate' {
|
||||
$clsid = '3F52625C-F66C-43F5-B538-CDF7331E0B7D'
|
||||
$appId = 'C123476B-ABB6-4bcc-B557-2FDC0CDCD6A8'
|
||||
$classLabel = "QSRDev Class"
|
||||
$interfaceId = 'D178FEAC-4969-45b4-92BF-4582EA5C6F47'
|
||||
$interfaceName = 'IQSRDev'
|
||||
$eventInterfaceId = 'FDE206D5-EB3E-4DB1-AC3E-6CF314417443'
|
||||
$eventInterfaceName = '_IQSRDevEvents'
|
||||
$typeLibId='FB2C3447-9D8D-4AD0-9234-A163505FC3AE'
|
||||
$typeLibLabel = 'QWDevice 1.0 Type Library'
|
||||
$versionIndependentProgId = 'QWDevice.QWDev';
|
||||
}
|
||||
}
|
||||
}
|
||||
default {
|
||||
Write-Error "Unknown airline: $airline"
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
switch ($action) {
|
||||
'delete' {
|
||||
}
|
||||
'import' {
|
||||
if (!$comServerDir) {
|
||||
Write-Error "Missing COM server directory"
|
||||
exit 1
|
||||
}
|
||||
if (!$comServerFileName) {
|
||||
Write-Error "Missing COM server file name"
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
'query' {
|
||||
}
|
||||
default {
|
||||
Write-Error "Unknown action: $action"
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
switch ($registryHive) {
|
||||
'HKCU' {
|
||||
}
|
||||
'HKLM' {
|
||||
}
|
||||
'HKEY_CURRENT_USER' {
|
||||
$registryHive = 'HKCU'
|
||||
}
|
||||
'HKEY_LOCAL_MACHINE' {
|
||||
$registryHive = 'HKLM'
|
||||
}
|
||||
default {
|
||||
Write-Error "Invalid registry hive: $registryHive"
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
$comServerDir = $comServerDir.TrimEnd('\')
|
||||
$comServerPath = "$comServerDir\$comServerFileName"
|
||||
if (![System.IO.Path]::IsPathRooted($comServerPath)) {
|
||||
Write-Error "Provided COM server path is not absolute: $comServerPath"
|
||||
exit 1
|
||||
}
|
||||
$comServerNetworkPath = $comServerPath
|
||||
|
||||
if (!(Test-Path $comServerPath)) {
|
||||
Write-Warning "COM server path does not exist: $comServerPath"
|
||||
}
|
||||
|
||||
# COM servers use the network path in some registry keys when self-registering, so attempt to discover it.
|
||||
try {
|
||||
$driveLetter = $comServerPath.Substring(0, 1)
|
||||
$networkPathToDrive = (Get-PSDrive | Where-Object {$_.Name -eq $driveLetter}).DisplayRoot
|
||||
if ($networkPathToDrive) {
|
||||
$rootPathWithoutDrive = $comServerPath.Substring(2)
|
||||
$comServerNetworkPath = "$networkPathToDrive$rootPathWithoutDrive"
|
||||
}
|
||||
} catch {
|
||||
Write-Error "An error occurred trying to discover network path to COM server at $comServerPath"
|
||||
}
|
||||
|
||||
$progId = "$versionIndependentProgId.1";
|
||||
$proxyStubClsid = '00020420-0000-0000-C000-000000000046'
|
||||
$proxyStubClsid32 = $proxyStubClsid
|
||||
$typeLibVersion = '1.0'
|
||||
|
||||
if ($env:PROCESSOR_ARCHITECTURE -eq 'AMD64') {
|
||||
$architectureSeparator = '\Wow6432Node'
|
||||
} else {
|
||||
$architectureSeparator = '\'
|
||||
}
|
||||
|
||||
$template = New-Object System.Collections.Generic.List[System.Object];
|
||||
|
||||
# CLSID keys
|
||||
$template.AddRange(
|
||||
@(
|
||||
@{
|
||||
Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\CLSID\{$clsid}"
|
||||
Values = @(
|
||||
@{
|
||||
Name = '(default)'
|
||||
Value = $classLabel
|
||||
},
|
||||
@{
|
||||
Name = 'AppID'
|
||||
Value = "{$appId}"
|
||||
}
|
||||
)
|
||||
},
|
||||
@{
|
||||
Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\CLSID\{$clsid}\LocalServer32"
|
||||
Values = @(
|
||||
@{
|
||||
Name = '(default)'
|
||||
Value = $comServerPath
|
||||
}
|
||||
)
|
||||
},
|
||||
@{
|
||||
Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\CLSID\{$clsid}\ProgID"
|
||||
Values = @(
|
||||
@{
|
||||
Name = '(default)'
|
||||
Value = $progId
|
||||
}
|
||||
)
|
||||
},
|
||||
@{
|
||||
Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\CLSID\{$clsid}\Programmable"
|
||||
Values = @()
|
||||
},
|
||||
@{
|
||||
Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\CLSID\{$clsid}\TypeLib"
|
||||
Values = @(
|
||||
@{
|
||||
Name = '(default)'
|
||||
Value = $typeLibId
|
||||
}
|
||||
)
|
||||
},
|
||||
@{
|
||||
Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\CLSID\{$clsid}\VersionIndependentProgID"
|
||||
Values = @()
|
||||
}
|
||||
)
|
||||
);
|
||||
|
||||
# Interface keys
|
||||
$template.AddRange(
|
||||
@(
|
||||
@{
|
||||
Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\Interface\{$interfaceId}"
|
||||
Values = @(
|
||||
@{
|
||||
Name = '(default)'
|
||||
Value = $interfaceName
|
||||
}
|
||||
)
|
||||
},
|
||||
@{
|
||||
Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\Interface\{$interfaceId}\ProxyStubClsid"
|
||||
Values = @(
|
||||
@{
|
||||
Name = '(default)'
|
||||
Value = "{$proxyStubClsid}"
|
||||
}
|
||||
)
|
||||
},
|
||||
@{
|
||||
Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\Interface\{$interfaceId}\ProxyStubClsid32"
|
||||
Values = @(
|
||||
@{
|
||||
Name = '(default)'
|
||||
Value = "{$proxyStubClsid}"
|
||||
}
|
||||
)
|
||||
},
|
||||
@{
|
||||
Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\Interface\{$interfaceId}\TypeLib"
|
||||
Values = @(
|
||||
@{
|
||||
Name = '(default)'
|
||||
Value = "{$typeLibId}"
|
||||
},
|
||||
@{
|
||||
Name = 'Version'
|
||||
Value = $typeLibVersion }
|
||||
)
|
||||
},
|
||||
@{
|
||||
Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\Interface\{$eventInterfaceId}"
|
||||
Values = @(
|
||||
@{
|
||||
Name = '(default)'
|
||||
Value = $eventInterfaceName
|
||||
}
|
||||
)
|
||||
},
|
||||
@{
|
||||
Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\Interface\{$eventInterfaceId}\ProxyStubClsid"
|
||||
Values = @(
|
||||
@{
|
||||
Name = '(default)'
|
||||
Value = "{$proxyStubClsid}"
|
||||
}
|
||||
)
|
||||
},
|
||||
@{
|
||||
Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\Interface\{$eventInterfaceId}\ProxyStubClsid32"
|
||||
Values = @(
|
||||
@{
|
||||
Name = '(default)'
|
||||
Value = "{$proxyStubClsid32}"
|
||||
}
|
||||
)
|
||||
},
|
||||
@{
|
||||
Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\Interface\{$eventInterfaceId}\TypeLib"
|
||||
Values = @(
|
||||
@{
|
||||
Name = '(default)'
|
||||
Value = "{$typeLibId}"
|
||||
}
|
||||
@{
|
||||
Name = 'Version'
|
||||
Value = $typeLibVersion
|
||||
}
|
||||
)
|
||||
}
|
||||
)
|
||||
)
|
||||
|
||||
# Prog ID keys
|
||||
$template.AddRange(
|
||||
@(
|
||||
@{
|
||||
Key = "$($registryHive):\SOFTWARE\Classes\$progId"
|
||||
Values = @(
|
||||
@{
|
||||
Name = '(default)'
|
||||
Value = $classLabel
|
||||
}
|
||||
)
|
||||
},
|
||||
@{
|
||||
Key = "$($registryHive):\SOFTWARE\Classes\$progId\CLSID"
|
||||
Values = @(
|
||||
@{
|
||||
Name = '(default)'
|
||||
Value = "{$clsid}"
|
||||
}
|
||||
)
|
||||
},
|
||||
@{
|
||||
Key = "$($registryHive):\SOFTWARE\Classes\$progId\CurVer"
|
||||
Values = @(
|
||||
@{
|
||||
Name = '(default)'
|
||||
Value = $versionIndependentProgId
|
||||
}
|
||||
)
|
||||
},
|
||||
@{
|
||||
Key = "$($registryHive):\SOFTWARE\Classes\$versionIndependentProgId"
|
||||
Values = @(
|
||||
@{
|
||||
Name = '(default)'
|
||||
Value = $classLabel
|
||||
}
|
||||
)
|
||||
},
|
||||
@{
|
||||
Key = "$($registryHive):\SOFTWARE\Classes\$versionIndependentProgId\CLSID"
|
||||
Values = @(
|
||||
@{
|
||||
Name = '(default)'
|
||||
Value = "{$clsid}"
|
||||
}
|
||||
)
|
||||
}
|
||||
)
|
||||
)
|
||||
|
||||
# TypeLib keys (add to both standard and Wow6432Node if architecture is x64)
|
||||
if ($architectureSeparator -eq '\') {
|
||||
$typeLibIterations = 1
|
||||
} else {
|
||||
$typeLibIterations = 2
|
||||
}
|
||||
for ($i = 0; $i -lt $typeLibIterations; $i++) {
|
||||
if ($i -eq 1) {
|
||||
$architectureSeparator = '\'
|
||||
}
|
||||
$template.AddRange(
|
||||
@(
|
||||
@{
|
||||
Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\TypeLib\{$typeLibId}"
|
||||
Values = @()
|
||||
},
|
||||
@{
|
||||
Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\TypeLib\{$typeLibId}\$typeLibVersion"
|
||||
Values = @(
|
||||
@{
|
||||
Name = '(default)'
|
||||
Value = $typeLibLabel
|
||||
}
|
||||
)
|
||||
},
|
||||
@{
|
||||
Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\TypeLib\{$typeLibId}\$typeLibVersion\0"
|
||||
Values = @()
|
||||
},
|
||||
@{
|
||||
Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\TypeLib\{$typeLibId}\$typeLibVersion\0\win32"
|
||||
Values = @(
|
||||
@{
|
||||
Name = '(default)'
|
||||
Value = $comServerNetworkPath
|
||||
}
|
||||
)
|
||||
},
|
||||
@{
|
||||
Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\TypeLib\{$typeLibId}\$typeLibVersion\FLAGS"
|
||||
Values = @(
|
||||
@{
|
||||
Name = '(default)'
|
||||
Value = '0'
|
||||
}
|
||||
)
|
||||
},
|
||||
@{
|
||||
Key = "$($registryHive):\SOFTWARE\Classes$($architectureSeparator)\TypeLib\{$typeLibId}\$typeLibVersion\HELPDIR"
|
||||
Values = @(
|
||||
@{
|
||||
Name = '(default)'
|
||||
Value = "$comServerDir\"
|
||||
}
|
||||
)
|
||||
}
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
function DoAction {
|
||||
param(
|
||||
[Parameter(Mandatory=$true)]
|
||||
[array]
|
||||
$template
|
||||
)
|
||||
foreach ($keyEl in $template) {
|
||||
if ($action -eq 'import') {
|
||||
#Write-Debug $keyEl.Key
|
||||
try {
|
||||
$key = New-Item -Path $keyEl.Key -Force
|
||||
Write-Host "Created registry key: $($key.PSPath)"
|
||||
}
|
||||
catch {
|
||||
Write-Error "Failed to create registry key: $($keyEl.Key)"
|
||||
continue
|
||||
}
|
||||
foreach ($valueEl in $keyEl.Values) {
|
||||
try {
|
||||
New-ItemProperty -Path $keyEl.Key -Name $valueEl.Name -Value $valueEl.Value -PropertyType 'String' -Force
|
||||
Write-Host "Created registry value: $($valueEl.Name) in $($keyEl.Key)"
|
||||
}
|
||||
catch {
|
||||
Write-Error "Failed to create registry value: $($valueEl.Name) in $($keyEl.Key)"
|
||||
continue
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
DoAction $template
|
||||
78
ua/registry/uagrdev_add.reg.template
Normal file
78
ua/registry/uagrdev_add.reg.template
Normal file
@ -0,0 +1,78 @@
|
||||
Windows Registry Editor Version 5.00
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\CLSID\{35578409-F9F5-43e8-A6BD-8B77199ED854}]
|
||||
@="QSRDev Class"
|
||||
"AppID"="{C123476B-ABB6-4bcc-B557-2FDC0CDCD6A8}"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\CLSID\{35578409-F9F5-43e8-A6BD-8B77199ED854}\LocalServer32]
|
||||
@="%REGVAR__DIR%%REGVAR__FILENAME%"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\CLSID\{35578409-F9F5-43e8-A6BD-8B77199ED854}\ProgID]
|
||||
@="QSRDevice.QSRDev.1"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\CLSID\{35578409-F9F5-43e8-A6BD-8B77199ED854}\Programmable]
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\CLSID\{35578409-F9F5-43e8-A6BD-8B77199ED854}\TypeLib]
|
||||
@="{CD886C7B-B61C-49cf-B3B8-90DB303A502A}"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\CLSID\{35578409-F9F5-43e8-A6BD-8B77199ED854}\VersionIndependentProgID]
|
||||
@="QSRDevice.QSRDev"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\Interface\{6B15E61A-381F-41e7-8B65-BA386473FE8C}]
|
||||
@="IQSRDev"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\Interface\{6B15E61A-381F-41e7-8B65-BA386473FE8C}\ProxyStubClsid]
|
||||
@="{00020424-0000-0000-C000-000000000046}"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\Interface\{6B15E61A-381F-41e7-8B65-BA386473FE8C}\ProxyStubClsid32]
|
||||
@="{00020424-0000-0000-C000-000000000046}"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\Interface\{6B15E61A-381F-41e7-8B65-BA386473FE8C}\TypeLib]
|
||||
@="{CD886C7B-B61C-49cf-B3B8-90DB303A502A}"
|
||||
"Version"="1.0"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\Interface\{17DCFB07-18A9-4ffe-B34D-37B91D809C41}]
|
||||
@="_IQSRDevEvents"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\Interface\{17DCFB07-18A9-4ffe-B34D-37B91D809C41}\ProxyStubClsid]
|
||||
@="{00020420-0000-0000-C000-000000000046}"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\Interface\{17DCFB07-18A9-4ffe-B34D-37B91D809C41}\ProxyStubClsid32]
|
||||
@="{00020420-0000-0000-C000-000000000046}"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\Interface\{17DCFB07-18A9-4ffe-B34D-37B91D809C41}\TypeLib]
|
||||
@="{CD886C7B-B61C-49cf-B3B8-90DB303A502A}"
|
||||
"Version"="1.0"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\QSRDevice.QSRDev]
|
||||
@="QSRDev Class"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\QSRDevice.QSRDev\CLSID]
|
||||
@="{35578409-F9F5-43e8-A6BD-8B77199ED854}"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\QSRDevice.QSRDev\CurVer]
|
||||
@="QSRDevice.QSRDev.1"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\QSRDevice.QSRDev.1]
|
||||
@="QSRDev Class"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\QSRDevice.QSRDev.1\CLSID]
|
||||
@="{35578409-F9F5-43e8-A6BD-8B77199ED854}"
|
||||
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\TypeLib\{CD886C7B-B61C-49cf-B3B8-90DB303A502A}]
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\TypeLib\{CD886C7B-B61C-49cf-B3B8-90DB303A502A}\1.0]
|
||||
@="QSRDevice 1.0 Type Library"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\TypeLib\{CD886C7B-B61C-49cf-B3B8-90DB303A502A}\1.0\0]
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\TypeLib\{CD886C7B-B61C-49cf-B3B8-90DB303A502A}\1.0\0\win32]
|
||||
@="%REGVAR__DIR%%REGVAR__FILENAME%"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\TypeLib\{CD886C7B-B61C-49cf-B3B8-90DB303A502A}\1.0\FLAGS]
|
||||
@="0"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\TypeLib\{CD886C7B-B61C-49cf-B3B8-90DB303A502A}\1.0\HELPDIR]
|
||||
@="%REGVAR__DIR%"
|
||||
|
||||
78
ua/registry/uasrdev_add.reg.template
Normal file
78
ua/registry/uasrdev_add.reg.template
Normal file
@ -0,0 +1,78 @@
|
||||
Windows Registry Editor Version 5.00
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\CLSID\{3F52625C-F66C-43F5-B538-CDF7331E0B7D}]
|
||||
@="QWDev Class"
|
||||
"AppID"="{91D04D72-DCB6-11D3-957D-00409500D5AD}"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\CLSID\{3F52625C-F66C-43F5-B538-CDF7331E0B7D}\LocalServer32]
|
||||
@="%REGVAR__DIR%%REGVAR__FILENAME%"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\CLSID\{3F52625C-F66C-43F5-B538-CDF7331E0B7D}\ProgID]
|
||||
@="QWDevice.QWDev.1"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\CLSID\{3F52625C-F66C-43F5-B538-CDF7331E0B7D}\Programmable]
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\CLSID\{3F52625C-F66C-43F5-B538-CDF7331E0B7D}\TypeLib]
|
||||
@="{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\CLSID\{3F52625C-F66C-43F5-B538-CDF7331E0B7D}\VersionIndependentProgID]
|
||||
@="QWDevice.QWDev"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\Interface\{D178FEAC-4969-45b4-92BF-4582EA5C6F47}]
|
||||
@="IQWDev"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\Interface\{D178FEAC-4969-45b4-92BF-4582EA5C6F47}\ProxyStubClsid]
|
||||
@="{00020424-0000-0000-C000-000000000046}"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\Interface\{D178FEAC-4969-45b4-92BF-4582EA5C6F47}\ProxyStubClsid32]
|
||||
@="{00020424-0000-0000-C000-000000000046}"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\Interface\{D178FEAC-4969-45b4-92BF-4582EA5C6F47}\TypeLib]
|
||||
@="{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}"
|
||||
"Version"="1.0"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\Interface\{FDE206D5-EB3E-4DB1-AC3E-6CF314417443}]
|
||||
@="_IQWDevEvents"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\Interface\{FDE206D5-EB3E-4DB1-AC3E-6CF314417443}\ProxyStubClsid]
|
||||
@="{00020420-0000-0000-C000-000000000046}"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\Interface\{FDE206D5-EB3E-4DB1-AC3E-6CF314417443}\ProxyStubClsid32]
|
||||
@="{00020420-0000-0000-C000-000000000046}"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\Interface\{FDE206D5-EB3E-4DB1-AC3E-6CF314417443}\TypeLib]
|
||||
@="{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}"
|
||||
"Version"="1.0"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\QWDevice.QWDev]
|
||||
@="QWDev Class"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\QWDevice.QWDev\CLSID]
|
||||
@="{3F52625C-F66C-43F5-B538-CDF7331E0B7D}"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\QWDevice.QWDev\CurVer]
|
||||
@="QWDevice.QWDev.1"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\QWDevice.QWDev.1]
|
||||
@="QWDev Class"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\QWDevice.QWDev.1\CLSID]
|
||||
@="{3F52625C-F66C-43F5-B538-CDF7331E0B7D}"
|
||||
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}]
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0]
|
||||
@="QWDevice 1.0 Type Library"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0\0]
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0\0\win32]
|
||||
@="%REGVAR__DIR%%REGVAR__FILENAME%"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0\FLAGS]
|
||||
@="0"
|
||||
|
||||
[%REGVAR__HIVE%\SOFTWARE\Classes\TypeLib\{FB2C3447-9D8D-4AD0-9234-A163505FC3AE}\1.0\HELPDIR]
|
||||
@="%REGVAR__DIR%"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user