我试图将一些内容输出到日志文件中。这在执行我自己时非常正常,但是当使用SYSTEM(例如使用计划任务)启动脚本时,格式表似乎无法正常工作并且不再显示完整的表。例如:
Get-WUServiceManager | Format-table -autosize | Out-File C:\Nagios\NAF\NAF_Logs\NAF_WSUS_Test.log -Append
执行自己时会输出:
ServiceID IsManaged IsDefault Name
--------- --------- --------- ----
3da21691-e39d-4da6-8a4b-b43877bcb1b7 True True Windows Server Update Service
9482f4b4-e343-43b6-b170-9a65bc822c77 False False Windows Update
但是当脚本包含:
Get-WUServiceManager | Format-table -autosize | Out-File C:\Nagios\NAF\NAF_Logs\NAF_WSUS_Test.log -Append
使用SYSTEM帐户执行我得到此输出:
ServiceID IsManaged IsDefault Name
--------- --------- --------- ----
3da21691-e39d-4da6-8a4b-b43877bcb1b7 True True Windows Server Upda...
9482f4b4-e343-43b6-b170-9a65bc822c77 False False Windows Update
正如您所看到的,我得到了这个" Windows Server Upd ..."如何在SYSTEM下按预期工作?
答案 0 :(得分:1)
您应该对10
cmdlet使用-Width
参数。
Out-File
指定每行输出中的字符数。任何其他字符都会被截断,而不会被包装。如果省略此参数,则宽度由主机的特征决定。 Windows PowerShell控制台的默认值为80(字符)。
由于您从其他帐户(Get-Help Out-File -Parameter Width
)运行PowerShell,您可能从未配置过不同的默认控制台宽度,SYSTEM
使用默认宽度为80个字符并截断您的输出。
但是,如果除了向用户显示数据之外还需要任何其他处理,那么您应该真正阅读@Matt comment并使用Out-File
或Export-Csv
cmdlet。