![如何在不截断输出的情况下通过 PowerShell 检索 Windows Defender 排除项](https://linux22.com/image/1634325/%E5%A6%82%E4%BD%95%E5%9C%A8%E4%B8%8D%E6%88%AA%E6%96%AD%E8%BE%93%E5%87%BA%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E9%80%9A%E8%BF%87%20PowerShell%20%E6%A3%80%E7%B4%A2%20Windows%20Defender%20%E6%8E%92%E9%99%A4%E9%A1%B9.png)
我想编写一个 PowerShell 脚本来显示 Windows 10 中 Windows Defender 中设置的所有排除项。因此,我已经发现可以通过调用来完成此操作
Get-MpPreference | Select-Object -Property ExclusionPath
如果定义了大量文件和文件夹,则会截断输出。
所以我尝试添加
Get-MpPreference | Select-Object -Property ExclusionPath | Out-String -width 1024
这会导致类似的输出:字符串变得更长,但截断仍然存在,只有一些空格被添加在末尾:
ExclusionPath
-------------
{C:\Users\Elvi\Documents\Assassin's Creed IV Black Flag, C:\Users\Elvi\Documents\Benutzerdefinierte Office-Vorlagen, C:\Users\Elvi\Documents\FHOA, C:\Users\Elvi\Documents\Gebuhrenzentrale...}
PS C:\WINDOWS\system32>
那么如何防止 Powershell 截断文件夹的输出?
答案1
获取 MpPreference | 选择对象 -ExpandProperty ExclusionPath
-ExpandProperty
将 ExclusionPath 集合解开为单独的行,每个排除路径占一行。
Out-String -Width
或者Format-Table -Width
在项目数量过多的情况下帮助不够,Powershell 不会显示超过项目值的内容$FormatEnumerationLimit
。因此,您也可以将其设置为更高的值
$FormatEnumerationLimit=12
但是,如果项目超过 12 个会发生什么情况(您可以将数量增加到 1500...输出仍然很难看)
答案2
这对我有用,列出所有扩展的条目:
Get-MpPreference | Select-Object -Property ExclusionPath -ExpandProperty ExclusionPath
答案3
使用管道输出格式表命令行开关,例如
Get-MpPreference | Select-Object -Property ExclusionPath | Format-Table -AutoSize
答案4
用这个:
$exclusions = Get-MpPreference
$exclusions.ExclusionPath