等待Write Filter统一检测

P
13
0
1
我们正在尝试创建具有多种部署类型的部署,以处理不同的场景,如Deep Freeze和Microsoft的统一写过滤器。Deep Freeze很简单,但是当目标上没有安装UWF时,创建需要UWF的部署类型会失败。

如果我们像这样创建一个自定义全局条件:
1652468524782. png
然后添加UWF当前不活跃的需求:
1652467660487. png
它的工作原理。然而,当UWF没有安装时,DCMWmiProvider.log显示:
1652467323092. png
并且应用程序安装失败,即使有另一种部署类型应该在UWF不存在时运行。具有最高优先级的部署类型查找仅在安装UWF时才存在的注册表项,如果不存在则应运行该注册表项。我通过删除第二个为UWF_Filter类查询WMI的部署类型来确认这一点。应用程序立即安装。

如果安装了UWF,当UWF CurrentEnabled为false时,上面的UWF_Filter查询工作,应用程序安装没有错误。只有当没有安装UWF时,整个事情才会失败。我尝试将reqistry键存在需求添加到UWF Active部署类型,但没有成功,我尝试添加CurrentEnabled属性存在的需求,但两次尝试都失败了。我们在DCMWmiProvider.log中得到相同的无效类错误。

谁有一个想法,我们可以让这个工作时,UWF没有安装?

附件

  • 1652467575403. png
    1652467575403. png
    28.7 KB·视图:0
人事处
P
13
0
1
看起来这可能是个漏洞?我不确定为什么一个部署类型的失败会导致所有部署类型的失败——即使是那些具有更高优先级的部署类型……在上述情况下有三个(两个优先级更高),如果没有安装Deep Freeze和UWF,只要不包括最后一种部署类型,优先级最高的一个就会成功安装。
人事处
P
13
0
1
  • 线程启动
  • # 5
尝试用powershell解决这个问题:
我们创建了以下脚本(这里有删节):
#查询uwfmgr.exe中的过滤器状态并返回MECM
#全局变量
$NAMESPACE = "root\standardcimv2\embedded"

########################################################################################################################

#获取UWF的当前状态
if ($objUWFFilter) {$objUWFFilter = Get-WmiObject -Namespace $NAMESPACE -类UWF_Filter;}
如果(! $ objUWFFilter) {
回声禁用
返回;


#检查UWF是否启用
如果((objUWFFilter.CurrentEnabled美元)或者(objUWFFilter.NextEnabled美元)){
启用回声
}其他{
回声禁用


# SIG #开始签名块

然后在目标计算机上测试脚本-它成功运行,并显示“已禁用”

然后创建一个新的全局条件:
1652913930872. png


然后添加了脚本返回“disabled”的要求
1652914044889. png

但这并不奏效。AppDiscovery.log节目:
1652914961619. png

我不知道该往哪里走……
人事处
P
13
0
1
  • 线程启动
  • # 6
有人知道让脚本向CM返回值的技巧吗?我已经尝试了echo命令(如CM中的对话框所示),但我不确定如何进行故障排除并查看CM是否实际接收到返回值。我尝试返回一个字符串(禁用或启用)和一个整数(0或1),但似乎都不工作。——我甚至不确定脚本是否在目标上运行。我尝试了自签名脚本,并将该证书导入到目标机器,还尝试了消除签名并将执行策略设置为“无限制”,但我似乎在折腾…

论坛统计

线程
4943年
消息
19269年
成员
10181年
最新的成员
Itso