{"id":240,"date":"2019-12-17T14:34:00","date_gmt":"2019-12-17T14:34:00","guid":{"rendered":"http:\/\/www.everydayvirtualization.com\/?p=240"},"modified":"2019-12-17T14:34:00","modified_gmt":"2019-12-17T14:34:00","slug":"solarwinds-disable-alerting-while-patching-powershell","status":"publish","type":"post","link":"http:\/\/www.everydayvirtualization.com\/?p=240","title":{"rendered":"Disable Solarwinds Alerting With PowerShell"},"content":{"rendered":"\n<p>A customer is currently using solarwinds to monitor there virtual infastructure, when they do there patching they need to login to the solarwinds console, and manually step though each of the virtual machines\/objects they are going to patch and put them into maintenance mode so the on-call guy doesnt get flooded with alerts.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>To help matters and save a bit of time i used the below piece of powershell scripting to take away that manual task and only require a text file with a list of the servers to be modified (this is assuming you have the swisPowershell installed:<\/p>\n\n\n<div class=\"codecolorer-container powershell blackboard\" style=\"overflow:auto;white-space:nowrap;width:650px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/><\/div><\/td><td><div class=\"powershell codecolorer\">Install<span class=\"sy0\">-<\/span>Module <span class=\"kw5\">-Name<\/span> SwisPowerShell<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n\n\n\n<p>swmaintme.ps1<\/p>\n\n\n<div class=\"codecolorer-container powershell blackboard\" style=\"overflow:auto;white-space:nowrap;width:650px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/><\/div><\/td><td><div class=\"powershell codecolorer\"><span class=\"co1\"># Check if the powershell module that is used is actually loaded and if not load it up<\/span><br \/>\nImport<span class=\"sy0\">-<\/span>Module SwisPowerShell &nbsp;<br \/>\n<span class=\"co1\"># Hours passed when running script e.g (.\/swmaintme.ps1 12) will set maintance for 12 hours<\/span><br \/>\n<span class=\"re0\">$hours<\/span><span class=\"sy0\">=<\/span><a href=\"about:blank\"><span class=\"kw6\">$args<\/span><\/a><span class=\"br0\">&#91;<\/span><span class=\"nu0\">0<\/span><span class=\"br0\">&#93;<\/span><br \/>\n<span class=\"co1\"># Where is the server file located (file is a text file with just server names not FQDN)<\/span><br \/>\n<span class=\"re0\">$serverlist<\/span> <span class=\"sy0\">=<\/span> <span class=\"kw1\">Get-Content<\/span> <span class=\"kw5\">-Path<\/span> <span class=\"st0\">&quot;'path to imput text file'\\unmanageme.txt&quot;<\/span> <br \/>\n<span class=\"co1\"># What is the solarwinds server (can only be ran from here as port 17777 is not open remotely :( ) &nbsp;<\/span><br \/>\n<span class=\"re0\">$strsolarWindServer<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;Solarwinds Server name Here&quot;<\/span> &nbsp;<br \/>\n<span class=\"co1\"># Lets connected to the server listed above nice and trusted <\/span><br \/>\n<span class=\"re0\">$swis<\/span> <span class=\"sy0\">=<\/span> Connect<span class=\"sy0\">-<\/span>Swis <span class=\"sy0\">-<\/span>Hostname <span class=\"re0\">$strsolarWindServer<\/span> <span class=\"sy0\">-<\/span>Trusted <br \/>\n<span class=\"co1\"># For each time you look at a line in the text file above do this &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; <\/span><br \/>\n<span class=\"kw3\">foreach<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$server<\/span> <span class=\"kw3\">in<\/span> <span class=\"re0\">$serverlist<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span> &nbsp;<br \/>\n&nbsp; <br \/>\n&nbsp; &nbsp; <span class=\"re0\">$strQuery<\/span> <span class=\"sy0\">=<\/span> <span class=\"st0\">&quot;SELECT uri FROM Orion.Nodes WHERE SysName LIKE '&quot;<\/span> <span class=\"sy0\">+<\/span> <span class=\"st0\">&quot;$server&quot;<\/span> <span class=\"sy0\">+<\/span> <span class=\"st0\">&quot;%'&quot;<\/span> &nbsp;<br \/>\n&nbsp; &nbsp; <span class=\"re0\">$uris<\/span> <span class=\"sy0\">=<\/span> Get<span class=\"sy0\">-<\/span>SwisData <span class=\"re0\">$swis<\/span> <span class=\"re0\">$strQuery<\/span><br \/>\n<span class=\"co1\"># &nbsp; Important line where we actually set the server to unmanaged and status 9 and then set it to maintance from when script was run to the hours we said at start &nbsp; <\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">$uris<\/span> <span class=\"sy0\">|<\/span> <span class=\"kw1\">ForEach-Object<\/span> <span class=\"br0\">&#123;<\/span> Set<span class=\"sy0\">-<\/span>SwisObject <span class=\"re0\">$swis<\/span> <a href=\"about:blank\"><span class=\"kw6\">$_<\/span><\/a> <span class=\"sy0\">@<\/span><span class=\"br0\">&#123;<\/span>Status<span class=\"sy0\">=<\/span><span class=\"nu0\">9<\/span>;Unmanaged<span class=\"sy0\">=<\/span><span class=\"re0\">$true<\/span>;UnmanageFrom<span class=\"sy0\">=<\/span><span class=\"br0\">&#91;<\/span>DateTime<span class=\"br0\">&#93;<\/span>::UtcNow;UnmanageUntil<span class=\"sy0\">=<\/span><span class=\"br0\">&#91;<\/span>DateTime<span class=\"br0\">&#93;<\/span>::UtcNow.AddHours<span class=\"br0\">&#40;<\/span><span class=\"re0\">$hours<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#125;<\/span><span class=\"br0\">&#125;<\/span> &nbsp; <br \/>\n<span class=\"br0\">&#125;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n\n\n\n<p>Once you maintenance is finished and i the following script will take the same input file and put them back into monitoring mode, unless of course you wish to wait till your maintenance period you specified in the first script ends.<\/p>\n\n\n\n<p>swunmaintme.ps1<\/p>\n\n\n<div class=\"codecolorer-container powershell blackboard\" style=\"overflow:auto;white-space:nowrap;width:650px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/><\/div><\/td><td><div class=\"powershell codecolorer\">Import<span class=\"sy0\">-<\/span>Module SwisPowerShell &nbsp;<br \/>\n<span class=\"re0\">$serverlist<\/span> <span class=\"sy0\">=<\/span> <span class=\"kw1\">Get-Content<\/span> <span class=\"kw5\">-Path<\/span> <span class=\"st0\">&quot;'path to imput text file'&quot;<\/span>\\unmanageme.txt<span class=\"st0\">&quot; <br \/>\n$strsolarWindServer=&quot;<\/span>Solarwinds Server name Here<span class=\"st0\">&quot; &nbsp;<br \/>\n$swis = Connect-Swis -Hostname $strsolarWindServer -Trusted <br \/>\n<br \/>\nforeach($server in $serverlist){ &nbsp;<br \/>\n&nbsp; &nbsp; $strQuery = &quot;<\/span><span class=\"kw2\">SELECT<\/span> uri FROM Orion.Nodes <span class=\"kw3\">WHERE<\/span> SysName LIKE <span class=\"st0\">'&quot; + &quot;$server&quot; + &quot;%'<\/span><span class=\"st0\">&quot; &nbsp;<br \/>\n&nbsp; &nbsp; $uris = Get-SwisData $swis $strQuery<br \/>\n&nbsp; &nbsp; $uris | ForEach-Object { Set-SwisObject $swis $_ @{Status=1;Unmanaged=$false}} &nbsp; <br \/>\n}<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n","protected":false},"excerpt":{"rendered":"<p>A customer is currently using solarwinds to monitor there virtual infastructure, when they do there patching they need to login to the solarwinds console, and manually step though each of the virtual machines\/objects they are going to patch and put them into maintenance mode so the on-call guy doesnt get flooded with alerts. To help [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[],"class_list":["post-240","post","type-post","status-publish","format-standard","hentry","category-powershell","post-preview"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Disable Solarwinds Alerting With PowerShell - EveryDay Virtualization<\/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:\/\/www.everydayvirtualization.com\/?p=240\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Disable Solarwinds Alerting With PowerShell - EveryDay Virtualization\" \/>\n<meta property=\"og:description\" content=\"A customer is currently using solarwinds to monitor there virtual infastructure, when they do there patching they need to login to the solarwinds console, and manually step though each of the virtual machines\/objects they are going to patch and put them into maintenance mode so the on-call guy doesnt get flooded with alerts. To help [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.everydayvirtualization.com\/?p=240\" \/>\n<meta property=\"og:site_name\" content=\"EveryDay Virtualization\" \/>\n<meta property=\"article:published_time\" content=\"2019-12-17T14:34:00+00:00\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.everydayvirtualization.com\/?p=240#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.everydayvirtualization.com\/?p=240\"},\"author\":{\"name\":\"admin\",\"@id\":\"http:\/\/www.everydayvirtualization.com\/#\/schema\/person\/f30ae42a92960546534bbaa4feece761\"},\"headline\":\"Disable Solarwinds Alerting With PowerShell\",\"datePublished\":\"2019-12-17T14:34:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.everydayvirtualization.com\/?p=240\"},\"wordCount\":412,\"commentCount\":3,\"articleSection\":[\"Powershell\"],\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.everydayvirtualization.com\/?p=240#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.everydayvirtualization.com\/?p=240\",\"url\":\"https:\/\/www.everydayvirtualization.com\/?p=240\",\"name\":\"Disable Solarwinds Alerting With PowerShell - EveryDay Virtualization\",\"isPartOf\":{\"@id\":\"http:\/\/www.everydayvirtualization.com\/#website\"},\"datePublished\":\"2019-12-17T14:34:00+00:00\",\"author\":{\"@id\":\"http:\/\/www.everydayvirtualization.com\/#\/schema\/person\/f30ae42a92960546534bbaa4feece761\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.everydayvirtualization.com\/?p=240#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.everydayvirtualization.com\/?p=240\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.everydayvirtualization.com\/?p=240#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/www.everydayvirtualization.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Disable Solarwinds Alerting With PowerShell\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/www.everydayvirtualization.com\/#website\",\"url\":\"http:\/\/www.everydayvirtualization.com\/\",\"name\":\"EveryDay Virtualization\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/www.everydayvirtualization.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Person\",\"@id\":\"http:\/\/www.everydayvirtualization.com\/#\/schema\/person\/f30ae42a92960546534bbaa4feece761\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"http:\/\/www.everydayvirtualization.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a74afa642d60ba0bdee214f249820b1407f76a42d0671c7c28aa03329e6dfdc0?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a74afa642d60ba0bdee214f249820b1407f76a42d0671c7c28aa03329e6dfdc0?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"http:\/\/www.everydayvirtualization.com\"],\"url\":\"http:\/\/www.everydayvirtualization.com\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Disable Solarwinds Alerting With PowerShell - EveryDay Virtualization","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.everydayvirtualization.com\/?p=240","og_locale":"en_GB","og_type":"article","og_title":"Disable Solarwinds Alerting With PowerShell - EveryDay Virtualization","og_description":"A customer is currently using solarwinds to monitor there virtual infastructure, when they do there patching they need to login to the solarwinds console, and manually step though each of the virtual machines\/objects they are going to patch and put them into maintenance mode so the on-call guy doesnt get flooded with alerts. To help [&hellip;]","og_url":"https:\/\/www.everydayvirtualization.com\/?p=240","og_site_name":"EveryDay Virtualization","article_published_time":"2019-12-17T14:34:00+00:00","author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Estimated reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.everydayvirtualization.com\/?p=240#article","isPartOf":{"@id":"https:\/\/www.everydayvirtualization.com\/?p=240"},"author":{"name":"admin","@id":"http:\/\/www.everydayvirtualization.com\/#\/schema\/person\/f30ae42a92960546534bbaa4feece761"},"headline":"Disable Solarwinds Alerting With PowerShell","datePublished":"2019-12-17T14:34:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.everydayvirtualization.com\/?p=240"},"wordCount":412,"commentCount":3,"articleSection":["Powershell"],"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.everydayvirtualization.com\/?p=240#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.everydayvirtualization.com\/?p=240","url":"https:\/\/www.everydayvirtualization.com\/?p=240","name":"Disable Solarwinds Alerting With PowerShell - EveryDay Virtualization","isPartOf":{"@id":"http:\/\/www.everydayvirtualization.com\/#website"},"datePublished":"2019-12-17T14:34:00+00:00","author":{"@id":"http:\/\/www.everydayvirtualization.com\/#\/schema\/person\/f30ae42a92960546534bbaa4feece761"},"breadcrumb":{"@id":"https:\/\/www.everydayvirtualization.com\/?p=240#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.everydayvirtualization.com\/?p=240"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.everydayvirtualization.com\/?p=240#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/www.everydayvirtualization.com\/"},{"@type":"ListItem","position":2,"name":"Disable Solarwinds Alerting With PowerShell"}]},{"@type":"WebSite","@id":"http:\/\/www.everydayvirtualization.com\/#website","url":"http:\/\/www.everydayvirtualization.com\/","name":"EveryDay Virtualization","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/www.everydayvirtualization.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Person","@id":"http:\/\/www.everydayvirtualization.com\/#\/schema\/person\/f30ae42a92960546534bbaa4feece761","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"http:\/\/www.everydayvirtualization.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/a74afa642d60ba0bdee214f249820b1407f76a42d0671c7c28aa03329e6dfdc0?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a74afa642d60ba0bdee214f249820b1407f76a42d0671c7c28aa03329e6dfdc0?s=96&d=mm&r=g","caption":"admin"},"sameAs":["http:\/\/www.everydayvirtualization.com"],"url":"http:\/\/www.everydayvirtualization.com\/?author=1"}]}},"_links":{"self":[{"href":"http:\/\/www.everydayvirtualization.com\/index.php?rest_route=\/wp\/v2\/posts\/240","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.everydayvirtualization.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.everydayvirtualization.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.everydayvirtualization.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.everydayvirtualization.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=240"}],"version-history":[{"count":0,"href":"http:\/\/www.everydayvirtualization.com\/index.php?rest_route=\/wp\/v2\/posts\/240\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.everydayvirtualization.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=240"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.everydayvirtualization.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=240"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.everydayvirtualization.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=240"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}