执行脚本为system

时间:2016-02-03 10:39:36

标签: powershell formatting format system

我试图将一些内容输出到日志文件中。这在执行我自己时非常正常,但是当使用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下按预期工作?

1 个答案:

答案 0 :(得分:1)

您应该对10 cmdlet使用-Width参数。

Out-File
  

指定每行输出中的字符数。任何其他字符都会被截断,而不会被包装。如果省略此参数,则宽度由主机的特征决定。 Windows PowerShell控制台的默认值为80(字符)。

由于您从其他帐户(Get-Help Out-File -Parameter Width )运行PowerShell,您可能从未配置过不同的默认控制台宽度,SYSTEM使用默认宽度为80个字符并截断您的输出。

但是,如果除了向用户显示数据之外还需要任何其他处理,那么您应该真正阅读@Matt comment并使用Out-FileExport-Csv cmdlet。

相关问题