{"id":208569,"date":"2024-01-24T13:40:10","date_gmt":"2024-01-24T13:40:10","guid":{"rendered":"https:\/\/www.ninjaone.com\/script-hub\/anleitung-zum-deaktivieren-von-smbv1-powershell\/"},"modified":"2024-03-04T17:55:39","modified_gmt":"2024-03-04T17:55:39","slug":"anleitung-zum-deaktivieren-von-smbv1-powershell","status":"publish","type":"script_hub","link":"https:\/\/www.ninjaone.com\/de\/script-hub\/anleitung-zum-deaktivieren-von-smbv1-powershell\/","title":{"rendered":"So deaktivieren Sie SMBv1 (Server Message Block Protocol) mit PowerShell"},"content":{"rendered":"<p>Das <a href=\"https:\/\/www.ninjaone.com\/blog\/what-is-smb-server-message-block\/\">Server Message Block Protocol (SMB)<\/a> gibt es schon seit geraumer Zeit und dient als R\u00fcckgrat f\u00fcr die gemeinsame Nutzung von Dateien und verschiedene andere Netzwerkoperationen. Die fr\u00fcheste Version, SMBv1, wird jedoch aufgrund einer Vielzahl von Sicherheitsl\u00fccken als Belastung angesehen. Wenn Sie ein IT-Experte oder ein Managed Service Provider (MSP) sind, sollte die Gew\u00e4hrleistung der Netzwerksicherheit Ihr gr\u00f6\u00dftes Anliegen sein. <strong>Wie kann<\/strong> man also SMBv1 effektiv deaktivieren?<\/p>\n<h2>Was macht das Skript?<\/h2>\n<p>Das vorliegende PowerShell-Skript wurde zu einem ganz bestimmten Zweck entwickelt: zum Deaktivieren von SMBv1 in Windows-Umgebungen. Es verwendet eine Reihe von integrierten PowerShell-Cmdlets und Registrierungsmanipulationen, um sicherzustellen, dass SMBv1 vollst\u00e4ndig deaktiviert ist. Das Skript kann in einer Windows 10- oder Windows Server 2016-Umgebung oder sp\u00e4ter ausgef\u00fchrt werden, was es sehr vielseitig und wertvoll f\u00fcr jedes moderne Windows-System macht.<\/p>\n<h2>Das Skript: SMBv1 deaktivieren<\/h2>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">#Requires -Version 5.1\r\n\r\n&lt;#\r\n.SYNOPSIS\r\n    Disables SMB v1\r\n.DESCRIPTION\r\n    Disables SMB v1 via Get-WindowsOptionalFeature, Set-SmbServerConfiguration, or Registry\r\n.EXAMPLE\r\n    No parameters needed.\r\n.EXAMPLE\r\n    PS C:&gt; Disable-SMBv1.ps1\r\n    No parameters needed.\r\n.OUTPUTS\r\n    None\r\n.NOTES\r\n    Minimum OS Architecture Supported: Windows 10, Windows Server 2016\r\n    Release Notes:\r\n    Initial Release\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\r\nbegin {\r\n    function Test-IsElevated {\r\n        $id = [System.Security.Principal.WindowsIdentity]::GetCurrent()\r\n        $p = New-Object System.Security.Principal.WindowsPrincipal($id)\r\n        if ($p.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator))\r\n        { Write-Output $true }\r\n        else\r\n        { Write-Output $false }\r\n    }\r\n    function Set-ItemProp {\r\n        param (\r\n            $Path,\r\n            $Name,\r\n            $Value,\r\n            [ValidateSet(\"DWord\", \"QWord\", \"String\", \"ExpandedString\", \"Binary\", \"MultiString\", \"Unknown\")]\r\n            $PropertyType = \"DWord\"\r\n        )\r\n        # Do not output errors and continue\r\n        $ErrorActionPreference = [System.Management.Automation.ActionPreference]::SilentlyContinue\r\n        if (-not $(Test-Path -Path $Path)) {\r\n            # Check if path does not exist and create the path\r\n            New-Item -Path $Path -Force | Out-Null\r\n        }\r\n        if ((Get-ItemProperty -Path $Path -Name $Name)) {\r\n            # Update property and print out what it was changed from and changed to\r\n            $CurrentValue = Get-ItemProperty -Path $Path -Name $Name\r\n            try {\r\n                Set-ItemProperty -Path $Path -Name $Name -Value $Value -Force -Confirm:$false -ErrorAction Continue | Out-Null\r\n            }\r\n            catch {\r\n                Write-Error $_\r\n            }\r\n            Write-Host \"$Path$Name changed from $CurrentValue to $(Get-ItemProperty -Path $Path -Name $Name)\"\r\n        }\r\n        else {\r\n            # Create property with value\r\n            try {\r\n                New-ItemProperty -Path $Path -Name $Name -Value $Value -PropertyType $PropertyType -Force -Confirm:$false -ErrorAction Continue | Out-Null\r\n            }\r\n            catch {\r\n                Write-Error $_\r\n            }\r\n            Write-Host \"Set $Path$Name to $(Get-ItemProperty -Path $Path -Name $Name)\"\r\n        }\r\n        $ErrorActionPreference = [System.Management.Automation.ActionPreference]::Continue\r\n    }\r\n    $Disable = 0\r\n    # $Enable = 1 # Not Used\r\n}\r\nprocess {\r\n    if (-not (Test-IsElevated)) {\r\n        Write-Error -Message \"Access Denied. Please run with Administrator privileges.\"\r\n        exit 1\r\n    }\r\n    \r\n    # Try using Get-WindowsOptionalFeature first\r\n    if (-not $(Get-Command -Name \"Get-WindowsOptionalFeature\").Name -like \"Get-WindowsOptionalFeature\") {\r\n        Write-Host \"Get-WindowsOptionalFeature command not found. Continuing.\"\r\n    }\r\n    else {\r\n        if ((Get-WindowsOptionalFeature -Online -FeatureName smb1protocol -ErrorAction SilentlyContinue).State -notlike \"Disabled\") {\r\n            # Disables smb1protocol feature\r\n            try {\r\n                Disable-WindowsOptionalFeature -Online -FeatureName smb1protocol\r\n                # Disabled SMB1, exit\r\n                exit 0\r\n            }\r\n            catch {\r\n                Write-Host \"smb1protocol feature not found. Continuing.\"\r\n            }\r\n        }\r\n    }\r\n\r\n    if (-not $(Get-Command -Name \"Get-SmbServerConfiguration\").Name -like \"Get-SmbServerConfiguration\") {\r\n        Write-Host \"Get-SmbServerConfiguration command not found. Continuing.\"\r\n        $Path = \"HKLM:SYSTEMCurrentControlSetServicesLanmanServerParameters\"\r\n        $Name = \"SMB1\"\r\n        # https:\/\/docs.microsoft.com\/en-us\/windows-server\/storage\/file-server\/troubleshoot\/detect-enable-and-disable-smbv1-v2-v3#registry-editor\r\n        # Sets SMB1 to 0\r\n        Set-ItemProp -Path $Path -Name $Name -Value $Disable\r\n    }\r\n    if ((Get-SmbServerConfiguration).EnableSMB1Protocol) {\r\n        try {\r\n            Set-SmbServerConfiguration -EnableSMB1Protocol $false            \r\n        }\r\n        catch {\r\n            Write-Host \"Failed to disable SMBv1.\"\r\n            exit 1\r\n        }\r\n    }\r\n}\r\nend {}<\/pre>\n<p>&nbsp;<\/p>\n\n<div class=\"in-context-cta\"><p>Zugriff auf \u00fcber 300 Skripte im NinjaOne Dojo<\/p>\n<p><a href=\"https:\/\/www.ninjaone.com\/de\/kostenlosetestversionformular\/\">Zugang erhalten<\/a><\/p>\n<\/div>\n<h2>Sicherheitsprobleme im Zusammenhang mit SMBv1<\/h2>\n<p>SMBv1 ist f\u00fcr seine Sicherheitsm\u00e4ngel ber\u00fcchtigt. Es war ein h\u00e4ufiges Ziel f\u00fcr verschiedene Arten von Angriffen, Ransomware und Datenschutzverletzungen. Wenn Sie SMBv1 aktivieren, ist das so, als w\u00fcrden Sie Ihre Haust\u00fcr offen lassen; Sie laden damit nur \u00c4rger ein. Dieses PowerShell-Skript behebt dieses Problem effektiv, indem es SMBv1 deaktiviert.<\/p>\n<h2>Zeit und Effizienz<\/h2>\n<p>Die manuelle Deaktivierung von SMBv1 kann eine zeitraubende Aufgabe sein, insbesondere in gro\u00dfen Netzwerkumgebungen. Dieses Skript automatisiert den Prozess und spart wertvolle Zeit und M\u00fche. F\u00fcr MSPs, die mehrere Kundennetzwerke verwalten, ist dieses Tool ein Geschenk des Himmels.<\/p>\n<h2>Umfassender Ansatz<\/h2>\n<p>Das Skript versucht, SMBv1 \u00fcber mehrere Wege zu deaktivieren, darunter das Cmdlet &#8222;Get-WindowsOptionalFeature&#8220;, das Cmdlet &#8222;Set-SmbServerConfiguration&#8220; und direkte \u00c4nderungen in der Registrierung. Dadurch wird sichergestellt, dass das Protokoll auch dann deaktiviert wird, wenn eine der Methoden ausf\u00e4llt oder auf dem betreffenden System nicht verf\u00fcgbar ist.<\/p>\n<h2>So verwenden Sie das Skript &#8222;SMBv1 deaktivieren<\/h2>\n<p>Die Ausf\u00fchrung des Skripts ist einfach. Hier ist eine kurze Anleitung:<\/p>\n<ol>\n<li>Speichern Sie das Skript in einer Datei namens Disable-SMBv1.ps1.<\/li>\n<li>\u00d6ffnen Sie PowerShell als Administrator.<\/li>\n<li>Navigieren Sie zu dem Ordner, in dem Sie das Skript gespeichert haben.<\/li>\n<li>F\u00fchren Sie das Skript aus, indem Sie PS C:&gt;.Disable-SMBv1.ps1 eingeben und die Eingabetaste dr\u00fccken.<\/li>\n<\/ol>\n<p>Vergewissern Sie sich, dass Sie \u00fcber Administratorrechte verf\u00fcgen, sonst wird das Skript abgebrochen, damit Sie nicht versehentlich \u00c4nderungen vornehmen, die Sie nicht vornehmen sollten.<\/p>\n<h2>Wer braucht dieses Skript?<\/h2>\n<ul>\n<li><strong>IT-Fachleute:<\/strong> Wenn Sie f\u00fcr die Wartung eines Unternehmensnetzwerks oder auch nur eines kleineren Netzwerks verantwortlich sind, sollte dieses Skript zu Ihren Tools geh\u00f6ren. Damit k\u00f6nnen Sie den Prozess der Deaktivierung von SMBv1 auf mehreren Systemen in einem Schritt automatisieren.<\/li>\n<li><strong>Anbieter von verwalteten Diensten (MSPs):<\/strong> F\u00fcr diejenigen, die mehrere Kundennetzwerke verwalten, kann die M\u00f6glichkeit, anf\u00e4llige Protokolle wie SMBv1 schnell zu deaktivieren, eine zus\u00e4tzliche Sicherheitsebene schaffen, die Ihren Service f\u00fcr Ihre Kunden noch wertvoller macht.<\/li>\n<\/ul>\n<h2>Einbindung des Skripts in NinjaOne<\/h2>\n<p>IT-Profis und Managed Service Provider (MSPs), die sich auf NinjaOne als <a href=\"https:\/\/www.ninjaone.com\/de\/rmm\">Fern\u00fcberwachungs- und -verwaltungsl\u00f6sung<\/a> verlassen, k\u00f6nnen dieses Skript in ihre regul\u00e4ren Wartungs- oder Sicherheitsprotokolle integrieren, um ihren Betrieb noch robuster zu gestalten.<\/p>\n<h3>Geplante Ausf\u00fchrung<\/h3>\n<p>Sie k\u00f6nnen die Ausf\u00fchrung des PowerShell-Skripts \u00fcber die Scripting Engine von NinjaOne planen. Auf diese Weise stellen Sie sicher, dass SMBv1 automatisch auf allen neuen Systemen, die dem Netzwerk hinzugef\u00fcgt werden, oder auf allen Systemen, die neu initialisiert werden, deaktiviert wird, wodurch eine einheitliche Sicherheitslage aufrechterhalten wird.<\/p>\n<h3>\u00dcberwachung und Warnungen<\/h3>\n<p>Mit den Warnfunktionen von NinjaOne k\u00f6nnen Sie benutzerdefinierte Warnungen erstellen, die Sie benachrichtigen, wenn das Skript erfolgreich gelaufen ist oder wenn es Probleme gibt. So erhalten Sie Echtzeit-Feedback und k\u00f6nnen bei Bedarf eingreifen.<\/p>\n<h3>Remote-Bereitstellung<\/h3>\n<p>Das Disable SMBv1 Script kann \u00fcber NinjaOne auf mehreren Systemen eingesetzt werden. Dies ist besonders n\u00fctzlich f\u00fcr MSPs, die eine Vielzahl von Netzen verwalten. Mit nur wenigen Klicks k\u00f6nnen Sie eine wichtige Sicherheitsrichtlinie f\u00fcr alle verwalteten Endpunkte durchsetzen.<\/p>\n<h3>Compliance-Berichterstattung<\/h3>\n<p>F\u00fcr Compliance-Anforderungen wie GDPR oder HIPAA, bei denen die Deaktivierung veralteter und anf\u00e4lliger Protokolle vorgeschrieben sein kann, k\u00f6nnen Sie mit diesem Skript \u00fcber NinjaOne nahtlos nachweisen, dass angemessene Sicherheitsma\u00dfnahmen vorhanden sind. Mit den Berichtsfunktionen von NinjaOne k\u00f6nnen Sie umfassende Berichte f\u00fcr Pr\u00fcfpfade erstellen.<\/p>\n<h2>Abschlie\u00dfende \u00dcberlegungen<\/h2>\n<p>Die Deaktivierung von SMBv1 sollte f\u00fcr jedes Unternehmen, das die Netzwerksicherheit ernst nimmt, eine Selbstverst\u00e4ndlichkeit sein. Dieses PowerShell-Skript bietet eine zuverl\u00e4ssige, effiziente und umfassende Methode f\u00fcr genau diese Aufgabe. In Anbetracht der dringenden Notwendigkeit, die Sicherheitsprotokolle in der heutigen IT-Landschaft von Unternehmen zu erh\u00f6hen, sollte die Einf\u00fchrung dieses Skripts oberste Priorit\u00e4t haben.<\/p>\n","protected":false},"author":35,"featured_media":206916,"parent":0,"menu_order":0,"comment_status":"open","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":[4280],"class_list":["post-208569","script_hub","type-script_hub","status-publish","has-post-thumbnail","hentry","script_hub_category-windows"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/script_hub\/208569","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=208569"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/media\/206916"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/media?parent=208569"}],"wp:term":[{"taxonomy":"script_hub_category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/operating_system?post=208569"},{"taxonomy":"use_cases","embeddable":true,"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/use_cases?post=208569"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}