Home > Windows にまつわる e.t.c.

PowerShell で syslog を送信する


PowerShell で syslog server へ syslog を送る関数作りました。

.NET Framework で UDP/514 のパケット送信する実装です。

########################################################
# Syslog を送信する
########################################################
function SendSyslog( $SyslogServer, $SyslogMessage){
    # UDP port
    $Port = 514

    # アセンブリがロードされていなかったらロードする
    $Lib = "System.Net"
    $AssembliesName = [Appdomain]::CurrentDomain.GetAssemblies() | % {$_.GetName().Name}
    if( -not ($AssembliesName -contains $Lib)){
        [void][System.Reflection.Assembly]::LoadWithPartialName($Lib)
    }

    # 送信データを作る
    $ByteData = [System.Text.Encoding]::UTF8.GetBytes($SyslogMessage)

    # UDP ソケット作る
    $UDPSocket = $null
    $UDPSocket = New-Object System.Net.Sockets.UdpClient($SyslogServer, $Port)

    if( $UDPSocket -ne $null ){
        # 送信
        [void]$UDPSocket.Send($ByteData, $ByteData.Length)

        # ソケット Close
        $UDPSocket.Close()
    }
}

 

back.gif (1980 バイト)

home.gif (1907 バイト)

Copyright © MURA All rights reserved.