powershell输出结果从脚本到日志文件

时间:2013-09-30 20:49:34

标签: powershell powershell-v2.0 powershell-v3.0

我有一个简单的Powershell代码,如果服务器启动,它会ping服务器,然后禁用本地管理员帐户。如何将结果输出到日志文件,以便记录我已禁用的内容。

这是我到目前为止所拥有的

$computers = Get-ADComputer -filter {OperatingSystem -like "Windows Server*"} | 
ForEach ($computer in $computers) {     
   $rtn = Test-Connection -CN $computer -Count 1 -BufferSize 16 -Quiet    
  IF($rtn -match 'True') {
    write-host -ForegroundColor green $computer | Disable-localUserAccount -ComputerName $computer -username Administrator
  } ELSE {
      Write-host -ForegroundColor red $computer
  }     
}

1 个答案:

答案 0 :(得分:7)

Write-Host直接写入控制台。该输出无法重定向到文件。如果要将输出重定向到文件,请将其替换为Write-Output并删除花哨的颜色。此外,我将计算机列表导入ForEach-Object循环,因此您可以直接将输出写入文件。并且Test-Connection返回一个布尔值,因此您可以直接在条件中使用它:

$computers | % {
  if (Test-Connection -CN $_ -Count 1 -BufferSize 16 -Quiet) {
    Write-Output "$_ online"
    Disable-localUserAccount -ComputerName $_ -username Administrator
  } else {
    Write-Output "$_ offline"
  }     
} | Out-File 'C:\path\to\your.log'
相关问题