网络共享批处理文件不会更改注册表



我有以下批处理文件:

powershell -Command "& {Set-ItemProperty -Path HKLM:SOFTWAREMicrosoftWindowsCurrentVersionWindowsStoreWindowsUpdate -Name AutoDownload -Value 2 -Type DWord}"

如果我在本地运行它,它确实会对注册表进行必要的更改,但是如果我将其上传到共享文件夹并通过共享文件夹执行此批处理文件,它不会更改注册表。

我在这里到底错过了什么?如果文件位于我的本地计算机上,它可以正常工作,但是如果我从共享文件夹启动它(无需本地下载(,则不会进行任何更改。

批处理文件通过 HTA 文件调用,代码如下:

function Win10UninstallUnnecessaryApps(){
var shell = new ActiveXObject("WScript.Shell");
var path = '"file:\\fs\FIle Share\SA Support\ZverTools\Win10UninstallUnnecessaryApps.bat"'; 
shell.run(path,1,false); 
}

由于您正在从网络共享运行批处理文件,因此这意味着您不在本地计算机中。您还需要管理员权限。所以你必须使用这个:

@echo off
NET SESSION >NUL 2>&1 
IF %ERRORLEVEL% NEQ 0 GOTO elevate
GOTO admintasks
:elevate
pushd %~dp0 
MSHTA.exe "javascript: var shell = new ActiveXObject('shell.application'); shell.ShellExecute('%~nx0', '', '', 'runas', 1);close();"
:admintasks
powershell -command invoke-command -computername  TheLocalComputerName -scriptblock "& {Set-ItemProperty -Path HKLM:SOFTWAREMicrosoftWindowsCurrentVersionWindowsStoreWindowsUpdate -Name AutoDownload -Value 2 -Type DWord}"

TheLocalComputerName替换为要在其中执行此操作的计算机。

我知道以下方法并不完美,但它是唯一适用于我的情况的解决方案。这是某种黑客方法,用于执行由HTA应用程序执行的注册表更改。您应该创建一个批处理文件来下载另一个批处理文件(其中包含注册表更改代码(,然后选择该特定文件并使用 SendKeys 方法来模拟单击事件。一旦我使用以下技巧更新了我的HTA应用程序,它就运行良好,毕竟我得到了我的单击注册表更改。

这是运行另一个批处理文件(应编辑注册表值的批处理文件(的起始批处理文件(从HTA应用程序按钮执行(代码:

@if (@CodeSection == @Batch) @then
@echo off
set SendKeys=CScript //nologo //E:JScript "%~F0"
xcopy "\fsFIle ShareSA SupportZverToolsWin10UninstallUnnecessaryApps.bat" "%USERPROFILE%" /y
TIMEOUT /T 2 /NOBREAK
set targetfilepath=%USERPROFILE%Win10UninstallUnnecessaryApps.bat   
explorer.exe /select, "%TARGETFILEPATH%"
TIMEOUT /T 4 /NOBREAK
%SendKeys% "{ENTER}"
goto :EOF
@end
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.SendKeys(WScript.Arguments(0));

这是允许我通过单击HTA应用程序按钮更改注册表值的唯一解决方案。

我想通过批处理文件(从HTA应用程序执行(更改的注册表值是:

powershell -Command "& {Set-ItemProperty -Path HKLM:SOFTWAREMicrosoftWindowsCurrentVersionWindowsStoreWindowsUpdate -Name AutoDownload -Value 2 -Type DWord}"

最新更新