{"id":84,"date":"2015-02-28T11:23:36","date_gmt":"2015-02-28T03:23:36","guid":{"rendered":"http:\/\/kylemcdonald.com.au\/?p=84"},"modified":"2018-08-14T00:36:47","modified_gmt":"2018-08-13T16:36:47","slug":"powershell-script-to-alert-when-someone-rdps-to-a-server","status":"publish","type":"post","link":"https:\/\/kylemcdonald.com.au\/2015\/02\/28\/powershell-script-to-alert-when-someone-rdps-to-a-server\/","title":{"rendered":"Powershell script to alert when someone RDP’s to a server"},"content":{"rendered":"

I’ve had a few issues with contractors logging directly into server, rather than using remote management tools. This script requires a scheduled tasks with a number of event triggers depending on what you want to alert on. I’m not too fussed when they log off or disconnect, but I do care seeing when they login or reconnect.<\/p>\n

<\/p>\n

<#\r\n.Name\r\n   RDP_Connected.ps1\r\n.DESCRIPTION\r\n   Powershell script that sends an email when someone RDP's to a Win2012 server.\r\n.PARAMETERS\r\n   None.\r\n.Version\r\n   0.1\r\n.Author\r\n   Kyle McDonald\r\n.Compatibility\r\n   Windows 2008 R2 and higher\r\n.Release Date\r\n   July 2015\r\n.NOTES\r\n   Create a scheduled task based on the following two triggers;\r\n   - Trigger 1: When a specific event is logged\r\n   --- Log: Microsoft-Windows-TerminalServices-LocalSessionManager\/Operational\r\n   --- Source: TerminalServices-LocalSessionManager\r\n   --- Event ID: 21\r\n   - Trigger 2: When a specific event is logged\r\n   --- Log: Microsoft-Windows-TerminalServices-LocalSessionManager\/Operational\r\n   --- Source: TerminalServices-LocalSessionManager\r\n   --- Event ID: 25\r\n \r\n   Event IDs Descriptions;\r\n   - ID 21: Session logon succeeded\r\n   - ID 23: Session logoff succeeded\r\n   - ID 24: Session has been disconnected\r\n   - ID 25: Session reconnection succeeded\r\n#>\r\n \r\n# Get hostname\r\n$hostname = $env:computername\r\n$DomainName = $env:userdnsdomain\r\n \r\n# Get all logon\/logoff events\r\n# $rdp_message = Get-WinEvent -logname \"Microsoft-Windows-TerminalServices-LocalSessionManager\/Operational\" | where {($_.Id -eq \"21\" -OR $_.Id -eq \"24\" -OR $_.Id -eq \"25\"  -OR $_.Id -eq \"23\")} | select -first 1 | ft TimeCreated,Message -auto -wrap | Out-String\r\n \r\n# Get only logon and reconnections\r\n$rdp_message = Get-WinEvent -logname \"Microsoft-Windows-TerminalServices-LocalSessionManager\/Operational\" | where {($_.Id -eq \"21\" -OR $_.Id -eq \"25\")} | select -first 1 | ft TimeCreated,Message -auto -wrap | Out-String\r\n \r\n# Configure email.\r\n$SMTPserver = \"mail.contoso.com\"\r\n$From = \"$hostname@$DomainName\"\r\n$To = \"user@contoso.com\"\r\n$Subject = \"Someone RDPd into $hostname!\"\r\n$body = $rdp_message\r\n \r\n$message = new-object Net.Mail.MailMessage($from,$to,$subject,$body)\r\n$message.IsBodyHtml = $True\r\n \r\n$smtp = new-object Net.Mail.SmtpClient($smtpserver)\r\n$smtp.Send($message)\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"

I’ve had a few issues with contractors logging directly into server, rather than using remote management tools. This script requires a scheduled tasks with a number of event triggers depending on what you want to alert on. I’m not too Continue reading Powershell script to alert when someone RDP’s to a server<\/span>→<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[30],"tags":[],"yoast_head":"\nPowershell script to alert when someone RDP's to a server - Kyle McDonald<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kylemcdonald.com.au\/2015\/02\/28\/powershell-script-to-alert-when-someone-rdps-to-a-server\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Powershell script to alert when someone RDP's to a server - Kyle McDonald\" \/>\n<meta property=\"og:description\" content=\"I’ve had a few issues with contractors logging directly into server, rather than using remote management tools. This script requires a scheduled tasks with a number of event triggers depending on what you want to alert on. I’m not too Continue reading Powershell script to alert when someone RDP’s to a server→\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kylemcdonald.com.au\/2015\/02\/28\/powershell-script-to-alert-when-someone-rdps-to-a-server\/\" \/>\n<meta property=\"og:site_name\" content=\"Kyle McDonald\" \/>\n<meta property=\"article:published_time\" content=\"2015-02-28T03:23:36+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-08-13T16:36:47+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary\" \/>\n<meta name=\"twitter:creator\" content=\"@KarmicIT\" \/>\n<meta name=\"twitter:site\" content=\"@KarmicIT\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kylemcdonald.com.au\/#website\",\"url\":\"https:\/\/kylemcdonald.com.au\/\",\"name\":\"Kyle McDonald\",\"description\":\"Perth-based IT enthusiast\",\"publisher\":{\"@id\":\"https:\/\/kylemcdonald.com.au\/#\/schema\/person\/f3fe27d0e0f57ef43e2444fbe8989906\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/kylemcdonald.com.au\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-AU\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kylemcdonald.com.au\/2015\/02\/28\/powershell-script-to-alert-when-someone-rdps-to-a-server\/#webpage\",\"url\":\"https:\/\/kylemcdonald.com.au\/2015\/02\/28\/powershell-script-to-alert-when-someone-rdps-to-a-server\/\",\"name\":\"Powershell script to alert when someone RDP's to a server - Kyle McDonald\",\"isPartOf\":{\"@id\":\"https:\/\/kylemcdonald.com.au\/#website\"},\"datePublished\":\"2015-02-28T03:23:36+00:00\",\"dateModified\":\"2018-08-13T16:36:47+00:00\",\"inLanguage\":\"en-AU\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kylemcdonald.com.au\/2015\/02\/28\/powershell-script-to-alert-when-someone-rdps-to-a-server\/\"]}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/kylemcdonald.com.au\/2015\/02\/28\/powershell-script-to-alert-when-someone-rdps-to-a-server\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kylemcdonald.com.au\/2015\/02\/28\/powershell-script-to-alert-when-someone-rdps-to-a-server\/#webpage\"},\"author\":{\"@id\":\"https:\/\/kylemcdonald.com.au\/#\/schema\/person\/f3fe27d0e0f57ef43e2444fbe8989906\"},\"headline\":\"Powershell script to alert when someone RDP’s to a server\",\"datePublished\":\"2015-02-28T03:23:36+00:00\",\"dateModified\":\"2018-08-13T16:36:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kylemcdonald.com.au\/2015\/02\/28\/powershell-script-to-alert-when-someone-rdps-to-a-server\/#webpage\"},\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kylemcdonald.com.au\/#\/schema\/person\/f3fe27d0e0f57ef43e2444fbe8989906\"},\"articleSection\":\"Scripting\",\"inLanguage\":\"en-AU\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kylemcdonald.com.au\/2015\/02\/28\/powershell-script-to-alert-when-someone-rdps-to-a-server\/#respond\"]}]},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/kylemcdonald.com.au\/#\/schema\/person\/f3fe27d0e0f57ef43e2444fbe8989906\",\"name\":\"Kyle McDonald\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/kylemcdonald.com.au\/#personlogo\",\"inLanguage\":\"en-AU\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/74b24af47c7a561be463563db3fa821c?s=96&d=mm&r=g\",\"caption\":\"Kyle McDonald\"},\"logo\":{\"@id\":\"https:\/\/kylemcdonald.com.au\/#personlogo\"},\"sameAs\":[\"http:\/\/au.linkedin.com\/in\/karmicit\",\"https:\/\/twitter.com\/KarmicIT\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/kylemcdonald.com.au\/wp-json\/wp\/v2\/posts\/84"}],"collection":[{"href":"https:\/\/kylemcdonald.com.au\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kylemcdonald.com.au\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kylemcdonald.com.au\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/kylemcdonald.com.au\/wp-json\/wp\/v2\/comments?post=84"}],"version-history":[{"count":4,"href":"https:\/\/kylemcdonald.com.au\/wp-json\/wp\/v2\/posts\/84\/revisions"}],"predecessor-version":[{"id":250,"href":"https:\/\/kylemcdonald.com.au\/wp-json\/wp\/v2\/posts\/84\/revisions\/250"}],"wp:attachment":[{"href":"https:\/\/kylemcdonald.com.au\/wp-json\/wp\/v2\/media?parent=84"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kylemcdonald.com.au\/wp-json\/wp\/v2\/categories?post=84"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kylemcdonald.com.au\/wp-json\/wp\/v2\/tags?post=84"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}