{"id":3168,"date":"2020-08-07T23:15:24","date_gmt":"2020-08-07T21:15:24","guid":{"rendered":"https:\/\/www.mariotti.de\/?p=3168"},"modified":"2020-08-07T23:15:24","modified_gmt":"2020-08-07T21:15:24","slug":"powershell-retry-command-cmdlet-zum-wiederholen-von-befehlen-oder-skriptbloecken-im-fehlerfall","status":"publish","type":"post","link":"https:\/\/dev.mariotti.de\/?p=3168","title":{"rendered":"PowerShell Retry-Command Cmdlet zum Wiederholen von Befehlen oder Skriptbl\u00f6cken im Fehlerfall"},"content":{"rendered":"<p>N\u00fctzliches PowerShell Retry-Command Cmdlet welches PowerShell Befehle oder Skriptbl\u00f6cken im Fehlerfall solange wiederholt bis wie erfolgreich ausgef\u00fchrt wurden incl. optionalem Parameter f\u00fcr eine Verz\u00f6gerung und Anzahl der maximalen Wiederholungen.<\/p>\n<pre><code class=\"language-powershell\">function Retry-Command {\n    [CmdletBinding()]\n    Param(\n        [Parameter(Position=0, Mandatory=$true)]\n        [scriptblock]$ScriptBlock,\n        [Parameter(Position=1, Mandatory=$false)]\n        [int]$Maximum = 5,\n        [Parameter(Position=2, Mandatory=$false)]\n        [int]$Delay = 100\n    )\n    Begin {\n        $Counter = 0\n    }\n    Process {\n        do {\n            $Counter++\n            try {\n                $ScriptBlock.Invoke()\n                return\n            } catch {\n                Write-Error $_.Exception.InnerException.Message -ErrorAction Continue\n                Start-Sleep -Milliseconds $Delay\n            }\n        } while ($Counter -lt $Maximum)\n        throw 'Execution failed!'\n    }\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>N\u00fctzliches PowerShell Retry-Command Cmdlet welches PowerShell Befehle oder Skriptbl\u00f6cke im Fehlerfall solange wiederholt bis wie erfolgreich ausgef\u00fchrt wurden incl. optionalem Parameter f\u00fcr eine Verz\u00f6gerung und Anzahl der maximalen Wiederholungen.<\/p>\n","protected":false},"author":2,"featured_media":2425,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[37],"tags":[],"class_list":["post-3168","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-powershell"],"_links":{"self":[{"href":"https:\/\/dev.mariotti.de\/index.php?rest_route=\/wp\/v2\/posts\/3168","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dev.mariotti.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dev.mariotti.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dev.mariotti.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/dev.mariotti.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3168"}],"version-history":[{"count":0,"href":"https:\/\/dev.mariotti.de\/index.php?rest_route=\/wp\/v2\/posts\/3168\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dev.mariotti.de\/index.php?rest_route=\/wp\/v2\/media\/2425"}],"wp:attachment":[{"href":"https:\/\/dev.mariotti.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3168"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dev.mariotti.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3168"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dev.mariotti.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3168"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}