小编Vla*_*kov的帖子

Sysinternals Procmon 日志中的路径“\REGISTRY\A\...”是什么意思?

我使用 Sysinternals Procmon 实用程序来监视某些程序对注册表的访问。大多数日志条目都有从HKCU\…或开始的 Path 属性HKLM\…,它对应于注册表配置单元HKEY_CURRENT_USER并且HKEY_LOCAL_MACHINE可以使用 Regedit 看到。但有些条目的路径从\REGISTRY\A\…

在此处输入图片说明

你能解释一下它是注册表的哪一部分吗?我可以使用 Regedit 或其他一些实用程序查看它吗?我可以以编程方式访问它吗?

我正在运行Windows 8.1 Enterprise x64


更新:我已经联系了 Procmon 开发人员,他们向我指出了以下涵盖此问题的 MSDN 资源:

windows-registry regedit sysinternals procmon

24
推荐指数
4
解决办法
5376
查看次数

如何以编程方式查找和打开以前版本的文件夹(使用 PowerShell、WMI 等)?

我正在运行 Windows 8 Enterprise x64。当我\\localhost\c$作为网络文件夹打开,然后使用上下文菜单打开子文件夹的“属性”窗口(例如\\localhost\c$\Deploy,如下例所示)时,有“以前的版本”选项卡,我可以在其中看到该文件夹​​的可用以前版本的列表,以及相应的时间戳:

以前的版本选项卡


如果我选择一个版本并单击“打开”按钮,则会打开一个新的资源管理器窗口,我可以在其中浏览所选文件夹的先前版本:

常规选项卡上的位置


地址栏显示一个位置,其中时间戳(以人类可读的长格式)附加到每个文件夹名称。如果从那里复制该位置,则不能直接用作另一个资源管理器窗口或命令行工具中的有效路径。但是,如果我打开子文件夹的“属性”窗口,它会以类似\\localhost\c$\@GMT-2013.08.27-04.01.18\Deploy. 这种形式实际上可以在资源管理器和命令行中使用:

C:\>dir \\localhost\c$\@GMT-2013.08.27-04.01.18\Deploy /s
 Volume in drive \\localhost\c$ is OSDisk
 Volume Serial Number is ????-????

 Directory of \\localhost\c$\@GMT-2013.08.27-04.01.18\Deploy

04/11/2013  10:53 AM    <DIR>          .
04/11/2013  10:53 AM    <DIR>          ..
04/11/2013  10:53 AM    <DIR>          Tools
               0 File(s)              0 bytes

 Directory of \\localhost\c$\@GMT-2013.08.27-04.01.18\Deploy\Tools

04/11/2013  10:53 AM    <DIR>          .
04/11/2013  10:53 AM    <DIR>          ..
04/11/2013  10:53 AM    <DIR>          x64
               0 File(s)              0 bytes …
Run Code Online (Sandbox Code Playgroud)

windows powershell windows-explorer previous-versions windows-8

19
推荐指数
1
解决办法
2万
查看次数

为什么不同的进程会看到 System32 文件夹的不同实例?

我正在运行 Windows 8 Enterprise x64。我使用管理员组中的帐户登录。当我打开 Windows 资源管理器或命令提示符时,我可以看到该文件cdd.dll

Windows资源管理器


C:\Windows\system32>dir cdd.dll
 Volume in drive C has no label.
 Volume Serial Number is ????-????

 Directory of C:\Windows\system32

07/25/2012  09:49 PM           199,680 cdd.dll
Run Code Online (Sandbox Code Playgroud)

但是如果我从 Chrome 浏览器、Visual Studio 或其他一些应用程序(它们都是 32 位应用程序)打开一个打开文件对话框并导航到C:\Windows\system32那么没有这样的文件(过滤器设置为显示所有文件)。如果我在“打开文件”对话框中使用 Shift+RightClick 调用“在此处打开命令窗口”上下文菜单项并输入dir它确认没有这样的文件:

打开文件对话框


C:\Windows\System32>dir cdd.dll
 Volume in drive C has no label.
 Volume Serial Number is ????-????

 Directory of C:\Windows\System32

File Not Found
Run Code Online (Sandbox Code Playgroud)

此效果并非特定于cdd.dll,许多其他文件也有所不同。有人告诉我,这是 文件系统虚拟化的影响,我对此知之甚少。

你能解释一下或给我一个解释这实际上是如何工作的参考吗?实际上是否有System32文件夹的几个不同实例。它们在磁盘上的物理位置是什么?是否可以从与System32默认情况下显示的 32 位进程不同的文件夹中的 32 位进程文件访问。

64-bit 32-bit folder-redirection system-file windows-8

10
推荐指数
1
解决办法
991
查看次数

在 BAT 文件中展开“%~dp0”后出现意外的重复目录名

我使用的是 Windows 10 Enterprise x64。我有以下目录层次结构,最内层有一个 BAT 文件:

C:\
  dir\
    my files\
      run.bat
Run Code Online (Sandbox Code Playgroud)

BAT 文件包含以下几行:

@pushd %~dp0
@echo %~dp0
@popd
Run Code Online (Sandbox Code Playgroud)

%~dp0帮助主题for /?本答案中解释了 的含义和用法)

如果我从当前目录为 的命令提示符运行 BAT 文件C:\dir\my files,那么我会得到一个非常合理的结果:

C:\dir\my files>run.bat
C:\dir\my files\
Run Code Online (Sandbox Code Playgroud)

但是如果我从父目录调用它C:\dir,我会得到:

C:\dir>"my files"\run.bat
C:\dir\my files\my files"\
Run Code Online (Sandbox Code Playgroud)

嗯?请注意,最里面的目录名称是重复的,并且"\末尾有一些杂散字符。让我们以不同的方式尝试一下:

C:\dir>"my files\run.bat"
C:\dir\my files\my files\
Run Code Online (Sandbox Code Playgroud)

杂散字符消失了,但目录名称仍然重复。对此有何解释?如何修改 BAT 文件,以便无论从哪个目录调用它都提供相同的输出?

当然,我的真实场景比这个简化版还要复杂。的值%~dp0与其他字符串连接,分配给环境变量,作为参数传递给其他脚本等。

windows command-line environment-variables whitespace batch-file

7
推荐指数
1
解决办法
4732
查看次数