为什么运行命令和快捷方式之间存在差异

为什么运行命令和快捷方式之间存在差异

我经常(每隔几天)在 Windows 系统上创建还原点,以触发文件系统的“文件版本”方面。使用 UI 时,需要点击大量按键才能到达可以创建手动还原点的位置。我发现适用的小程序是:SystemPropertiesProtection.exe;因此我在“运行...”命令(从“开始”菜单)上对其进行了测试,一切正常。

因此,我接下来创建了一个快捷方式,在我的 32 位 Windows 7 系统上,它也运行正常。但是,当我将快捷方式带到我的 Windows 64 位系统(并针对可执行文件的不同位置进行调整)时,它会弹出对话框,但缺少“系统保护”选项卡!我无法使用快捷方式。但是,如果我恢复到运行命令,它就可以正常工作!

发生了什么事?为什么会有这种差异?

蒂亚,保罗

答案1

但是,当我将快捷方式带到我的 Windows 64 位系统(并针对可执行文件的不同位置进行了调整)时

您的问题是您不需要更改可执行文件的位置。在 64 位 Windows 上,System32 文件夹实际上是 64 位二进制文​​件所在的位置。SysWOW64 目录是 32 位二进制文​​件所在的位置。在SystemPropertiesProtection.exe64 位 Windows 上运行 32 位版本不会出现System Properties您所观察到的选项卡。

无论您使用的是 32 位还是 64 位 Windows,运行所用的路径SystemPropertiesProtection.exe应始终是:

%SystemRoot%\System32\SystemPropertiesProtection.exe

答案2

运行命令和快捷方式之间的区别似乎在于运行命令使用的是 32 位版本。我尝试在 64 位 Windows 7 计算机上运行“运行”>“SystemPropertiesProtection”,它也在 C:\Windows\System32 中找到并打开了 32 位版本。

编辑:运行命令和快捷方式之间的区别似乎在于运行命令使用的是 64 位版本(Windows 将其保存在 system32 文件夹中以实现向后兼容)。WoW64 文件夹中的另一个版本是 32 位版本。我尝试在 64 位 Windows 7 计算机上运行 >“SystemPropertiesProtection”,它也找到并打开了64 位版本位于 C:\Windows\System32

谢谢 Ryan!

答案3

我以前从未使用过这种方法。它很容易失败。

更好的想法是使用 VB 脚本。

If WScript.Arguments.Count = 0 Then
    Set objShell = CreateObject(“Shell.Application”)
objShell.ShellExecute “wscript.exe”, WScript.ScriptFullName & ” Run”, , “runas”, 1
Else
    GetObject(“winmgmts:\\.\root\default:Systemrestore”).CreateRestorePoint “description”, 0, 100
End If

将其保存为 VB 脚本,然后双击即可创建还原点。从中创建快捷方式,然后可以将其固定到“开始”菜单或任务栏。

相关内容