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

news2024/11/15 12:04:40

由于维护人员或用户可能无意中通过“程序和功能”选项删除对业务至关重要的软件,这导致服务中断或安全风险。为了防止此类情况发生,确保只有授权的用户才能访问和管理系统中的程序。为了实现这一目标,我们将探讨如何在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系统中的安装程序时,建议根据个人或组织的特定需求慎重行事。虽然组策略提供了一种强大的方法来控制用户界面和系统行为,但它可能不是在所有情况下都适用的最佳解决方案。特别是,对于只想隐藏少数特定程序而非整个程序列表的用户来说,直接通过注册表进行逐一隐藏可能更为精准和有效。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用高防IP是应对网络安全的重要措施

使用高防IP(High Defense IP)在现代网络环境中显得尤为重要,这主要源于以下几个方面的原因: 一、网络安全形势严峻 随着互联网的快速发展,网络安全问题日益突出。各种网络攻击手段层出不穷,如分布式拒绝服…

R语言基础--文件读写

From生物技能树(R第五节) 文章目录 一、文件读写1.注意用project管理工作目录2、文件读取1、读取.txt文件2、读取.csv文件注意:数据框不允许重复的行名 3.数据框的导出4.读取文件的其他方式(用于读取/导出文件的R包)--经验1.base2.readr3.dat…

【会议征稿】2024年机器人前沿技术与创新国际会议(FTIR 2024, 7/19-21)

2024年机器人前沿技术与创新国际会议(FTIR 2024)将于2024年7月19-21日在中国杭州举行。FTIR 2024聚焦前沿技术与创新,将把机器人领域的创新学者和专家聚集到一个共同的论坛。会议的主要目标是促进机器人的研究和开发活动,另一个目…

使用单目相机前后帧特征点匹配进行3D深度估计的方法

在计算机视觉和机器人领域,三维空间感知是实现环境理解和交互的核心技术之一。特别是在资源受限的场合,使用针孔模型的单目相机进行深度估计成为了一种既经济又实用的解决方案。单目深度估计技术依赖于从连续视频帧中提取和匹配特征点,以估计…

企业大模型如何成为自己数据的“百科全书”?

作者 | 郭炜 编辑 | Debra Chen 在当今的商业环境中,大数据的管理和应用已经成为企业决策和运营的核心组成部分。然而,随着数据量的爆炸性增长,如何有效利用这些数据成为了一个普遍的挑战。 本文将探讨大数据架构、大模型的集成&#xff0…

线上网页点击菜单没有反应 报错ChunkLoadError:Loading chunk chunk-***** failed

现象 点击菜单无反应并且控制台报错Loading chunk chunk-***** failed 具体错误现象截图如下 分析 在线上页面已经打开的情况下,重新打包部署了前端项目。每次打包,js文件的hash值都会发生改变,因为我们的路由采用了懒加载,未…

吴恩达深度学习笔记:优化算法 (Optimization algorithms)2.7

目录 第二门课: 改善深层神经网络:超参数调试、正 则 化 以 及 优 化 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)第二周:优化算法 (Optimization algorithms)2.7 RMSprop 第二门课: 改善深层神经网络&am…

代码复现|Demucs Music Source Separation

一、背景介绍 Demucs是一个开源的音源分离项目。 Demucs在算法层面前后经历了三次大版本的进化,最原始的V1版本是:编解码LSTM。具体算法原理图如下所示。该版本在时域进行音源分离。关于阅读笔记请点击这篇文章。 V1版本原理图 V2版本是同时使用时域和频…

小白必看:新手学编程必会的100个代码

前言 我记得刚开始接触编程的时候,觉得太难了。 也很好奇,写代码的那些人也太厉害了吧?全是英文的,他们的英文水平一定很好吧? 他们是怎么记住这么多代码格式的?而且错了一个标点符号,整个程…

Flash attention入门

一、目录 flash attentionGPU运算流程flash attention 原理flash attention 与 standard attention 时间/内存 对比。flash attention 算法实现比较flash attention 计算、memory-efficient attention 等不同内核下用时 二、实现 flash attention 目的: 提高运行速…

NGM-SLAM:首创融合神经辐射场子图的3DGS-SLAM,问鼎SOTA!

论文标题: NGM-SLAM: Gaussian Splatting SLAM with Radiance Field Submap 论文作者: Mingrui Li, Jingwei Huang, Lei Sun Aaron, Xuxiang Tian, Tianchen Deng, Hongyu Wang 导读: 3DGS技术因其性能卓越而备受关注,3DGS-SLA…

GPT-4o 炸裂发布!你竟然还没用上?(附详细教程)

今天AI界的爆炸新闻非chatgpt-4o莫属,从早上到现在随处可见的文章推送,视频推送。 大家或多或少都有耳闻了,今天主要讲一讲我们普通人到底怎么用?如果不氪金行不行?我就想体验一下可不可以?带着问题往下看 …

Python 海龟画图(Turtle)命令大全

移动和绘制 forward() | fd() 使用语法: ​​turtle.forward(距离)​​ ​​turtle.fd(距离)​​ 参数说明: 距离 一个数字 (整数 或者 浮点) (注:单位是像素) 代码示例: import turtle turtle.forward(200) 效果: backward () | bk() | back() 使用语法: ​…

掏心经验分享,软考中项0基础入门篇!

想备考下半年中项(系统集成项目管理工程师)的朋友,不知道如何了解软考中项,今天给大家整理一篇关于我自己在备考软考时的一些考量和踩过的一些坑。(无广,放心看) 很多小伙伴总是听大家说软考中…

你是学会了还是学废了:Elasticsearch 7 集群拷贝到其它环境如何重置密码

欢迎您关注我的公众号【尚雷的驿站】 公众号:尚雷的驿站 CSDN :https://blog.csdn.net/shlei5580 墨天轮:https://www.modb.pro/u/2436 PGFans:https://www.pgfans.cn/user/home?userId4159 前言 本文描述了将生产ES集群打包拷贝…

线性模型之岭回归的用法

实战:使用岭回归模型 完整代码: import numpy as np import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression from sklearn.datasets import make_regression from sklearn.model_selection import train_test_split fro…

平芯微PW4056HH中文规格书

概述 PW4056HH 是一款完整的采用恒定电流/恒定电压的高压、大电流、单节锂离子电池线性充电 IC。充电电流可达 1A。输入 MAX 低工作电压 3.75V,降低充电功耗,提高效率。 PW4056HH 采用了内部 PMOS 架构,加上防反充电路,不需要外部…

Java开发大厂面试第04讲:深入理解ThreadPoolExecutor,参数含义与源码执行流程全解

线程池是为了避免线程频繁的创建和销毁带来的性能消耗,而建立的一种池化技术,它是把已创建的线程放入“池”中,当有任务来临时就可以重用已有的线程,无需等待创建的过程,这样就可以有效提高程序的响应速度。但如果要说…

Linux服务器lvm磁盘管理fdisk和df磁盘大小不同修改

服务器端由于硬盘是通过VCenter原来100G磁盘复制的虚拟机,复制完成后,原来100G的磁盘通过选择 磁盘重新复制出150G的磁盘,开机后发现还是原来的100G的磁盘,通过fdisk -l 查看有个sdb是150G, 但是已经划转的lvm盘只有100G, 通过df查看也是原来的100G: pvs查看pv里也是10…

【链路层和局域网】

文章目录 链路层和局域网网络节点的连接方式数据链路层和局域网链路层导论链路层:上下文链路层服务链路层在哪里实现?适配器通信错误检测奇偶校验校验和:CRC(循环冗余校验)多点访问链路和协议多路访问协议MAC&#xff…