{"id":395052,"date":"2024-12-18T12:55:09","date_gmt":"2024-12-18T12:55:09","guid":{"rendered":"https:\/\/www.ninjaone.com\/?post_type=script_hub&#038;p=395052"},"modified":"2024-12-18T12:55:09","modified_gmt":"2024-12-18T12:55:09","slug":"abrufen-vom-status-der-systemwiederherstellung","status":"publish","type":"script_hub","link":"https:\/\/www.ninjaone.com\/de\/script-hub\/abrufen-vom-status-der-systemwiederherstellung\/","title":{"rendered":"Wie IT-Expert:innen den Status der Systemwiederherstellung mit PowerShell abrufen"},"content":{"rendered":"<p><span data-sheets-root=\"1\" data-sheets-value=\"{&quot;1&quot;:2,&quot;2&quot;:&quot;Get system restore status powershell&quot;}\" data-sheets-userformat=\"{&quot;2&quot;:769,&quot;3&quot;:{&quot;1&quot;:0},&quot;11&quot;:4,&quot;12&quot;:0}\">M\u00f6chten Sie erfahren, wie Sie <strong>das Abrufen vom Status der Systemwiederherstellung mit PowerShell automatisieren<\/strong>\u00a0k\u00f6nnen? <\/span>Die Systemwiederherstellung ist eine wichtige Funktion in Windows-Betriebssystemen, die Benutzer:innen ein Sicherheitsnetz bietet, indem sie es ihnen erm\u00f6glicht, ihr System im Falle von Fehlfunktionen oder unerw\u00fcnschten \u00c4nderungen auf einen fr\u00fcheren Zustand zur\u00fcckzusetzen.<\/p>\n<p>F\u00fcr IT-Expert:innen und <a href=\"https:\/\/www.ninjaone.com\/de\/was-ist-ein-msp\" target=\"_blank\" rel=\"noopener\">Managed Service Provider (MSPs)<\/a> ist die \u00dcberwachung des Status der Systemwiederherstellung \u00fcber mehrere Ger\u00e4te hinweg f\u00fcr die Aufrechterhaltung des Systemzustands und der -zuverl\u00e4ssigkeit unerl\u00e4sslich. Das mitgelieferte <a href=\"https:\/\/www.ninjaone.com\/de\/it-hub\/endpoint-management\/was-ist-powershell\/\" target=\"_blank\" rel=\"noopener\">PowerShell-Skript<\/a> ist ein leistungsf\u00e4higes Tool, mit dem der Status der Systemwiederherstellung auf einem Ger\u00e4t \u00fcberpr\u00fcft und das Ergebnis optional in einem benutzerdefinierten Feld gespeichert werden kann.<\/p>\n<h2>Kontext<\/h2>\n<p>In einer Umgebung, in der die Systemstabilit\u00e4t von gr\u00f6\u00dfter Bedeutung ist, bietet die Systemwiederherstellung einen wertvollen Dienst, da sie eine schnelle Wiederherstellung nach Systemfehlern m\u00f6glich macht. IT-Expert:innen, insbesondere diejenigen, die zahlreiche Ger\u00e4te verwalten, sollten sicherstellen, dass die Systemwiederherstellung aktiviert ist, um <a href=\"https:\/\/www.ninjaone.com\/it-hub\/it-service-management\/what-is-network-downtime\/\" target=\"_blank\" rel=\"noopener\">erhebliche Ausfallzeiten<\/a> und <a href=\"https:\/\/www.ninjaone.com\/de\/backup\/backup-von-dateien-und-ordnern\/\" target=\"_blank\" rel=\"noopener\">Datenverluste<\/a> zu vermeiden.<\/p>\n<p>Dieses Skript vereinfacht die \u00dcberpr\u00fcfung vom Status der Systemwiederherstellung und l\u00e4sst sich nahtlos in NinjaOne, eine beliebte IT-Management-L\u00f6sung, integrieren, um den Status bei Bedarf in einem benutzerdefinierten Feld zu protokollieren.<\/p>\n<h2>Das Skript zum Abrufen vom Status der Systemwiederherstellung<\/h2>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\">#Requires -Version 5.1\r\n\r\n&lt;#\r\n.SYNOPSIS\r\n    Checks the status of System Restore on the device.\r\n.DESCRIPTION\r\n    Checks the status of System Restore on the device.\r\n    When a Custom Field is specified the results will be saved to the Custom Field as \"Enabled\" or \"Disabled\".\r\n\r\n.EXAMPLE\r\n    (No Parameters)\r\n    ## EXAMPLE OUTPUT WITHOUT PARAMS ##\r\n    [Info] System Restore is Disabled\r\n\r\nPARAMETER: -CustomFieldName \"SystemRestore\"\r\n    Saves the results to a custom field.\r\n.EXAMPLE\r\n    -CustomFieldName \"SystemRestore\"\r\n    ## EXAMPLE OUTPUT WITH CustomFieldName ##\r\n    [Info] Attempting to set Custom Field 'SystemRestore'.\r\n    [Info] Successfully set Custom Field 'SystemRestore'!\r\n    [Info] System Restore is Enabled\r\n\r\n.NOTES\r\n    Minimum OS Architecture Supported: Windows 10, Windows Server 2016\r\n    Release Notes: Renamed Script\r\nBy using this script, you indicate your acceptance of the following legal terms as well as our Terms of Use at https:\/\/www.ninjaone.com\/terms-of-use.\r\n    Ownership Rights: NinjaOne owns and will continue to own all right, title, and interest in and to the script (including the copyright). NinjaOne is giving you a limited license to use the script in accordance with these legal terms. \r\n    Use Limitation: You may only use the script for your legitimate personal or internal business purposes, and you may not share the script with another party. \r\n    Republication Prohibition: Under no circumstances are you permitted to re-publish the script in any script library or website belonging to or under the control of any other software provider. \r\n    Warranty Disclaimer: The script is provided \u201cas is\u201d and \u201cas available\u201d, without warranty of any kind. NinjaOne makes no promise or guarantee that the script will be free from defects or that it will meet your specific needs or expectations. \r\n    Assumption of Risk: Your use of the script is at your own risk. You acknowledge that there are certain inherent risks in using the script, and you understand and assume each of those risks. \r\n    Waiver and Release: You will not hold NinjaOne responsible for any adverse or unintended consequences resulting from your use of the script, and you waive any legal or equitable rights or remedies you may have against NinjaOne relating to your use of the script. \r\n    EULA: If you are a NinjaOne customer, your use of the script is subject to the End User License Agreement applicable to you (EULA).\r\n#&gt;\r\n\r\n[CmdletBinding()]\r\nparam (\r\n    [Parameter()]\r\n    [String]$CustomFieldName\r\n)\r\n\r\nbegin {\r\n    function Set-NinjaProperty {\r\n        [CmdletBinding()]\r\n        Param(\r\n            [Parameter(Mandatory = $True)]\r\n            [String]$Name,\r\n            [Parameter()]\r\n            [String]$Type,\r\n            [Parameter(Mandatory = $True, ValueFromPipeline = $True)]\r\n            $Value,\r\n            [Parameter()]\r\n            [String]$DocumentName\r\n        )\r\n    \r\n        $Characters = $Value | Measure-Object -Character | Select-Object -ExpandProperty Characters\r\n        if ($Characters -ge 10000) {\r\n            throw [System.ArgumentOutOfRangeException]::New(\"Character limit exceeded, value is greater than 10,000 characters.\")\r\n        }\r\n        \r\n        # If we're requested to set the field value for a Ninja document we'll specify it here.\r\n        $DocumentationParams = @{}\r\n        if ($DocumentName) { $DocumentationParams[\"DocumentName\"] = $DocumentName }\r\n        \r\n        # This is a list of valid fields that can be set. If no type is given, it will be assumed that the input doesn't need to be changed.\r\n        $ValidFields = \"Attachment\", \"Checkbox\", \"Date\", \"Date or Date Time\", \"Decimal\", \"Dropdown\", \"Email\", \"Integer\", \"IP Address\", \"MultiLine\", \"MultiSelect\", \"Phone\", \"Secure\", \"Text\", \"Time\", \"URL\", \"WYSIWYG\"\r\n        if ($Type -and $ValidFields -notcontains $Type) { Write-Warning \"$Type is an invalid type! Please check here for valid types. https:\/\/ninjarmm.zendesk.com\/hc\/en-us\/articles\/16973443979789-Command-Line-Interface-CLI-Supported-Fields-and-Functionality\" }\r\n        \r\n        # The field below requires additional information to be set\r\n        $NeedsOptions = \"Dropdown\"\r\n        if ($DocumentName) {\r\n            if ($NeedsOptions -contains $Type) {\r\n                # We'll redirect the error output to the success stream to make it easier to error out if nothing was found or something else went wrong.\r\n                $NinjaPropertyOptions = Ninja-Property-Docs-Options -AttributeName $Name @DocumentationParams 2&gt;&amp;1\r\n            }\r\n        }\r\n        else {\r\n            if ($NeedsOptions -contains $Type) {\r\n                $NinjaPropertyOptions = Ninja-Property-Options -Name $Name 2&gt;&amp;1\r\n            }\r\n        }\r\n        \r\n        # If an error is received it will have an exception property, the function will exit with that error information.\r\n        if ($NinjaPropertyOptions.Exception) { throw $NinjaPropertyOptions }\r\n        \r\n        # The below types require values not typically given in order to be set. The below code will convert whatever we're given into a format ninjarmm-cli supports.\r\n        switch ($Type) {\r\n            \"Checkbox\" {\r\n                # While it's highly likely we were given a value like \"True\" or a boolean datatype it's better to be safe than sorry.\r\n                $NinjaValue = [System.Convert]::ToBoolean($Value)\r\n            }\r\n            \"Date or Date Time\" {\r\n                # Ninjarmm-cli expects the GUID of the option to be selected. Therefore, the given value will be matched with a GUID.\r\n                $Date = (Get-Date $Value).ToUniversalTime()\r\n                $TimeSpan = New-TimeSpan (Get-Date \"1970-01-01 00:00:00\") $Date\r\n                $NinjaValue = $TimeSpan.TotalSeconds\r\n            }\r\n            \"Dropdown\" {\r\n                # Ninjarmm-cli is expecting the guid of the option we're trying to select. So we'll match up the value we were given with a guid.\r\n                $Options = $NinjaPropertyOptions -replace '=', ',' | ConvertFrom-Csv -Header \"GUID\", \"Name\"\r\n                $Selection = $Options | Where-Object { $_.Name -eq $Value } | Select-Object -ExpandProperty GUID\r\n        \r\n                if (-not $Selection) {\r\n                    throw [System.ArgumentOutOfRangeException]::New(\"Value is not present in dropdown\")\r\n                }\r\n        \r\n                $NinjaValue = $Selection\r\n            }\r\n            default {\r\n                # All the other types shouldn't require additional work on the input.\r\n                $NinjaValue = $Value\r\n            }\r\n        }\r\n        \r\n        # We'll need to set the field differently depending on if its a field in a Ninja Document or not.\r\n        if ($DocumentName) {\r\n            $CustomField = Ninja-Property-Docs-Set -AttributeName $Name -AttributeValue $NinjaValue @DocumentationParams 2&gt;&amp;1\r\n        }\r\n        else {\r\n            $CustomField = Ninja-Property-Set -Name $Name -Value $NinjaValue 2&gt;&amp;1\r\n        }\r\n        \r\n        if ($CustomField.Exception) {\r\n            throw $CustomField\r\n        }\r\n    }\r\n    if ($env:customFieldName -and $env:customFieldName -ne \"null\") {\r\n        $CustomFieldName = $env:customFieldName\r\n    }\r\n}\r\nprocess {\r\n    # If the registry value is 1, System Restore is enabled.\r\n    $RegValue = Get-ItemPropertyValue -Path \"HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\SystemRestore\\\" -Name \"RPSessionInterval\" -ErrorAction SilentlyContinue\r\n\r\n    $SystemRestoreStatus = if ($RegValue -ge 1) {\r\n        # If either of the above conditions are met, System Restore is enabled.\r\n        Write-Output \"Enabled\"\r\n    }\r\n    else {\r\n        Write-Output \"Disabled\"\r\n    }\r\n\r\n    # If a Custom Field Name is provided, set the Custom Field with the System Restore Status.\r\n    if ($CustomFieldName) {\r\n        try {\r\n            Write-Host \"[Info] Attempting to set Custom Field '$CustomFieldName'.\"\r\n            Set-NinjaProperty -Name $CustomFieldName -Value $SystemRestoreStatus\r\n            Write-Host \"[Info] Successfully set Custom Field '$CustomFieldName'!\"\r\n        }\r\n        catch {\r\n            Write-Host \"[Error] Failed to set Custom Field '$CustomFieldName'.\"\r\n        }\r\n    }\r\n    Write-Host \"[Info] System Restore is $SystemRestoreStatus\"\r\n}\r\nend {\r\n    \r\n    \r\n    \r\n}<\/pre>\n<p>&nbsp;<\/p>\n\n<div class=\"in-context-cta\"><p>Greifen Sie auf \u00fcber 300 Skripte im NinjaOne Dojo zu.<\/p>\n<p><a href=\"https:\/\/www.ninjaone.com\/de\/kostenlosetestversionformular\/\">Zugang erhalten<\/a><\/p>\n<\/div>\n<h2>Detailansicht<\/h2>\n<p>Sehen wir uns nun an, wie dieses PowerShell-Skript funktioniert.<\/p>\n<h3><em>Skript-Initialisierung<\/em><\/h3>\n<p>Das Skript beginnt mit einigen Metadaten in Form von Kommentaren, in denen der Zweck, Anwendungsbeispiele und unterst\u00fctzte Betriebssysteme beschrieben werden. Es unterst\u00fctzt Windows 10 sowie Windows Server 2016 und ist somit f\u00fcr moderne Umgebungen konzipiert.<\/p>\n<p>Diese Zeile gibt an, dass das Skript PowerShell Version 5.1 oder h\u00f6her ben\u00f6tigt.<\/p>\n<h3><em>Parameter<\/em><\/h3>\n<p>Das Skript definiert einen einzigen optionalen Parameter, CustomFieldName, mit dem Benutzer:innen einen benutzerdefinierten Feldnamen angeben k\u00f6nnen, in dem der Status gespeichert wird.<\/p>\n<h3><em>Hilfsfunktion: Set-NinjaProperty<\/em><\/h3>\n<p>Das Skript enth\u00e4lt eine Hilfsfunktion, Set-NinjaProperty, die f\u00fcr das Setzen des Wertes vom benutzerdefinierten Feld in NinjaOne verantwortlich ist. Diese Funktion verarbeitet verschiedene Datentypen und pr\u00fcft die Eingaben anhand vordefinierter Kriterien.<\/p>\n<h3><em>Hauptlogik<\/em><\/h3>\n<p>Das Skript \u00fcberpr\u00fcft dann die Registrierung, um festzustellen, ob die Systemwiederherstellung aktiviert ist. Er liest den Wert RPSessionInterval aus dem Registrierungsschl\u00fcssel HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\SystemRestore. Wenn der Wert gr\u00f6\u00dfer oder gleich 1 ist, gilt die Systemwiederherstellung als aktiviert.<\/p>\n<p>Wenn ein benutzerdefinierter Feldname angegeben wird, versucht das Skript, dieses Feld mit der Funktion Set-NinjaProperty auf den Systemwiederherstellungs-Status zu setzen.<\/p>\n<h2>Potenzielle Anwendungsf\u00e4lle<\/h2>\n<p>Stellen Sie sich vor, ein IT-Experte verwaltet eine Vielfalt von Windows-Ger\u00e4ten f\u00fcr ein mittelst\u00e4ndisches Unternehmen. Die Aktivierung der Systemwiederherstellung auf allen Ger\u00e4ten ist entscheidend f\u00fcr die schnelle Wiederherstellung bei m\u00f6glichen Problemen. Der Experte kann dieses Skript in Verbindung mit NinjaOne verwenden, um den Status der Systemwiederherstellung auf allen Ger\u00e4ten regelm\u00e4\u00dfig zu \u00fcberpr\u00fcfen und zu protokollieren. So kann er schnell handeln, wenn die Funktion auf einem Ger\u00e4t deaktiviert ist.<\/p>\n<h2>Vergleiche<\/h2>\n<p>Es gibt verschiedene Methoden, um den Status der Systemwiederherstellung zu \u00fcberpr\u00fcfen, zum Beispiel \u00fcber die grafische Benutzeroberfl\u00e4che oder verschiedene Befehlszeilen-Dienstprogramme. Dieses PowerShell-Skript bietet jedoch einen rationalisierten, automatisierten Ansatz, der in NinjaOne integriert ist und eine skalierbare L\u00f6sung f\u00fcr IT-Expert:innen darstellt, die mehrere Systeme verwalten. Im Gegensatz zu manuellen Pr\u00fcfungen kann dieses Skript geplant und ger\u00e4te\u00fcbergreifend ausgef\u00fchrt werden, was Zeit spart und das Risiko <a href=\"https:\/\/www.ninjaone.com\/de\/blog\/wie-menschliches-versagen-mit-cybersecurity-risiken-zusammenhaengt\" target=\"_blank\" rel=\"noopener\">menschlichen Versagens reduziert<\/a>.<\/p>\n<h2>FAQs<\/h2>\n<h3>F: Kann dieses Skript die Systemwiederherstellung aktivieren, wenn sie deaktiviert ist?<\/h3>\n<p>A: Nein, das Skript dient dazu, den Status der Systemwiederherstellung zu \u00fcberpr\u00fcfen und zu protokollieren. Die Aktivierung der Systemwiederherstellung w\u00fcrde zus\u00e4tzliche Befehle erfordern.<\/p>\n<h3>F: Ist das Skript mit \u00e4lteren Versionen von Windows kompatibel?<\/h3>\n<p>A: Das Skript ist f\u00fcr Windows 10 und Windows Server 2016 konzipiert. Die Kompatibilit\u00e4t mit \u00e4lteren Versionen ist nicht gew\u00e4hrleistet.<\/p>\n<h3>F: Was geschieht, wenn der Name des benutzerdefinierten Feldes nicht angegeben wird?<\/h3>\n<p>A: Wenn kein benutzerdefinierter Feldname angegeben wird, gibt das Skript einfach den Status der Systemwiederherstellung aus, ohne zu versuchen, ihn zu protokollieren.<\/p>\n<h2>Folgen<\/h2>\n<p>Durch die Kenntnis vom Status der Systemwiederherstellung auf allen verwalteten Ger\u00e4ten k\u00f6nnen IT-Expert:innen sicherstellen, dass die Systeme im Falle eines Ausfalls wiederherstellbar sind. Dieser proaktive Ansatz kann die Zuverl\u00e4ssigkeit des Systems erheblich verbessern und die Auswirkungen potenzieller Probleme verringern.<\/p>\n<h2>Empfehlungen<\/h2>\n<p>Wenn Sie dieses Skript verwenden, stellen Sie sicher, dass es regelm\u00e4\u00dfig ausgef\u00fchrt wird, um den Status der Systemwiederherstellung im Auge zu behalten. Integrieren Sie es in eine umfassendere System\u00fcberwachungs- und -verwaltungsstrategie, um den gesunden Systemzustand zu erhalten. Testen Sie das Skript immer in einer kontrollierten Umgebung, bevor Sie es auf mehreren Ger\u00e4ten einsetzen, um unerwartete Probleme zu vermeiden.<\/p>\n<h2>Abschlie\u00dfende \u00dcberlegungen<\/h2>\n<p>NinjaOne bietet robuste Tools f\u00fcr das IT-Management, und Skripte wie dieses erweitern die M\u00f6glichkeiten, indem sie <a href=\"https:\/\/www.ninjaone.com\/de\/rmm\/it-automatisierung\/\" target=\"_blank\" rel=\"noopener\">automatisierte<\/a>, skalierbare L\u00f6sungen f\u00fcr Routinepr\u00fcfungen bieten. Die Sicherstellung, dass die Systemwiederherstellung ger\u00e4te\u00fcbergreifend aktiviert ist, ist nur eine von vielen Aufgaben, die mit NinjaOne rationalisiert werden k\u00f6nnen. IT-Expert:innen werden durch die Integration von NinjaOne geholfen, die Systemintegrit\u00e4t, Zuverl\u00e4ssigkeit und <a href=\"https:\/\/www.ninjaone.com\/de\/effizienz\/\" target=\"_blank\" rel=\"noopener\">Effizienz<\/a> zu erhalten.<\/p>\n","protected":false},"author":35,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_relevanssi_hide_post":"","_relevanssi_hide_content":"","_relevanssi_pin_for_all":"","_relevanssi_pin_keywords":"","_relevanssi_unpin_keywords":"","_relevanssi_related_keywords":"","_relevanssi_related_include_ids":"","_relevanssi_related_exclude_ids":"","_relevanssi_related_no_append":"","_relevanssi_related_not_related":"","_relevanssi_related_posts":"","_relevanssi_noindex_reason":"","_lmt_disableupdate":"no","_lmt_disable":""},"operating_system":[4212],"use_cases":[4306],"class_list":["post-395052","script_hub","type-script_hub","status-publish","hentry","script_hub_category-windows"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/script_hub\/395052","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/script_hub"}],"about":[{"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/types\/script_hub"}],"author":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/users\/35"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/comments?post=395052"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/media?parent=395052"}],"wp:term":[{"taxonomy":"script_hub_category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/operating_system?post=395052"},{"taxonomy":"use_cases","embeddable":true,"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/use_cases?post=395052"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}