使用PowerShell创建FSRM白名单文件屏蔽模板时遭遇0x80070057参数错误求助
使用PowerShell创建FSRM白名单文件屏蔽模板时遭遇0x80070057参数错误求助
嘿,我帮你捋捋这个问题,你碰到的0x80070057参数错误,核心原因是FSRM文件屏蔽的逻辑搞反了,再加上命令里的引号格式有问题,咱们一步步来解决:
首先得明确FSRM参数的逻辑:-IncludeGroup是用来指定需要被拦截的文件组的,你之前直接把白名单组传给它,相当于告诉FSRM“把我允许的文件都拦下来”,这不仅和你要的白名单逻辑完全相反,FSRM的参数校验也会直接判定这个配置无效,触发参数错误。
白名单的正确实现逻辑应该是:先设置拦截所有文件,再排除你的白名单组(也就是允许这些文件通过),对应的PowerShell命令得这么调整:
第一步:修正通知动作的命令格式
你原来的命令里用了"这种HTML转义字符,在PowerShell里直接用正常引号就行,嵌套引号的时候用单引号包裹整个参数串是最稳妥的方式:
# 重新创建通知动作,修正引号格式 $ntf_action = New-FsrmAction -Type Command ` -Command "C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe" ` -CommandParameters 'c:\admin-skripte\block-ransomware\block-ransomware.ps1 "[Source Io Owner]" "[Source File Path]" "[Server]"'
第二步:创建正确的白名单文件屏蔽模板
这里要用到FSRM默认的「All Files」组(用来拦截所有文件),再用-ExcludeGroup指定你的白名单组,实现“允许白名单,拦截其他所有”的效果:
# 创建符合白名单逻辑的文件屏蔽模板 New-FsrmFileScreenTemplate -Name "testing" ` -IncludeGroup "All Files" ` -ExcludeGroup "Whitelist" ` -Notification $ntf_action
额外的排查小技巧
- 先确认你的「Whitelist」文件组已经正确创建,包含了所有你需要允许的文件类型;
- 如果还是报错,可以先去掉通知动作,直接运行
New-FsrmFileScreenTemplate -Name "testing" -IncludeGroup "All Files" -ExcludeGroup "Whitelist",如果这个能成功,说明问题出在通知动作的配置上,你可以用$ntf_action | Format-List查看动作的所有属性,检查命令和参数是否正确; - 记住FSRM的核心逻辑:
IncludeGroup = 要拦的,ExcludeGroup = 要放的,别搞反了!
备注:内容来源于stack exchange,提问作者Larsen
相关产品推荐
相关产品推荐

