将 system32 复制到 syswow64 有问题吗?

将 system32 复制到 syswow64 有问题吗?

.bat以管理员身份运行了一个文件。该.bat文件要求将所有.dll文件从当前目录复制到该syswow64目录。例如:

copy *.dll c:\windows\syswow64

不幸的是,以管理员身份运行它会将当前目录设置为c:\windows\system32而不是文件所在的目录.bat,因此会导致.dll中的文件system32被复制到syswow64。输出显示了很多.dll文件名,但也有很多Access Denied.s。当我注意到它正在复制我打算复制的 7 个文件以外的内容时,我立即终止了批处理。

这对那个站点来说无害吗,还是有问题?有没有办法恢复文件syswow64夹,还是我不应该这么做?有没有办法判断是否有.dll文件受到影响?

答案1

不久的将来可能会出现严重问题。

令人困惑的是,该文件夹包含 64 位二进制文​​件,SysWOW64其中包含 32 位 DLL,供您运行的 32 位应用程序使用。System32

正在使用或已经存在的 DLL 文件未被替换,但可能有一堆 64 位 DLL 位于仅应加载 32 位二进制文​​件的文件夹中(非常糟糕)。

重启可能会产生后果。您应sfc /scannow尽快执行此操作,以尽量减少系统完整性的损失。

答案2

如果它们不是以系统文件命名的,那就没问题,因为没有人会尝试使用它们。如果它们以系统文件命名,很可能它们都会被拒绝访问,因为没有人有权覆盖系统文件,包括管理员。

C:\Users\User>icacls c:\windows\system32\notepad.exe
c:\windows\system32\notepad.exe NT SERVICE\TrustedInstaller:(F)
                                BUILTIN\Administrators:(RX)
                                NT AUTHORITY\SYSTEM:(RX)
                                BUILTIN\Users:(RX)

Successfully processed 1 files; Failed processing 0 files

如您所见,只有 TrustedInstaller(安装/Windows 更新安全伪用户)有覆盖权限。

管理员必须拥有所有权并授予自己权限,然后才能覆盖。

相关内容