【Win】如何在Windows隐藏安装的程序

由于维护人员或用户可能无意中通过“程序和功能”选项删除对业务至关重要的软件,这导致服务中断或安全风险。为了防止此类情况发生,确保只有授权的用户才能访问和管理系统中的程序。为了实现这一目标,我们将探讨如何在Windows操作系统中隐藏特定的安装程序。这包括从控制面板的“程序和功能”列表中隐藏程序,以及从现代设置界面中移除它们的可见性。通过这些方法,我们可以减少误操作的风险,同时保持系统管理的灵活性和安全性。

以下实验环境基于

在这里插入图片描述

目录:

  • 如何从设置/控制面板隐藏特定程序?
  • 使用PowerShell脚本隐藏安装的应用程序
  • 如何隐藏所有安装的应用程序以防止其他用户查看

如何从设置/控制面板隐藏特定程序?

假设现在的任务是隐藏安装的7-zip的条目。打开控制面板,然后转到程序和功能部分。确保列表中存在 **7-zip 23.01 (x64)**的条目。
在这里插入图片描述

也可以在现代设置UI(设置 -> 应用 -> 安装的应用)中找到有关安装程序的信息。
在这里插入图片描述

可以通过Windows注册表隐藏安装应用程序的条目。但首先,需要了解Windows如何在控制面板中构建您看到的已安装程序列表。您可以在一个三个注册表键中的一个中找到有关安装应用程序的信息:

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall – 所有设备用户的程序的通用列表;
  • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall – 这个注册表键包含在x64 Windows构建上安装的x86应用程序的条目;
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall – 仅包含当前用户安装的应用程序。

Windows根据这些注册表键中的条目生成您在设置或控制面板中看到的已安装程序的列表。

在我的案例中,7-zip是安装到所有设备用户的程序,因此它的条目位于用户注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall中。

找到应用程序的注册表键(在示例中是7-zip),并创建一个新的32位DWORD注册表参数,名称为SystemComponent,值为1SystemComponent = dword: 00000001

在这里插入图片描述

刷新安装程序列表窗口(按F5键)。7-zip的条目应该从列表中消失。
在这里插入图片描述

程序的条目也会从现代设置中的已安装程序列表中消失。
在这里插入图片描述

您可以从命令提示符隐藏程序。以下是可以在您的脚本和批处理文件中使用的此类命令的示例(此命令将隐藏安装的7-Zip归档程序):

REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\7-zip" /v SystemComponent /t REG_DWORD /d 1 /f

