명령줄 응용 프로그램을 실행하여 결과를 이메일로 보내기

6749 단어 WindowsPowerShell

TL;DR


  • PowerShell에서 명령 줄 응용 프로그램을 실행하고 결과를 이메일로 보내는 방법을 설명합니다.

  • 환경


  • Microsoft Windows Server 2016 Standard (10.0.14393 N/A 빌드 14393)
  • PowerShell (PSVersion 5.1.14393.3471)

  • 내용



    출처



    다음은 tasklist 를 사용하여 메모리 사용량을 메일로 보내는 예입니다.
    메모리 누수가 발생하여 서버가 정지하는 경우 등에 원인을 조사할 때 등에 사용한다.

    runcommandandsend.ps1
    function ExecCmd([string]$strCmd)
    {
      $p = [System.Diagnostics.Process];
      $pi = [System.Diagnostics.ProcessStartInfo];
      $output = [string];
    
      $pi = New-Object System.Diagnostics.ProcessStartInfo;
    
      $pi.FileName = [System.Environment]::GetEnvironmentVariable("ComSpec");
      $pi.Arguments = "/c " + $strCmd;
      $pi.UseShellExecute = $false;
      $pi.RedirectStandardOutput = $true;
    
      #コマンドを実行し標準出力の内容を取得する
      $p = [System.Diagnostics.Process]::Start($pi);
      $output = $p.StandardOutput.ReadToEnd();
      $p.WaitForExit();
    
      return $output;
    }
    
    $output = [string[]];
    
    $output = ExecCmd("tasklist");
    
    Send-MailMessage -To "[email protected]" -From "[email protected]" -Subject "実行結果" -Body $output -SmtpServer example.com -Encoding ([System.Text.Encoding]::UTF8)
    

    참고 : htp : // bg. 아오오오 r. jp / 헨타이가 / 아 r ゔ ぇ s / 51615192. HTML

    작업 스케줄러의 등록 예



    프로그램에 powershell , 인수 추가에 ps1 파일의 전체 경로를 지정합니다.
    실행하기 전에 PowerShell 스크립트 실행 권한



    참고



    htp : // bg. 아오오오 r. jp / 헨타이가 / 아 r ゔ ぇ s / 51615192. HTML
    htps : // 코 m / 아라 짱 @ b / / ms / 93c2 fu c8 fu 5f7f66b fu
    htps : // 이 m / n 후지타 55 A / MS / 73 A 1fc870Cb85df2
    htps : // 코 m / 타르 치치 / ms / 3d2 0b5b0b7b04963750

    좋은 웹페이지 즐겨찾기