2

サーバーが稼働している場合にサーバーにpingを送信し、ローカル管理者アカウントを無効にする単純なPowershellコードがあります。無効にした内容を記録できるように、結果をログ ファイルに出力するにはどうすればよいですか。

これは私がこれまでに持っているものです

$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ループにパイプして、出力をファイルに直接書き込むことができるようにします。AndTest-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 に答える