- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
一段时间以来,我一直在尝试弄清楚如何正确设置这个新的 UWF(统一写入过滤器)。不幸的是,似乎只有 Win 8.1 行业 ( here ) 的文档,而不是 Win 10。我希望此后没有相关的更改。
我也在 WindowsDevCenter 上询问过这个问题,但到目前为止没有得到任何回应。
这是我的问题:
通过 WMI 提供程序,我现在启用了 UWF (UWF_Filter.Enable()
),但我无法保护任何卷。
音量列表看起来也很奇怪:有 4 个条目,每个条目都是 CurrentSession=True
。
通常每个卷不应该有 2 个条目,一个 CurrentSession
为 true,另一个为 false,这意味着它是在重启后应用的设置?
如果我尝试使用 DriveLetter=C:
在 ManagementObject 上执行 Protect
,我会得到一个 Access denied
异常,我假设是因为它当前 session 的对象。
此外,如果我在控制台上尝试 uwfmgr.exe Volume Protect C:
,它就会挂起:没有反应,没有错误,只有一个永远闪烁的光标。 编辑: 原来这是由另一个安装的软件引起的问题。另见下文。
在保护卷之前,我是否必须启用或禁用或执行任何其他操作?
提前致谢
塞巴斯蒂安
我的系统:
编辑:
Here我问了一个跟进问题,其中包含一些其他细节和解决方法。例如,如果我使用 uwfmgr.exe volume protect c:
,它可以工作并且 UWF_Volume 现在突然有(正确的)2 个 C:
条目,一个用于当前,一个用于下届 session 。
但是我想避免这种情况,因为恕我直言,它应该只能通过 WMI 解决。
编辑 2: @sommmen
分区布局如下:一个磁盘4个分区。
附言:
任何人都可以创建标签 uwf
和 uwfmgr
吗?会很好:-)
最佳答案
在我的测试中,重启后经常会出现丢失的 UWF_Volume 实例。但如果没有,您可以使用 ManagementClass.CreateInstance()
直接创建它们。
这里的问题是官方文档并不完全正确。 UWF_Volume.VolumeName
属性的描述是:
The unique identifier of the volume on the current system. TheVolumeName is the same as the DeviceID property of the Win32_Volumeclass for the volume.
来自:https://learn.microsoft.com/en-us/windows-hardware/customize/enterprise/uwf-volume#properties
事实上,DeviceID
在将其用作 UWF_Volume.VolumeName
的值之前需要稍作修改:
DeviceID.Substring(4).TrimEnd('\\')
因此,在删除前缀 \\?\
并删除任何尾部斜杠后,您可以为指定设备创建具有 CurrentSession=false
的实例。
这也适用于没有任何 uwfmgr.exe
的 Windows 10 Pro。虽然,官方不推荐/支持。
此外,我还不能删除实例。因此请务必仅添加正确的值。
完整示例:
// example value
var DeviceId_From_Win32_Volume = @"\\?\Volume{c2eac053-27e3-4f94-b28c-c2c53d5f4fe1}\";
// example value
var myDriveLetter = "C:";
var myDeviceId = DeviceId_From_Win32_Volume.Substring(4).TrimEnd('\\');
var wmiNamespace = "root\\standardcimv2\\embedded";
var className = "UWF_Volume";
var mgmtScope = new ManagementScope {Path = {NamespacePath = wmiNamespace}};
var mgmtPath = new ManagementPath(className);
var mgmtClass = new ManagementClass(mgmtScope, mgmtPath, null);
// prepare the new object
var newObj = mgmtClass.CreateInstance();
newObj.SetPropertyValue("DriveLetter", myDriveLetter);
newObj.SetPropertyValue("VolumeName", myDeviceId);
newObj.SetPropertyValue("CurrentSession", false);
newObj.SetPropertyValue("CommitPending", false);
newObj.SetPropertyValue("BindByDriveLetter", false);
// create the WMI instance
newObj.Put(new PutOptions {Type = PutType.CreateOnly});
关于c# - UWF_Volumes 没有 CurrentSession=False 的条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46784675/
一段时间以来,我一直在尝试弄清楚如何正确设置这个新的 UWF(统一写入过滤器)。不幸的是,似乎只有 Win 8.1 行业 ( here ) 的文档,而不是 Win 10。我希望此后没有相关的更改。 我
我是一名优秀的程序员,十分优秀!