屏蔽Ctrl+Alt+Del
如果你只是想禁用Ctrl +Alt +Del 直接只看第6点
1 启用和关闭Windows功能里-》开启硬件锁定-》沟选 Shell Launcher,键盘筛选器,统一写入筛选器,无商标的启动,自定义登录。然后需要重启。也可以直接下面.bat管理员下执行一下
start /w pkgmgr /iu:Client-DeviceLockdown;Client-EmbeddedShellLauncher;Client-KeyboardFilter;Client-UnifiedWriteFilter;Client-EmbeddedBootExp;Client-EmbeddedLogon
2 创建备用管理员账号,(防此设置出错,系统再也操作不了其它操作)
3 控制面板-》用户账号-》用户账号-》更改用户账号控制设置-》UAC通知,设置成从不通知。
4 关闭UAC(这个是为了设置Shell 展台启动程序 该程序如果需要管理员权限,就必须关闭,否则无法启动)\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System EnableLUA,修改“数值数据”为0 为禁用 1使用
也可写个.reg 文件直接导入内容如下
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System] "EnableLUA"=dword:0
5 设置Shell启动。复制下列三行 使用PowerShell管理员启动运行下面的四行)
1 $ShellLauncherClass = [wmiclass]"\\localhost\root\standardcimv2\embedded:WESL_UserSetting"
2 $ShellLauncherClass.SetDefaultShell("XXX.exe", 0)
3 $ShellLauncherClass.SetEnabled($TRUE)
4 Set-ExecutionPolicy RemoteSigned
6 开启使用【设备锁定】-【键盘筛选器】前提下PowerShell管理员运行禁用下面脚本(但是系统会强制开启连按5下Win键回到系统登录界面)
(屏蔽Win键请看https://www.cnblogs.com/stweily/p/17400975.html)
param ( [String] $ComputerName ) $CommonParams = @{"namespace"="root\standardcimv2\embedded"} $CommonParams += $PSBoundParameters function Enable-Predefined-Key($Id) { <# .Synopsis Toggle on a Predefined Key keyboard filter Rule .Description Use Get-WMIObject to enumerate all WEKF_PredefinedKey instances, filter against key value "Id", and set that instance's "Enabled" property to 1/true. .Example Enable-Predefined-Key "Ctrl+Alt+Del" Enable CAD filtering #> $predefined = Get-WMIObject -class WEKF_PredefinedKey @CommonParams | where { $_.Id -eq "$Id" }; if ($predefined) { $predefined.Enabled = 1; $predefined.Put() | Out-Null; Write-Host Enabled $Id } else { Write-Error "$Id is not a valid predefined key" } } function Enable-Custom-Key($Id) { <# .Synopsis Toggle on a Custom Key keyboard filter Rule .Description Use Get-WMIObject to enumerate all WEKF_CustomKey instances, filter against key value "Id", and set that instance's "Enabled" property to 1/true. In the case that the Custom instance does not exist, add a new instance of WEKF_CustomKey using Set-WMIInstance. .Example Enable-Custom-Key "Ctrl+V" Enable filtering of the Ctrl + V sequence. #> $custom = Get-WMIObject -class WEKF_CustomKey @CommonParams | where { $_.Id -eq "$Id" }; if ($custom) { # Rule exists. Just enable it. $custom.Enabled = 1; $custom.Put() | Out-Null; "Enabled Custom Filter $Id."; } else { Set-WMIInstance ` -class WEKF_CustomKey ` -argument @{Id="$Id"} ` @CommonParams | Out-Null "Added Custom Filter $Id."; } } function Enable-Scancode($Modifiers, [int]$Code) { <# .Synopsis Toggle on a Scancode keyboard filter Rule .Description Use Get-WMIObject to enumerate all WEKF_Scancode instances, filter against key values of "Modifiers" and "Scancode", and set that instance's "Enabled" property to 1/true. In the case that the Scancode instance does not exist, add a new instance of WEKF_Scancode using Set-WMIInstance. .Example Enable-Scancode "Ctrl" 37 Enable filtering of the Ctrl + keyboard scancode 37 (base-10) sequence. #> $scancode = Get-WMIObject -class WEKF_Scancode @CommonParams | where { ($_.Modifiers -eq $Modifiers) -and ($_.Scancode -eq $Code) } if($scancode) { $scancode.Enabled = 1 $scancode.Put() | Out-Null "Enabled Custom Scancode {0}+{1:X4}" -f $Modifiers, $Code } else { Set-WMIInstance ` -class WEKF_Scancode ` -argument @{Modifiers="$Modifiers"; Scancode=$Code} ` @CommonParams | Out-Null "Added Custom Scancode {0}+{1:X4}" -f $Modifiers, $Code } } # Some example uses of the functions defined above.
Enable-Predefined-Key "Ctrl+Alt+Del"
Enable-Predefined-Key "Ctrl+Esc"
Enable-Predefined-Key "Ctrl+Tab"
Enable-Predefined-Key "Alt+Tab"
Enable-Predefined-Key "Alt+Esc"
Enable-Custom-Key "Ctrl+V"
Enable-Custom-Key "Ctrl+Shift+Esc"
Enable-Custom-Key "Win+R"
Enable-Custom-Key "Win+L"
Enable-Custom-Key "ALT+F4"
Enable-Custom-Key "Numpad0"
Enable-Custom-Key "Shift+Numpad1"
Enable-Custom-Key "%"
Enable-Scancode "Ctrl" 37
增加恢复脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | param( [String]$ComputerName ) $CommonParams = @{ "namespace" = "root\standardcimv2\embedded" } $CommonParams += $PSBoundParameters Get-WMIObject -class WEKF_PredefinedKey @CommonParams | foreach { if ($_.Enabled) { $_.Enabled = 0; $_.Put() | Out-Null; Write-Host Disabled $_.Id } } Get-WMIObject -class WEKF_CustomKey @CommonParams | foreach { if ($_.Enabled) { $_.Enabled = 0; $_.Put() | Out-Null; Write-Host Disabled $_.Id } } Get-WMIObject -class WEKF_Scancode @CommonParams | foreach { if ($_.Enabled) { $_.Enabled = 0; $_.Put() | Out-Null; "Disabled {0}+{1:X4}" -f $_.Modifiers,$_.Scancode } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!