我想编写一个 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