要再次使程序可见,只需删除SystemComponent参数(或使用命令:REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\7-zip" /v SystemComponent /t REG_DWORD /d 0 /f将其值更改为0

注意:系统应用程序,如C++的再发行包或.NET Framework的版本,不能以这种方式隐藏。

使用PowerShell脚本隐藏安装的应用程序

如果您需要一次性隐藏多个应用程序,可以使用以下PowerShell脚本。要隐藏的程序列表在AppsToHide变量中指定。然后,脚本检查所有注册表键,找到具有程序条目的键,并在每个键中创建一个值为1SystemComponent注册表参数(如果参数已经存在,则将其值更改为1)。

$RegPaths = @(
    "HKLM:Software\Microsoft\Windows\CurrentVersion\Uninstall\*",
    "HKLM:Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*",
    "HKCU:Software\Microsoft\Windows\CurrentVersion\Uninstall\*"
)
$AppsToHide = @(
    "*7-Zip*",
    "*Firefox*"
)
foreach ($App in $AppsToHide) {
    foreach ($Path in $RegPaths) {
        $AppKey = (Get-ItemProperty $Path -ErrorAction SilentlyContinue | Where-Object { $_.DisplayName -like $($App) }).PSPath
        if ($null -ne $AppKey) {
            $SystemComponent = Get-ItemProperty $AppKey -Name SystemComponent -ErrorAction SilentlyContinue
            if (!($SystemComponent)) {
                New-ItemProperty "$AppKey" -Name "SystemComponent" -Value 1 -PropertyType DWord
            }
            else {
                $SystemComponentValue = (Get-ItemProperty $AppKey -Name SystemComponent -ErrorAction SilentlyContinue).SystemComponent
                if ($SystemComponentValue -eq 0) {
                    Set-ItemProperty "$AppKey" -Name "SystemComponent" -Value 1
                }
            }
        }
    }
}

在示例中,脚本用于隐藏Firefox和7-zip应用程序。您可以通过GPO在域计算机上运行此PowerShell脚本。

如何隐藏所有安装的应用程序以防止其他用户查看?

您可以通过编辑本地组策略参数来完全隐藏用户控制面板中的所有安装程序。

打开本地组策略编辑器(gpedit.msc),转到用户配置 -> 管理模板 -> 控制面板 -> 程序,然后启用隐藏“程序和功能”页面隐藏程序控制面板的策略。

在这里插入图片描述

更新组策略设置,使用命令gpupdate /force,然后检查控制面板中的“程序和功能”窗口是否对用户不可见。
在控制面板中,应该显示消息系统管理员已禁用“程序和功能”
在这里插入图片描述在设置 – 应用 – 安装的应用 中,虽然仍然显示了对应的程序,但是无法修改和卸载。
在这里插入图片描述

也可以使用以下命令防止在Windows控制面板中显示安装的Windows程序的列表:

REG add "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Programs" /v NoProgramsCPL /t REG_DWORD /d 1 /f
REG add "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Programs" /v NoProgramsAndFeatures /t REG_DWORD /d 1 /f

在这里插入图片描述

结语

在考虑隐藏Windows系统中的安装程序时,建议根据个人或组织的特定需求慎重行事。虽然组策略提供了一种强大的方法来控制用户界面和系统行为,但它可能不是在所有情况下都适用的最佳解决方案。特别是,对于只想隐藏少数特定程序而非整个程序列表的用户来说,直接通过注册表进行逐一隐藏可能更为精准和有效。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/629589.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于SpringBoot的竹宣非遗宣传网站

摘要 随着互联网的普及和数字化时代的到来,竹编等非物质文化遗产的保护与传承面临新的机遇和挑战。该研究旨在使用SpringBoot后端框架与Vue前端框架,构建一个竹编非遗宣传网站,通过丰富的展示形式和交互体验,提升公众对竹编这一非…

详解JS的URL()和URLSearchParams() API接口

两个 API 接口定义 URL() 构造函数返回一个新创建的 URL 对象,表示由一组参数定义的 URL。 URLSearchParams 接口定义了一些实用的方法来处理 URL 的查询字符串。 快速了解两个 API 在哪里用 以前我们要对地址栏中的 URL 地址进行分析处理,需要自己进…

GPT-4o来了,超拟人语音合成系统的关键都在这里

在众多科技企业竞相提升大模型的多模态能力,致力于将文本总结、图像编辑等功能集成到移动设备中的时候,OpenAI 又双叒叕上新了!CEO奥特曼用了3个字母表达他的状态:her(就像电影《Her》一样)。 5月14日凌晨&…

Android ashmem 原理分析

源码基于:Andoird U Kernel-5.10 0. 简介 ashmem 称为匿名共享内存(Anonymous Shared Memory),它以驱动程序的形式实现在内核空间中。它有两个特点: 能否辅助内存管理系统来有效地管理不再使用的内存块(pin / unpin); 通过Bind…

嵌入式学习-PWM输出比较

简介 PWM技术 输出比较框图介绍 定时器部分 比较器控制部分 输出控制部分 相关寄存器

Linux:文件、fd

Linux:文件、fd 前言一、C语言中常见打开文件的函数接口二、打开文件的系统调用接口三、文件描述符fd四、为何Linux下一切皆文件 前言 文件 内容 属性 所有对文件的操作本质上就分为:对内容的修改和对属性的修改。  内容是数据,属性也是数据。所以存…

web自动化系列-使用普通模式编写测试用例以及存在问题(十六)

前面已经把selenium的主要操作介绍完毕 ,接下来我们通过编写几条测试用例感受下selenium的用法 。 1.用例需求 还是以登录为例 ,需要实现的测试用例为 : case1:输入正确的用户名和密码进行登录case2 : 输入正确的用户名和错误的…

小红书“脆皮”用户健康研究报告

人均脆皮、血脉觉醒、爆肝打工、脱发危机……各式各样的健康议题不断被推上生活舞台,年轻人纷纷自嘲:“20多岁的年纪,却有了60多岁的身体”。 近年,大健康行业欣欣向荣,小红书成为大众分享健康生活的聚集地&#xff0c…

Python 小抄

Python 备忘单 目录 1.语法和空格 2.注释 3.数字和运算 4.字符串处理 5.列表、元组和字典 6.JSON 7.循环 8.文件处理 9.函数 10.处理日期时间 11.NumPy 12.Pandas 要运行单元格,请按 ShiftEnter 或单击页面顶部的 Run(运行)。 1.语法和空格…

关于 vs2019 c++20 规范里的一个全局函数 _Test_callable

(1)看名思议,觉得这个函数可以测试其形参是否是可以被调用的函数,或可调用对象? 不,这个名字不科学。有误导,故特别列出。看下其源码(该函数位于 头文件): 辅…

50.乐理基础-拍号的类型-混合拍子

混合拍子的定义: 1.由不同的单拍子组合起来的,如图1。 2.因为组合顺序有多种可能,所以次强拍的位置也有多种可能,如图3。 图1:四二拍是单拍子,四三拍也是单拍子,四二拍 与 四三拍就是 不同的单拍…

Google Ads被暂停的原因,如何防范?

跨境出海业务少不了需要做Google Ads推广业务;其中让投手们闻风丧胆的消息就是帐户被暂停。当 Google 检测到任何违反其政策且可能损害用户在线体验的行为时,就会发生这种情况。那么如何在做广告推广的同时,保证账号不被封禁呢?看…

59.基于SSM实现的网上花店系统(项目 + 论文)

项目介绍 本站是一个B/S模式系统,网上花店是在MySQL中建立数据表保存信息,运用SSMVue框架和Java语言编写。并按照软件设计开发流程进行设计实现充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的特点,使得基于SSM的网…

Springboot+MybatisPlus如何实现带验证码的登录功能

实现带验证码的登录功能由两部分组成::1、验证码的获取 2、登录(进行用户名、密码和验证码的判断) 获取验证码 获取验证码需要使用HuTool中的CaptchaUtil.createLineCaptcha()来定义验证码的长度、宽度、验证码位数以及干扰线…

算术平均数

算术平均数(average)是一组数据相加后除以数据的个数而得到的结果,是度量数据水平的常用统计量,在参数估计和假设检验中经常用到。比如:用职工平均工资来衡量职工工资的一般水平,用平均体重来观察某一人群体…

uac驱动之const修饰的变量和const修饰的指针

const int*p // p所指向的空间是常量 不可修改 ,但p可以修改 int*const p // p所指向的空间是可以修改 ,p不可以修改 #include <stdio.h> #include <string.h>struct usb_string {char id;const char *s; };enum {STR_ASSOC,STR_AC_IF,STR_USB_OUT_IT,STR_USB_O…

4种企业防泄密的办法,强烈推荐第二种

4种企业防泄密的办法&#xff0c;强烈推荐第二种 企业信息泄密常见的原因有内部人员、黑客、违规收集信息、第三方合作商&#xff0c;以下将为你详细分析这些泄密原因以及应对的方法。 1、内部人员泄密 内部员工由于能够接触到敏感数据&#xff0c;成为主要的泄露数据群体。这…

2024年中国国际厨卫家居展览会(上海KIB厨卫展)

中国国际厨卫家居博览会&#xff08;KIB&#xff09;由中国五金制品协会、中国国际贸易促进委员会轻工行业分会、北京奥维云网大数据科技股份有限公司主办。从最初的“中国国际橱柜、厨房卫浴产品与技术博览会(CIKB&#xff09;”&#xff0c;到2001年与中国国际五金展&#xf…

【React】 打包扫描出现高风险文件 YUI 版本太低 JSEncrypt

漏洞定位 扫出漏洞的情况&#xff0c;多是在说下面几个工具&#xff1a; jquery js-cookie jsencrypt 参考链接 YUI:2.9.0 (Link) http://www.cvedetails.com/cve/CVE-2012-5883/ 1.于是在打包后的代码中搜索 YUI&#xff08;不区分大小写&#xff0c;不进行全字匹配&…

数据结构初阶 顺序表的补充

一. 题目的要求 写出三种链表的接口函数 它们的功能分别是 1 查找数的位置 2 在pos位置插入值 3 在pos位置删除值 二. 实现pos 这个其实很简单 找到一步步遍历 找到这个数字就返回 找不到就提示用户下 这个数字不存在 int SLFind(SL* ps,SLDateType x) {assert(ps);int…