{"id":208692,"date":"2024-01-19T09:19:29","date_gmt":"2024-01-19T09:19:29","guid":{"rendered":"https:\/\/www.ninjaone.com\/script-hub\/inaktivera-eller-aktivera-windows-run-dialog-powershell\/"},"modified":"2024-03-05T11:35:24","modified_gmt":"2024-03-05T11:35:24","slug":"inaktivera-eller-aktivera-windows-run-dialog-powershell","status":"publish","type":"script_hub","link":"https:\/\/www.ninjaone.com\/sv\/script-hub\/inaktivera-eller-aktivera-windows-run-dialog-powershell\/","title":{"rendered":"S\u00e5 h\u00e4r inaktiverar eller aktiverar du Windows Run Dialog med PowerShell"},"content":{"rendered":"<p>I den komplicerade IT-v\u00e4rlden \u00e4r det av yttersta vikt att hantera anv\u00e4ndarnas \u00e5tkomst till vissa systemfunktioner. En s\u00e5dan funktion \u00e4r Windows Run Dialog. Men varf\u00f6r skulle IT-personal vilja begr\u00e4nsa \u00e5tkomsten? Den h\u00e4r guiden ger en djupdykning i <strong>PowerShell-skriptet som \u00e4r utformat f\u00f6r att styra tillg\u00e4ngligheten i Run Dialog<\/strong> och konsekvenserna av s\u00e5dana \u00e5tg\u00e4rder.<\/p>\n<h2>\u00d6versikt \u00f6ver dialogrutan K\u00f6r i Windows<\/h2>\n<ul>\n<li>\n<h3>Vad \u00e4r Windows k\u00f6rdialog?<\/h3>\n<ul>\n<li>Windows k\u00f6rdialog \u00e4r en funktion som ger anv\u00e4ndarna ett snabbt s\u00e4tt att starta program, \u00f6ppna mappar och utf\u00f6ra systemkommandon. Om du trycker p\u00e5 Windows + R visas en liten dialogruta d\u00e4r du kan skriva in kommandon direkt.<\/li>\n<\/ul>\n<\/li>\n<li>\n<h3>Hur anv\u00e4nds k\u00f6rdialogen i Windows?<\/h3>\n<ul>\n<li>Den anv\u00e4nds fr\u00e4mst f\u00f6r snabb \u00e5tkomst. Ist\u00e4llet f\u00f6r att navigera genom flera menyer eller mappar kan anv\u00e4ndarna helt enkelt skriva in ett kommando eller en s\u00f6kv\u00e4g i k\u00f6rdialogen f\u00f6r att direkt starta ett program eller \u00f6ppna en katalog.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<div class=\"in-context-cta\"><h2>Gavins synpunkt<\/h2>\n<p style=\"text-align: left;\">K\u00f6rdialogen \u00e4r en av de viktigaste platserna att bes\u00f6ka om man vill f\u00e5 \u00e5tkomst till eller k\u00f6ra kommandon p\u00e5 det st\u00f6rre systemet. Eftersom det \u00e4r den prim\u00e4ra punkten f\u00f6r utf\u00f6rande av kommandon och program inneb\u00e4r l\u00e5sning av detta en mer kontrollerad milj\u00f6 och avsev\u00e4rt minskade risker.<\/p>\n<p style=\"text-align: left;\">\u00c4ven om detta inte \u00e4r den enda exekveringspunkten f\u00f6r kommandon och program, \u00e4r det den som oftast anv\u00e4nds av personer som inte n\u00f6dv\u00e4ndigtvis har erfarenhet av systemadministration. L\u00e5sning av detta b\u00f6r anv\u00e4ndas i kombination med andra s\u00e4kerhetsrestriktioner (som att f\u00f6rhindra \u00e5tkomst till registret eller kommandotolken).<\/p>\n<\/div>\n<h2>S\u00e4kerhetsimplikationer av att inaktivera k\u00f6rdialogen i Windows<\/h2>\n<h3>Vilka \u00e4r riskerna?<\/h3>\n<p>Genom att inaktivera k\u00f6rdialogen kan du oavsiktligt hindra produktiviteten. Vissa avancerade anv\u00e4ndare f\u00f6rlitar sig p\u00e5 k\u00f6rdialogen f\u00f6r snabba uppgifter och systemhantering. Om det inte g\u00f6rs p\u00e5 r\u00e4tt s\u00e4tt kan manipulering av systeminst\u00e4llningar dessutom leda till andra oavsiktliga problem.<\/p>\n<h3>Vilka \u00e4r f\u00f6rdelarna?<\/h3>\n<p>Den fr\u00e4msta f\u00f6rdelen \u00e4r \u00f6kad s\u00e4kerhet. Om du inaktiverar k\u00f6rdialogen kan du f\u00f6rhindra obeh\u00f6riga eller skadliga \u00e5tg\u00e4rder, s\u00e4rskilt fr\u00e5n anv\u00e4ndare som kanske inte \u00e4r s\u00e5 insatta i systemdrift. Det minskar risken f\u00f6r oavsiktliga \u00e4ndringar eller utf\u00f6rande av skadliga kommandon.<\/p>\n<h3>Hur kan ni minska riskerna?<\/h3>\n<p>Innan du genomf\u00f6r n\u00e5gra f\u00f6r\u00e4ndringar \u00e4r det viktigt att:<\/p>\n<ul>\n<li>Kommunicera med anv\u00e4ndarna, s\u00e4rskilt de som kan p\u00e5verkas av f\u00f6r\u00e4ndringen.<\/li>\n<li>Tillhandah\u00e5lla alternativa metoder eller verktyg f\u00f6r uppgifter som tidigare utf\u00f6rdes med hj\u00e4lp av k\u00f6rdialogen.<\/li>\n<li>Se till att det finns ett s\u00e4tt att snabbt \u00e5terst\u00e4lla \u00e4ndringarna om det beh\u00f6vs.<\/li>\n<\/ul>\n<h2>Bakgrund<\/h2>\n<p>Det PowerShell-skript som tillhandah\u00e5lls \u00e4r ett robust verktyg f\u00f6r IT-proffs och Managed Service Providers (MSP) f\u00f6r att kontrollera tillg\u00e4ngligheten i Run Dialog. I milj\u00f6er d\u00e4r s\u00e4kerhet har h\u00f6gsta prioritet blir s\u00e5dana verktyg oumb\u00e4rliga. Skriptets f\u00f6rm\u00e5ga att exkludera specifika anv\u00e4ndare fr\u00e5n dessa begr\u00e4nsningar ger ytterligare flexibilitet och s\u00e4kerst\u00e4ller att n\u00f6dv\u00e4ndig \u00e5tkomst inte helt dras in.<\/p>\n<h2>Manus<\/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>F\u00e5 tillg\u00e5ng till \u00f6ver 300 skript i NinjaOne Dojo<\/p>\n<p><a href=\"https:\/\/www.ninjaone.com\/sv\/kostnadsfri-provperiod-formular\/\">F\u00e5 tillg\u00e5ng till<\/a><\/p>\n<\/div>\n<h2>Detaljerad uppdelning<\/h2>\n<p>Skriptet b\u00f6rjar med att st\u00e4lla in parametrar, s\u00e5 att anv\u00e4ndare antingen kan inaktivera eller aktivera k\u00f6rdialogen och \u00e4ven exkludera specifika anv\u00e4ndare. En funktion, Set-ItemProp, definieras sedan f\u00f6r att hantera skapande eller \u00e4ndring av registernycklar. Den huvudsakliga processen best\u00e5r i att definiera registers\u00f6kv\u00e4gen f\u00f6r k\u00f6rdialogen, h\u00e4mta alla anv\u00e4ndarprofiler och sedan loopa igenom varje profil f\u00f6r att \u00e4ndra registret i enlighet med detta.<\/p>\n<h2>Potentiella anv\u00e4ndningsomr\u00e5den<\/h2>\n<p>T\u00e4nk dig en IT-expert, Sarah, p\u00e5 ett universitet. F\u00f6r att s\u00e4kerst\u00e4lla att labbdatorerna endast anv\u00e4nds f\u00f6r akademiska \u00e4ndam\u00e5l beslutar Sarah att inaktivera k\u00f6rdialogen, vilket utesluter labbassistenternas profiler. Detta skript g\u00f6r det m\u00f6jligt f\u00f6r Alex att uppn\u00e5 denna balans mellan s\u00e4kerhet och tillg\u00e4nglighet.<\/p>\n<h2>J\u00e4mf\u00f6relser<\/h2>\n<p>Grupprinciper kan anv\u00e4ndas f\u00f6r att inaktivera k\u00f6rdialogen, men kanske inte med samma noggrannhet som detta skript. Det h\u00e4r scriptets direkta tillv\u00e4gag\u00e5ngss\u00e4tt ger mer flexibilitet, s\u00e4rskilt i st\u00f6rre organisationer.<\/p>\n<h2>Vanliga fr\u00e5gor<\/h2>\n<ul>\n<li>Kan jag anv\u00e4nda detta skript f\u00f6r att utesluta flera anv\u00e4ndare?<br \/>\nJa, det g\u00e5r att utesluta flera anv\u00e4ndare med parametern -ExcludeUsers.<\/li>\n<li>Kr\u00e4vs en omstart efter att skriptet har k\u00f6rts?<br \/>\nJa, en omstart s\u00e4kerst\u00e4ller att \u00e4ndringarna till\u00e4mpas.<\/li>\n<\/ul>\n<h2>Rekommendationer<\/h2>\n<ul>\n<li>S\u00e4kerhetskopiera det aktuella registret innan du g\u00f6r \u00e4ndringar.<\/li>\n<li>Testa skriptet i en kontrollerad milj\u00f6 f\u00f6rst.<\/li>\n<li>H\u00e5ll listan \u00f6ver uteslutna anv\u00e4ndare uppdaterad.<\/li>\n<\/ul>\n<h2>Avslutande tankar<\/h2>\n<p>I den dynamiska IT-v\u00e4rlden erbjuder verktyg som NinjaOne en <a href=\"https:\/\/www.ninjaone.com\/sv\/\">centraliserad plattform f\u00f6r IT-hantering<\/a>. Genom att integrera skript som det som diskuterats s\u00e4kerst\u00e4ller man att IT-proffs \u00e4r rustade f\u00f6r att hantera alla utmaningar, s\u00e4rskilt n\u00e4r det g\u00e4ller att hantera funktioner som Windows Run Dialog.<\/p>\n","protected":false},"author":35,"featured_media":207091,"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":[4255],"class_list":["post-208692","script_hub","type-script_hub","status-publish","has-post-thumbnail","hentry","script_hub_category-windows"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ninjaone.com\/sv\/wp-json\/wp\/v2\/script_hub\/208692","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ninjaone.com\/sv\/wp-json\/wp\/v2\/script_hub"}],"about":[{"href":"https:\/\/www.ninjaone.com\/sv\/wp-json\/wp\/v2\/types\/script_hub"}],"author":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/sv\/wp-json\/wp\/v2\/users\/35"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/sv\/wp-json\/wp\/v2\/comments?post=208692"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/sv\/wp-json\/wp\/v2\/media\/207091"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/sv\/wp-json\/wp\/v2\/media?parent=208692"}],"wp:term":[{"taxonomy":"script_hub_category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/sv\/wp-json\/wp\/v2\/operating_system?post=208692"},{"taxonomy":"use_cases","embeddable":true,"href":"https:\/\/www.ninjaone.com\/sv\/wp-json\/wp\/v2\/use_cases?post=208692"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}