如何使用 PowerShell 运行.reg 文件?

How to run the .reg file using PowerShell?

我想 运行 使用 PowerShell 脚本 运行 .reg 文件(注册表文件),但我无法 运行 它。当我 运行 它手动创建注册表中的相应节点但我希望它使用 powershell 脚本执行。 下面是我尝试使用但没有结果的代码 -

$PathofRegFile="c:\file.reg"
regedit /s $PathofRegFile

我试过的另一个代码是这个 -

Start-Process -filepath "C:\windows\regedit.exe" -argumentlist "/s c:\file.reg"

请帮忙..!

下面是我的 .reg 文件的内容

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\SePI]

[HKEY_LOCAL_MACHINE\SOFTWARE\SePI\STEP]
@=""

[HKEY_LOCAL_MACHINE\SOFTWARE\SePI\STEP\Platform]
"VERSION"="8.2.6.0"

[HKEY_LOCAL_MACHINE\SOFTWARE\SePI\STEP\Platform\AppService]
"MONITORINTERVAL"=dword:00000005
"MONITORAPPS"="STEP Audit"

[HKEY_LOCAL_MACHINE\SOFTWARE\SePI\STEP\Platform\Audit]
"TRACEON"=dword:00000000
"TRACEDIR"="Specifies the directory to dump trace files if TRACEON is set to 1"

[HKEY_LOCAL_MACHINE\SOFTWARE\SePI\STEP\Platform\Common]
"SSMITRACEFILEX"="C:\Program Files\SePI\STEP\LogFiles\SSMITraceFile.txt"
"SSMILOGERRORSLOCALLY"="Yes"
"SSMIDoNotSendToAudit"="FALSE"
"ResourceFile"="C:\Program Files\SePI\STEP\Programs\"
"REPORTALLEXCEPTIONS"="Yes"
"KSPath"="C:\Program Files\SePI\STEP\KeyStore\"
"KEY"="10069356713705F858B56A9E850DD8CB7D"
"intelliSUITEnode"="WebApp"
"InstallationDir"="C:\Program Files\SePI\STEP\"
"IMSFirstRun"=dword:00000001
"CONFIGPATH"="C:\Program Files\SePI\STEP\Configuration Files\"
"COM_VERBOSEGLOBALCACHE"="False"
"COM_UserProfileCacheExpirationInSecs"="30"
"COM_SSMISenderUtilCacheExpirationInSecs"="120"
"COM_REPORTIGNOREDEXCEPTIONSASWARNINGS"="True"
"COM_LOCALUTILSCACHEEXPIRATIONINSECS"="600"
"COM_DEFAULTPROPERTYCACHEEXPIRATIONINSECS"="600"
"ProductName"="Ron"

[HKEY_LOCAL_MACHINE\SOFTWARE\SePI\STEP\Platform\ESI]

[HKEY_LOCAL_MACHINE\SOFTWARE\SePI\STEP\Platform\ESI\ITranQueryPrep]
"PATH"="C:\Program Files\SePI\STEP\QueryTemplates"

[HKEY_LOCAL_MACHINE\SOFTWARE\SePI\STEP\Platform\ITran]
"MAXROWSTORETURN"=dword:000003e8
"WRITERPSWD"="PASSWORD"
"WRITER"="ITRAN_WRITER"
"SERVER"="SQL SERVER"
"READERPSWD"="PASSWORD"
"READER"="ITRAN_READER"
"DBNAME"="DATABASENAME"

[HKEY_LOCAL_MACHINE\SOFTWARE\SePI\STEP\Platform\ReportingSvc]
"STATUSINTERVAL"="5"
"POLLINTERVAL"="2"
"MONITORINTERVAL"="5"
"MAXWORKERTHREADS"="5"
"CONFIGFILE"="C:\Program Files\SePI\STEP\Configuration Files\"

您可能试图 运行 它没有足够的权限。此代码段应该有效:

$startprocessParams = @{
    FilePath     = "$Env:SystemRoot\REGEDIT.exe"
    ArgumentList = '/s', 'C:\file.reg'
    Verb         = 'RunAs'
    PassThru     = $true
    Wait         = $true
}
$proc = Start-Process @startprocessParams

if ($proc.ExitCode -eq 0) {
    'Success!'
}
else {
    "Fail! Exit code: $($Proc.ExitCode)"
}

Pause

用 reg.exe 代替 regedit.exe

怎么样
Get-Command reg

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Application     reg.exe                                            10.0.16... C:\Windows\system32\reg.exe

这对我很有效:

reg import .\test.reg

我用

Invoke-Command {reg import \server\share\test.reg *>&1 | Out-Null}

最后一部分

*>&1 | Out-Null

将输出通过管道传递给 null,这样控制台就看不到它。我不认为这是必需的,但它让我很烦。

这是我用的

regedit /s "c:\file.reg"

你可以使用这个:

Start-Process -filepath "$env:windir\regedit.exe" -Argumentlist @("/s", "`"C:\file.reg`"")