{"id":208584,"date":"2024-02-23T13:35:28","date_gmt":"2024-02-23T13:35:28","guid":{"rendered":"https:\/\/www.ninjaone.com\/script-hub\/windows-ausfuehrungsdialog-aktivieren-oder-deaktivieren-powershell\/"},"modified":"2024-03-04T18:41:29","modified_gmt":"2024-03-04T18:41:29","slug":"windows-ausfuehrungsdialog-aktivieren-oder-deaktivieren-powershell","status":"publish","type":"script_hub","link":"https:\/\/www.ninjaone.com\/de\/script-hub\/windows-ausfuehrungsdialog-aktivieren-oder-deaktivieren-powershell\/","title":{"rendered":"Deaktivieren oder Aktivieren des Windows-Ausf\u00fchrungsdialogs mit PowerShell"},"content":{"rendered":"<p>In der komplizierten Welt der IT ist die Verwaltung des Benutzerzugangs zu bestimmten Systemfunktionen von gr\u00f6\u00dfter Bedeutung. Eine dieser Funktionen ist der Windows-Ausf\u00fchrungsdialog. Aber warum sollten IT-Fachleute den Zugriff darauf beschr\u00e4nken wollen? Dieser Guide befasst sich eingehend mit dem <strong>PowerShell-Skript zur Steuerung der Zug\u00e4nglichkeit des Ausf\u00fchrungsdialogs<\/strong> und den Auswirkungen solcher Aktionen.<\/p>\n<h2>\u00dcberblick \u00fcber den Windows-Ausf\u00fchrungsdialog<\/h2>\n<ul>\n<li>\n<h3>Was ist der Windows-Ausf\u00fchrungsdialog?<\/h3>\n<ul>\n<li>Der Windows-Ausf\u00fchrungsdialog ist eine Funktion, mit der Benutzer schnell Programme starten, Ordner \u00f6ffnen und Systembefehle ausf\u00fchren k\u00f6nnen. Wenn Sie die Tastenkombination Windows + R dr\u00fccken, erscheint ein kleines Dialogfeld, in das Sie direkt Befehle eingeben k\u00f6nnen.<\/li>\n<\/ul>\n<\/li>\n<li>\n<h3>Wie wird der Windows-Ausf\u00fchrungsdialog verwendet?<\/h3>\n<ul>\n<li>Er wird haupts\u00e4chlich f\u00fcr den schnellen Zugriff verwendet. Anstatt durch mehrere Men\u00fcs oder Ordner zu navigieren, k\u00f6nnen Benutzer einfach einen Befehl oder einen Pfad in den Ausf\u00fchren-Dialog eingeben, um sofort ein Programm zu starten oder ein Verzeichnis zu \u00f6ffnen.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<div class=\"in-context-cta\"><h2>Gavin&#8217;s Meinung<\/h2>\n<p style=\"text-align: left;\">Der Ausf\u00fchrungsdialog ist eine der ersten Anlaufstellen, wenn es darum geht, auf das System zuzugreifen oder Befehle auf dem erweiterten System auszuf\u00fchren. Als prim\u00e4rer Punkt f\u00fcr die Ausf\u00fchrung von Befehlen und Programmen stellt die Sperrung dieses Bereichs eine kontrolliertere Umgebung dar und verringert das Risiko erheblich.<\/p>\n<p style=\"text-align: left;\">Obwohl dies nicht der einzige Ausf\u00fchrungspunkt f\u00fcr Befehle und Programme ist, wird er von Personen, die nicht unbedingt Erfahrung mit der Systemverwaltung haben, am h\u00e4ufigsten verwendet. Das Sperren dieser Funktion sollte in Kombination mit anderen Sicherheitsbeschr\u00e4nkungen (wie dem Verhindern des Zugriffs auf die Registrierung oder die Eingabeaufforderung) verwendet werden.<\/p>\n<\/div>\n<h2>Sicherheitsaspekte der Deaktivierung des Windows-Ausf\u00fchrungsdialogs<\/h2>\n<h3>Was sind die Risiken?<\/h3>\n<p>Wenn Sie den Ausf\u00fchrungsdialog deaktivieren, k\u00f6nnten Sie unbeabsichtigt die Produktivit\u00e4t beeintr\u00e4chtigen. Einige fortgeschrittene Benutzer verlassen sich f\u00fcr schnelle Aufgaben und die Systemverwaltung auf den Ausf\u00fchrungsdialog. Zudem kann die Manipulation von Systemeinstellungen, wenn sie nicht korrekt durchgef\u00fchrt wird, zu anderen unbeabsichtigten Problemen f\u00fchren.<\/p>\n<h3>Was sind die Vorteile?<\/h3>\n<p>Der Hauptvorteil ist die erh\u00f6hte Sicherheit. Die Deaktivierung des Ausf\u00fchrungsdialogs kann unbefugte oder b\u00f6swillige Aktionen verhindern, insbesondere von Benutzern, die sich mit der Systembedienung nicht so gut auskennen. Dadurch wird das Risiko versehentlicher \u00c4nderungen oder der Ausf\u00fchrung sch\u00e4dlicher Befehle verringert.<\/p>\n<h3>Wie k\u00f6nnen Sie die Risiken verringern?<\/h3>\n<p>Bevor Sie \u00c4nderungen vornehmen, sollten Sie unbedingt Folgendes tun:<\/p>\n<ul>\n<li>Kommunizieren Sie mit den Benutzern, insbesondere mit denen, die von der \u00c4nderung betroffen sein k\u00f6nnten.<\/li>\n<li>Stellen Sie alternative Methoden oder Werkzeuge f\u00fcr Aufgaben, die bisher \u00fcber den Ausf\u00fchrungsdialog erledigt wurden, zur Verf\u00fcgung.<\/li>\n<li>Stellen Sie sicher, dass es eine M\u00f6glichkeit gibt, die \u00c4nderungen bei Bedarf schnell r\u00fcckg\u00e4ngig zu machen.<\/li>\n<\/ul>\n<h2>Hintergrund<\/h2>\n<p>Das mitgelieferte PowerShell-Skript ist ein robustes Tool f\u00fcr IT-Experten und Managed Service Provider (MSPs) zur Steuerung der Zug\u00e4nglichkeit des Ausf\u00fchrungsdialogs. In Umgebungen, in denen die Sicherheit oberste Priorit\u00e4t hat, sind solche Werkzeuge unverzichtbar. Die M\u00f6glichkeit des Skripts, bestimmte Benutzer von diesen Beschr\u00e4nkungen auszuschlie\u00dfen, sorgt f\u00fcr zus\u00e4tzliche Flexibilit\u00e4t und stellt sicher, dass der erforderliche Zugang nicht vollst\u00e4ndig entzogen wird.<\/p>\n<h2>Das Skript<\/h2>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\">#Requires -Version 2.0\r\n\r\n&lt;#\r\n.SYNOPSIS\r\n    Disables or enables the Run Dialog for all users and new users.\r\n.DESCRIPTION\r\n    Disables or enables the Run Dialog for all users and new users, and there is an option to exclude users.\r\n    Reboot is required to apply changes.\r\n.EXAMPLE\r\n    -Disable\r\n    Disables the Run Dialog for all users and new users.\r\n.EXAMPLE\r\n    -Disable -ExcludeUsers \"Test1\", \"Test2\"\r\n    Disables the Run Dialog for all users and new users, but excludes Test1 and Test2 users.\r\n.EXAMPLE\r\n    -Enable\r\n    Enables the Run Dialog for all users and new users.\r\n.EXAMPLE\r\n    -Enable -ExcludeUsers \"Test1\", \"Test2\"\r\n    Enables the Run Dialog for all users and new users, but excludes Test1 and Test2 users.\r\n.OUTPUTS\r\n    None\r\n.NOTES\r\n    General notes\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    [Parameter(Mandatory = $true, ParameterSetName = \"Disable\")]\r\n    [Switch]\r\n    $Disable,\r\n    [Parameter(Mandatory = $true, ParameterSetName = \"Enable\")]\r\n    [Switch]\r\n    $Enable,\r\n    [Parameter(Mandatory = $false, ParameterSetName = \"Disable\")]\r\n    [Parameter(Mandatory = $false, ParameterSetName = \"Enable\")]\r\n    [String[]]\r\n    $ExcludeUsers\r\n)\r\n\r\nbegin {\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 Stop | 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 Stop | 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}\r\nprocess {\r\n    $Path = \"SoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer\"\r\n    $Name = \"NoRun\"\r\n    $Value = if ($Disable) { 1 }elseif ($Enable) { 0 }else {\r\n        Write-Host \"Either -Enable or -Disable is required to function.\"\r\n        exit 0\r\n    }\r\n\r\n    # Get each user profile SID and Path to the profile\r\n    $UserProfiles = Get-ItemProperty \"HKLM:SOFTWAREMicrosoftWindows NTCurrentVersionProfileList*\" |\r\n        Where-Object { $_.PSChildName -match \"S-1-5-21-(d+-?){4}$\" } |\r\n        Select-Object @{Name = \"SID\"; Expression = { $_.PSChildName } }, @{Name = \"UserHive\"; Expression = { \"$($_.ProfileImagePath)NTuser.dat\" } }, @{Name = \"UserName\"; Expression = { \"$($_.ProfileImagePath | Split-Path -Leaf)\" } } |\r\n        Where-Object { $ExcludeUsers -notcontains $_.UserName }\r\n    \r\n    # Add in the .DEFAULT User Profile\r\n    $DefaultProfile = \"\" | Select-Object SID, UserHive, UserName\r\n    $DefaultProfile.SID = \".DEFAULT\"\r\n    $DefaultProfile.UserHive = \"C:UsersPublicNTuser.dat\"\r\n    try {\r\n        # Fix for edge case where PSObject is missing the add operator\r\n        $UserProfiles = {\r\n            $UserProfiles | ForEach-Object { $_ }\r\n            $DefaultProfile\r\n        }.Invoke()\r\n    }\r\n    catch {\r\n        Write-Host \"Failed to update default profile, skipping.\"\r\n    }\r\n    \r\n\r\n    # Loop through each profile on the machine\r\n    Foreach ($UserProfile in $UserProfiles) {\r\n        # Load User ntuser.dat if it's not already loaded\r\n        If (($ProfileWasLoaded = Test-Path -Path \"Registry::HKEY_USERS$($UserProfile.SID)\") -eq $false) {\r\n            Start-Process -FilePath \"cmd.exe\" -ArgumentList \"\/C reg.exe LOAD HKU$($UserProfile.SID) $($UserProfile.UserHive)\" -Wait -WindowStyle Hidden\r\n        }\r\n        # Manipulate the registry\r\n        $key = \"Registry::HKEY_USERS$($UserProfile.SID)$($Path)\"\r\n        Set-ItemProp -Path $key -Name $Name -Value $Value\r\n \r\n        # Unload NTuser.dat\r\n        If ($ProfileWasLoaded -eq $false) {\r\n            [gc]::Collect()\r\n            Start-Sleep 1\r\n            Start-Process -FilePath \"cmd.exe\" -ArgumentList \"\/C reg.exe UNLOAD HKU$($UserProfile.SID)\" -Wait -WindowStyle Hidden | Out-Null\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>Detailansicht<\/h2>\n<p>Das Skript beginnt mit der Einstellung von Parametern, die es dem Benutzer erm\u00f6glichen, den Ausf\u00fchrungsdialog entweder zu deaktivieren oder zu aktivieren und sogar bestimmte Benutzer auszuschlie\u00dfen. Dann wird eine Funktion, Set-ItemProp, definiert, um die Erstellung oder \u00c4nderung von Registrierungsschl\u00fcsseln zu verwalten. Der Hauptprozess besteht darin, den Registrierungspfad f\u00fcr den Ausf\u00fchrungsdialog zu definieren, alle Benutzerprofile abzurufen und dann in einer Schleife jedes Profil zu durchlaufen, um die Registrierung entsprechend zu \u00e4ndern.<\/p>\n<h2>Potenzielle Anwendungsf\u00e4lle<\/h2>\n<p>Nehmen wir eine IT-Fachkraft, Sarah, an einer Universit\u00e4t. Um sicherzustellen, dass die Laborcomputer ausschlie\u00dflich f\u00fcr akademische Zwecke verwendet werden, beschlie\u00dft Sarah, den Ausf\u00fchrungsdialog zu deaktivieren und die Profile der Laborassistenten auszuschlie\u00dfen. Mit diesem Skript kann Alex dieses Gleichgewicht zwischen Sicherheit und Zug\u00e4nglichkeit herstellen.<\/p>\n<h2>Vergleiche<\/h2>\n<p>Die Gruppenrichtlinie bietet zwar eine M\u00f6glichkeit zur Deaktivierung des Ausf\u00fchrungsdialogs, aber sie bietet m\u00f6glicherweise nicht die Granularit\u00e4t, die dieses Skript bietet. Der direkte Ansatz dieses Skripts bietet mehr Flexibilit\u00e4t, insbesondere in gr\u00f6\u00dferen Organisationen.<\/p>\n<h2>FAQs<\/h2>\n<ul>\n<li>Kann ich dieses Skript verwenden, um mehrere Benutzer auszuschlie\u00dfen?<br \/>\nJa, mit dem Parameter -ExcludeUsers k\u00f6nnen mehrere Benutzer ausgeschlossen werden.<\/li>\n<li>Ist nach der Ausf\u00fchrung des Skripts ein Neustart erforderlich?<br \/>\nJa, ein Neustart stellt sicher, dass die \u00c4nderungen \u00fcbernommen werden.<\/li>\n<\/ul>\n<h2>Empfehlungen<\/h2>\n<ul>\n<li>Sichern Sie den aktuellen Registrierungsstatus, bevor Sie \u00c4nderungen vornehmen.<\/li>\n<li>Testen Sie das Skript zun\u00e4chst in einer kontrollierten Umgebung.<\/li>\n<li>Halten Sie die Liste der ausgeschlossenen Benutzer auf dem neuesten Stand.<\/li>\n<\/ul>\n<h2>Abschlie\u00dfende \u00dcberlegungen<\/h2>\n<p>In der dynamischen Welt der IT bieten Tools wie NinjaOne eine <a href=\"https:\/\/www.ninjaone.de\/\" target=\"_blank\" rel=\"noopener\">zentralisierte Plattform f\u00fcr das IT-Management<\/a>. Die Integration von Skripten wie dem hier vorgestellten stellt sicher, dass IT-Experten f\u00fcr jede Herausforderung ger\u00fcstet sind, insbesondere wenn es um die Verwaltung von Funktionen wie dem Windows-Ausf\u00fchrungsdialog geht.<\/p>\n","protected":false},"author":35,"featured_media":207084,"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":[4280],"class_list":["post-208584","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\/208584","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=208584"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/media\/207084"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/media?parent=208584"}],"wp:term":[{"taxonomy":"script_hub_category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/operating_system?post=208584"},{"taxonomy":"use_cases","embeddable":true,"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/use_cases?post=208584"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}