如何通过 PowerShell 检索 Windows Defender 排除项而不截断输出

Eri*_*rik 4 windows powershell windows-10

我想编写一个 PowerShell 脚本来显示 Windows 10 中 Windows Defender 中设置的所有排除项。所以我已经发现这可以通过调用来完成

Get-MpPreference | Select-Object -Property ExclusionPath
Run Code Online (Sandbox Code Playgroud)

如果定义了很多文件和文件夹,则会截断输出。

所以我尝试添加

Get-MpPreference | Select-Object -Property ExclusionPath | Out-String -width 1024
Run Code Online (Sandbox Code Playgroud)

这会导致类似的输出:字符串变长,但截断仍然存在,仅在末尾添加一些空格:

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>
Run Code Online (Sandbox Code Playgroud)

那么如何防止 Powershell 截断文件夹的输出呢?

And*_*PKI 5

获取 MpPreference | 选择对象-展开属性排除路径

-ExpandProperty将 ExclusionPath 集合分解为单独的行,每个排除路径位于一个新行上。

Out-String -Width 或者Format-Table -Width在项目数量太多的情况下没有足够的帮助,Powershell 只是不会显示超过$FormatEnumerationLimit项目价值的内容。所以你也可以将其设置为更高的值

$FormatEnumerationLimit=12
Run Code Online (Sandbox Code Playgroud)

但是,如果有超过 12 个项目会发生什么(您可以将数量增加到 1500...输出仍然很难看)