2

我有一个简单的 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
  }     
}
4

1 回答 1

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'
于 2013-09-30T22:00:39.497 回答