精华内容
下载资源
问答
  • windows列表
    千次阅读
    2020-11-27 17:43:32

    通常情况下,查看Windows资源管理器中文件夹大小都需要右键查看文件夹属性,才可以看到,或者从文件夹选项中勾选鼠标指向文件夹和桌面项时显示提示信息,这样可以将鼠标移动到文件夹上查看文件夹的大小,但是这也不太方便,其实想要达到的效果是,在Windows资源管理器中文件夹列表中可以直接展示文件夹大小。

    推荐一个开源工具Folder Size,在Windows 2000和Windows XP中可以直接修改资源管理器文件夹列表项,增加一列展示文件夹容量,在Windows Vista 和 更高的版本中 (7 and 8),会在资源管理器窗口边上增加一个浮动的窗口,展示文件夹大小。

    官网:Folder Size

    更多相关内容
  • 这是[信安成长计划]的第 19 篇文章 0x00 目录 0x01 介绍 0x02 DACL 0x03 创建DACL 0x04 文件读取测试 0x05 进程注入测试 0x06 原理分析 Win10_x64_20H2 0x07 参考文章 在最后分析的时候纠正一下...访问控制列表(Acce

    这是[信安成长计划]的第 19 篇文章

    0x00 目录

    0x01 介绍

    0x02 DACL

    0x03 创建DACL

    0x04 文件读取测试

    0x05 进程注入测试

    0x06 原理分析 Win10_x64_20H2

    0x07 参考文章

    在最后分析的时候纠正一下网上大批分析文章中的一个错误,东西只有自己实践了才知道

    0x01 介绍

    在上一篇讲强制完整性控制的时候提到过,在权限检查的时候,会先进行强制完整性检查,然后再进行 DACL 检查,DACL 就是包含在这次要提到的 ACL 当中的。

    访问控制列表(Access Control List,ACL),其中的每一项叫做访问控制条目(Access Control Entries,ACE)。

    访问控制列表是属于安全对象的安全描述符的,根据文档可以看出来,安全描述符中包含了两个跟 ACL 相关的信息,DACL(discretionary access control list)和 SACL(system access control list)

    DACL 可以对发起请求的用户或者组进行权限控制,允许或者拒绝它们的访问

    SACL 使监视对受保护对象的访问成为可能,其信息会在安全日志中被记录

    图片

    那所谓的安全对象又是什么,根据微软提供的文档可以发现,文件、目录、进程、线程、注册表、服务、管道、打印机、网络共享等等都属于安全对象,也就意味着它们都拥有 DACL 和 SACL,也就说明了所有这些内容都是可以进行权限控制和日志记录的。

    说了这么多,那到底 DACL 和 SACL 都是什么东西,这其实就是我们平时最常见的安全属性界面

    图片

    DACL、SACL、ACE 分别对应的就是下面这些

    图片

    接下来我们重点来说一下 DACL

    0x02 DACL

    对于 DACL 的不同情况,Windows 也会有不同的处理方式

    如果安全描述符中没有 DACL,即 DACL 为 NULL,Windows 会允许任何用户的完全访问权限。

    如果有 DACL,但是 DACL 为空,即没有 ACE,Windows 将不允许任何用户的任何访问

    如果有 DACL,也有 ACE,Windows 将会依次检查 ACE,直到找到一个或多个 ACE 允许所有请求的访问权限,或者直到任何请求的访问权限被拒绝

    对于前两种就不必多说了,主要来说一下第三种情况,这里就借用微软的图来说一下

    图片

    Thread A 拥有 Andrew 的访问令牌,当 Thread A 访问 Object 对象的时候,会从 DACL 中的第一个 ACE 开始检查,第一个权限是 Access denied,用户名是 Andrew,刚好与 Thread A 相同,就发生了拒绝访问。

    Thread B 拥有 Jane 的访问令牌,当 Thread B 访问 Object 对象的时候,也会从第一个 ACE 开始检查,第一个并不满足;然后检查第二个,Group A 的允许写,而 Jane 是属于 Group A 的,所以获得了写的权限;然后检查第三个,Everyone 有读和执行权限,所以 Thread B 就有了读、写、执行权限。

    根据上面这个例子也能够看出来,ACE 顺序的重要性,如果第一个不是对 Andrew 的禁止的话,Thread A 就已经获取到权限了。

    同时 ACE 也是可以被继承的,在每个 ACE 中都有一个专门标记与继承相关信息的标志位,一般最常见的就是全继承,父对象与子对象具有相同的权限控制和审计设置。

    需要注意的是,继承而来的 ACE,在子对象中是不能进行修改的,找两个例子就可以看出来了

    这一项是没有被继承的,权限位是可以进行修改的

    图片

    如果是继承的话,所有的权限位直接为灰色,不可修改

    图片

    0x03 创建DACL

    先说一个小插曲,刚开始的时候,我还想着 ProcessHacker 会有相关的代码,是不是可以直接拿来用了,然后在源码里翻了半天,并没有发现有相关的代码,最后在 ProcessHacker 官方论坛上发现了如下的对话

    图片

    EditSecurity 函数上面写的很清楚,这个展示页是专门让用户编辑 ACE 的,它属于一个专门的 DLL,名字是 Aclui.dll

    图片

    除了使用上面那样在图形化界面中修改之外,还可以通过 API 来进行处理

    整个的流程微软也已经列出来了 https://docs.microsoft.com/en-us/windows/win32/secbp/creating-a-dacl

    唯一感觉不甚友好的就是设置其权限时候所使用的 SDDL,这个可读性确实是有点差了

    图片

    这里就不实践了,相关的文档,还有一份大佬的博客,我一起放到最后的参考链接当中

    还可以通过我们上一篇文章中所提到的命令行工具 icacls 来完成,它在示例当中也描述的很清楚了

    图片

    除此之外,PowerShell 真是个好东西,有一个 Get-Acl 命令也可以查询

    图片

    它也能获取注册表的访问权限

    图片

    就查看的信息而言,也更加的清晰了

    图片

    当然,也能使用 Set-Acl 命令对其进行修改,大佬的文章链接我直接贴到最后的参考文献里

    0x04 文件读取测试

    首先我们先看一下文件当前的 ACL

    图片

    由于当前用户属于 Administrator 组,所以读取是没有问题的

    图片

    然后手动删除掉权限,由于当前的权限都是继承过来的,所以无法直接删除

    图片

    但是在编辑框中可以很方便的禁用继承关系,我们可以直接禁用掉,最好还是选择第一个,因为当前所有的 ACE 都是继承过来的,如果删除掉所有的继承权限的话,当前的 DACL 就会变成一个空的 DACL,那将无法进行访问了!

    图片

    然后对权限进行删除,这里我只保留了 SYSTEM 权限

    图片

    访问直接就被拒绝了

    图片

    0x05 进程注入测试

    与上次一样,我们还是使用 RDI 来进行测试

    先起一个 notepad 进程,可以发现我们的当前账户 admin 是拥有完全控制权限的

    图片

    然后使用 RDI 来进行注入,一切正常

    图片

    接下来再找一个当前没有权限的来尝试一下注入,为了排除完整性带来的干扰,我们直接修改这个 notepad 的 ACE,直接删除当前用户

    图片

    然后再来进行测试,可以发现,直接无法打开目标进程了,返回的错误码是拒绝访问

    图片

    0x06 原理分析 Win10_x64_20H2

    我们以这个 winlogon 为例

    图片

    先取到 EPROCESS 结构

    图片

    看一下对象头的结构,SecurityDescriptor 存在里面,这一点我们在刚开始的时候也说过了

    图片

    要取到当前进程的结构头,这里需要注意的是,SecurityDescriptor 与 Token 一样,最后四位都是一个快速引用的东西(虽然现在还不太明白是干什么用的)

    图片

    接着就来看一下 _SECURITY_DESCRIPTOR 结构当中到底存储了哪些内容

    图片

    虽然能够看到 SACL、DACL 等信息,但是有点问题,这些地址很明显是不正确的,它们明显不是地址,也是读不出来的

    图片

    经过查找,发现网上在碰到这里的时候,都没有看这个结构的数据,直接从首地址加上 0x30 的偏移找到 DACL,为了能更好的明白 Windows 在这个时候在做什么,可以一个与获取 DACL 有关的函数

    图片

    通过微软文档可以看到这个函数所用到的参数

    图片

    这里的 r8 寄存器就是用来存储返回的 Dacl 的指针,如果按照 _SECURITY_DESCRIPTOR 结构来验证的话,这里先取到了 Group 中的值,然后加上 _SECURITY_DESCRIPTOR 的地址,最后直接返回给了 r8,这在逻辑上是完全讲不通的

    图片

    但是就在分析的时候,无意中发现了另外的一个结构 _SECURITY_DESCRIPTOR_RELATIVE,看名字当前的位置应该都是相对偏移了,感觉有可能是正确的

    图片

    再拿刚刚的逻辑来分析一下,很明显是对的上了

    图片

    那就回到前面,继续用这个结构进行分析,可以看到 Dacl 处的 0x30 偏移,这也就是网上都在说结构错了,需要 +0x30 才能找到 Dacl 的真正原因

    图片

    按照刚刚分析函数的逻辑,可以直接取到 DACL 的地址

    图片

    因为它们还是 ACL 结构的,所以继续查看结构体,可以看到当前 ACL 的大小是 0x3c,当前 ACL 当中有 2 个 ACE

    图片

    接下来应该查找 ACE 了,但是并没有发现与 ACE 有关的结构,经过搜索,发现在 Win32 的 API 里有一个与 ACE 有关的结构 _ACE_HEADER,可以看到里面有 ACE 的类型、大小等信息

    图片

    根据类型可以找到更多的与 ACE 相关的结构,比如 ACCESS_ALLOWED_ACE

    图片

    这样就都串起来了,每一项 ACE 都有一个 ACE_HEADER,然后根据类型的不同,后面跟着的是不同的数据结构

    但是还有个问题,ACE 到底该怎么取,从哪里开始取,接下来就来分析一下 RtlGetAce 函数,根据参数可以很明显的发现,他会先传入 ACL,然后根据要获取的 ACE 的索引进行查找,最后再进行返回

    图片

    上面这些判断并不是关键,下面的循环取值才是关键要看到的内容

    先取到 ACL 的大小,然后偏移到 ACL 的后面

    r9 是 rcx+8 的地址,目前也就是 ACL 的头的结尾位置,加二并将值赋给 eax,因为紧接着是 _ACE_HEADER 结构,所以 eax 就是当前 ACE 的大小

    r8 用来循环计数,判断 AceIndex 的,我们暂且不用关心,只看它是怎么获取的

    将 r9 加上大小,然后赋值回去,就返回 ace 了

    这里看着是跳过了第一个 ACE,实际上是因为当 AceIndex 为 0 时,在上面 rcx+8 的时候就已经是其地址了,所以就不会进入当前的这个循环

    图片

    在分析完结构以后,继续在 WinDBG 当中看一下

    第一位是 Type,第二位是 Flags,第三位是 Size,紧接着四位是 Mask,接着后面是 Sid

    图片

    Type 为 0,就是 ACCESS_ALLOWED_ACE,虽然最后的 Sid 只是一个 DWORD 类型,但是根据名字就可以看出来了,这只是记录一下地址的,总大小在前面已经有记录了

    图片

    对于 ACCESS_MASK,就是用来描述当前权限的

    图片

    它主要分为了几个部分,对于一般和标准的都有详细标记,至于特殊权限位,没有查到详细的内容,感兴趣可以挨个试一试,链接我全部放到最后的参考文章当中

    图片

    接下来就是 SID 了,它是有结构的,可以直接进行查看

    图片

    这样 ACE 也就解析出来了

    第一个是 S-1-5-18 即 SYSTEM 账户允许 STANDARD_RIGHTS_ALL 和 SPECIFIC_RIGHTS_ALL 权限

    第二个 SID 就是 S-1-5-32-544,可以查到他对应的是账户是 Administrators

    图片

    这也就刚开始看到的 ACE 项所对应了

    图片

    这样也就完成了整个 DACL 的查找

    0x07 参考文章

    1.https://docs.microsoft.com/en-us/windows/win32/secauthz/access-control-lists

    2.https://docs.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-security_descriptor

    3.https://docs.microsoft.com/en-us/windows/win32/secauthz/securable-objects

    4.https://docs.microsoft.com/en-us/windows/win32/secauthz/securable-objects

    5.https://docs.microsoft.com/en-us/windows/win32/secauthz/dacls-and-aces

    6.https://docs.microsoft.com/en-us/windows/win32/secauthz/how-dacls-control-access-to-an-object

    7.https://www.cnblogs.com/cdaniu/p/15630284.html

    8.https://helgeklein.com/blog/permissions-a-primer-or-dacl-sacl-owner-sid-and-ace-explained/

    9.https://book.hacktricks.xyz/windows/windows-local-privilege-escalation/acls-dacls-sacls-aces

    10.https://secureidentity.se/acl-dacl-sacl-and-the-ace/

    11.https://wj32.org/processhacker/forums/viewtopic.php?t=2568

    12.https://docs.microsoft.com/en-us/windows/win32/api/aclui/nf-aclui-editsecurity

    13.https://docs.microsoft.com/en-us/windows/win32/secbp/creating-a-dacl

    14.https://www.cnblogs.com/iBinary/p/11399114.html#tid-HABck4

    15.https://docs.microsoft.com/en-us/windows/win32/secauthz/ace-strings

    16.https://myzxcg.com/2021/08/Windows-%E8%AE%BF%E9%97%AE%E6%8E%A7%E5%88%B6%E6%A8%A1%E5%9E%8B%E4%BA%8C/

    17.https://www.redteaming.top/2020/02/03/Windows%E2%80%94%E2%80%94Access-Control-List/

    18.https://3gstudent.github.io/%E6%B8%97%E9%80%8F%E6%8A%80%E5%B7%A7-Windows%E4%B8%8B%E7%9A%84Access-Control-List

    19.https://blog.csdn.net/sunyikuyu/article/details/9041067

    20.https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/ntifs/nf-ntifs-rtlgetdaclsecuritydescriptor

    21.https://improsec.com/tech-blog/windows-kernel-shellcode-on-windows-10-part-2

    22.https://docs.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-ace_header

    23.https://docs.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-access_allowed_ace

    24.https://docs.microsoft.com/en-us/windows/win32/secauthz/access-mask

    25.https://docs.microsoft.com/en-us/windows-hardware/drivers/ifs/access-mask

    展开全文
  • windows访问控制列表ACL

    千次阅读 2019-07-15 12:56:32
    文章目录术语定义分类DACLSACL安全对象(so) &...windows访问控制列表 --ACL(Access Control List) 关于授权(authorization) 与 访问控制(Acess Control) 微软官网详细介绍: https://docs.microsoft.com/zh-cn...


    windows访问控制列表 --ACL(Access Control List)

    关于授权(authorization) 与 访问控制(Acess Control)

    微软官网详细介绍:

    1. https://docs.microsoft.com/zh-cn/windows/win32/secauthz/authorization-portal
    2. https://docs.microsoft.com/zh-cn/windows/win32/secauthz/access-control

    术语

    • ACL: 访问控制列表(ACL,Access Control Lists)。
    • ACE: 访问控制项(ACE,Access Control ITEM)
    • SO : 安全对象 (securable object)
    • SD : 安全描述符 (securable Descriptors)
    • SID : 安全标识符 (securable identifiers)
    • ADSI : Active Directory服务接口(service interface)

    定义

    ACL是一个windows中的表示用户(组)权限的列表。

    ACL与ACE

    分类

    ACL分为两类

    1. Discretionary Access Control List (DACL) 自由访问控制列表
    2. System Access Control List (SACL) 系统访问控制列表

    DACL

    DACL列表包含了用户和组的列表,以及相应的权限,允许或拒绝。每一个用户或组在任意访问控制列表中都有特殊的权限。

    DACL是安全对象(securable object) 的一个属性,用来表示 安全对象 的访问权限的列表。

    当一个进程试图访问一个安全对象时,系统会检查该指向的DACL中的ACE。

    • 如果该对象没有DACL,允许任何访问。
    • 如果有DACL,但是其中没有ACE,拒绝所有访问。

    DACL控制访问控制的详细原理 https://docs.microsoft.com/zh-cn/windows/win32/secauthz/how-dacls-control-access-to-an-object

    SACL

    而SACL是为审核服务的,包含了对象被访问的时间,他们都是在sd(securable Descriptors——安全描述符)中的!

    SACL是系统中的一个列表,用来记录指定用户(组)、指定类型的访问的访问结果,并记录。

    安全对象(so) & 安全描述符(sd)

    安全对象

    安全对象(Securable Object): 微软官网解释

    以下引用内容来自微软官网:

    A securable object is an object that can have a security descriptor. All named Windows objects are securable. Some unnamed objects, such as process and thread objects, can have security descriptors too. For most securable objects, you can specify an object’s security descriptor in the function call that creates the object. For example, you can specify a security descriptor in the CreateFile and CreateProcess functions.

    In addition, the Windows security functions enable you to get and set the security information for securable objects created on operating systems other than Windows. The Windows security functions also provide support for using security descriptors with private, application-defined objects. For more information about private securable objects, see Client/Server Access Control.

    Each type of securable object defines its own set of specific access rights and its own mapping of generic access rights. For information about the specific and generic access rights for each type of securable object, see the overview for that type of object.

    译文:

    安全对象是可以具有安全描述符的对象。所有命名的Windows对象都是安全的。一些未命名的对象(例如进程和线程对象)也可以具有安全描述符。对于大多数安全对象,您可以在创建对象的函数调用中指定对象的安全描述符。例如,您可以在CreateFileCreateProcess函数中指定安全描述符。

    此外,Windows安全功能使您可以获取和设置在Windows以外的操作系统上创建的安全对象的安全信息。Windows安全功能还支持将安全描述符与私有的应用程序定义的对象一起使用。有关私有安全对象的详细信息,请参阅客户端/服务器访问控制

    每种类型的安全对象都定义了自己的一组特定访问权限以及它自己的通用访问权限映射。有关每种类型的安全对象的特定和通用访问权限的信息,请参阅该类型对象的概述。

    下表显示了用于操作某些常见安全对象的安全信息的函数.

    Object typeSecurity descriptor functions
    Files or directories on an NTFS file system
    (NTFS文件系统上的文件或目录)
    GetNamedSecurityInfo, SetNamedSecurityInfo, GetSecurityInfo, SetSecurityInfo
    Named pipes (命名管道)
    Anonymous pipes(匿名管道)
    GetSecurityInfo, SetSecurityInfo
    Processes(进程)
    Threads(线程)
    GetSecurityInfo, SetSecurityInfo
    File-mapping objects(文件映射对象)GetNamedSecurityInfo, SetNamedSecurityInfo, GetSecurityInfo, SetSecurityInfo
    Access tokens (访问令牌)SetKernelObjectSecurity, GetKernelObjectSecurity
    Window-management objects window stations and desktops (窗口管理对象(窗口站和桌面))GetSecurityInfo, SetSecurityInfo
    Registry keys(注册表项)GetNamedSecurityInfo, SetNamedSecurityInfo, GetSecurityInfo, SetSecurityInfo
    Windows services (Windows服务)GetNamedSecurityInfo, SetNamedSecurityInfo, GetSecurityInfo, SetSecurityInfo
    Local or remote printers (本地或远程打印机)GetNamedSecurityInfo, SetNamedSecurityInfo, GetSecurityInfo, SetSecurityInfo
    Network shares (网络共享)GetNamedSecurityInfo, SetNamedSecurityInfo, GetSecurityInfo, SetSecurityInfo
    Interprocess synchronization objects (events, mutexes, semaphores, and waitable timers) (进程间同步对象(事件,互斥锁,信号量和等待计时器))GetNamedSecurityInfo, SetNamedSecurityInfo, GetSecurityInfo, SetSecurityInfo
    Job objects(工作对象)GetNamedSecurityInfo, SetNamedSecurityInfo, GetSecurityInfo, SetSecurityInfo
    Directory service objects (目录服务对象)These objects are handled by Active Directory Objects. For more information, see Active Directory Service Interfaces. (这些对象由Active Directory对象处理。有关更多信息,请参阅Active Directory服务接口。)

    安全描述符

    安全描述符包含与安全对象关联的安全信息。安全描述符由SECURITY_DESCRIPTOR结构及其关联的安全信息组成。安全描述符可包含以下安全信息:

    • 对象的所有者和主要组的安全标识符(SID)。其标识了该信息是哪个对象的,也就是用于记录安全对象的ID。
    • 一个DACL,指定允许或拒绝特定用户或组的访问权限。当一个进程需要访问安全对象,系统就会检查DACL来决定进程的访问权。如果一个对象没有DACL,那么就是说这个对象是任何人都可以拥有完全的访问权限。
    • 一个SACL,指定为对象生成审核记录的访问尝试类型。其指出了在该对象上的一组存取方式(如,读、写、运行等)的存取控制权限细节的列表。
    • 一组控制位,用于限定安全描述符或其各个成员的含义。

    应用程序不得直接操作安全描述符的内容。Windows API提供了在对象的安全描述符中设置和检索安全信息的功能。此外,还有用于为新对象创建和初始化安全描述符的功能。

    在Active Directory对象上使用安全描述符的应用程序可以使用Windows安全功能或Active Directory服务接口(ADSI)提供的安全接口。有关ADSI安全性接口的详细信息,请参阅访问控制在Active Directory中的工作原理

    SECURITY_DESCRIPTOR结构体

    https://docs.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-security_descriptor

    该SECURITY_DESCRIPTOR结构包含与对象相关联的安全信息。应用程序使用此结构来设置和查询对象的安全状态。

    由于安全描述符的内部格式可能不同,因此我们建议应用程序不要直接修改SECURITY_DESCRIPTOR结构。要创建和操作安全描述符,请使用另请参阅中列出的函数。

    typedef struct _SECURITY_DESCRIPTOR {
      BYTE                        Revision;
      BYTE                        Sbz1;
      SECURITY_DESCRIPTOR_CONTROL Control;
      PSID                        Owner;
      PSID                        Group;
      PACL                        Sacl;
      PACL                        Dacl;
    } SECURITY_DESCRIPTOR, *PISECURITY_DESCRIPTOR;
    
    展开全文
  • windows10卸载程序If there’s a program lingering on your Windows “Add or Remove Programs” list that doesn’t belong, there are two easy tricks you and use to purge it from the list and tidy things ...
    windows10卸载程序

    windows10卸载程序

    If there’s a program lingering on your Windows “Add or Remove Programs” list that doesn’t belong, there are two easy tricks you and use to purge it from the list and tidy things up.

    如果Windows的“添加或删除程序”列表中有个不存在的程序,则可以通过两种简单的技巧将其从列表中清除并整理。

    The “Add or Remove Programs” list shows all the installed software on your Windows computer. In a perfect world, only applications that are currently installed would be displayed there, but sometimes a phantom listing persists even after a program is gone. Maybe you manually removed the program (which removes the uninstaller application Windows attempts to call later when you use the Add/Remove function), maybe some files are corrupt, or maybe the uninstaller was just poorly implemented by the software’s creator.

    “添加或删除程序”列表显示Windows计算机上所有已安装的软件。 在理想情况下,只有当前安装的应用程序会显示在此处,但有时即使程序消失了,幻象列表仍会保留。 可能是您手动删除了该程序(当您使用“添加/删除”功能时,该程序会删除Windows稍后尝试调用的卸载程序),可能某些文件已损坏,或者该卸载程序只是由软件创建者实施的。

    Regardless of what created the phantom entry, it is easy to remove either via a few quick edits to the Windows Registry or by using the popular CCleaner application to perform the task for you. By all means, try the CCleaner method first, because it’s fast and pretty much foolproof. If, for whatever reason, it doesn’t work (software problems are what got most of us into this mess in the first place after all) you can follow up by manually editing your registry. Let’s look at both methods now.

    不管是什么创建幻像条目,都可以通过对Windows注册表进行一些快速编辑或使用流行的CCleaner应用程序为您执行任务来轻松删除。 一定要先尝试CCleaner方法,因为它是快速的并且非常简单。 如果由于某种原因它不起作用(软件问题首先使我们大多数人陷入困境),则可以通过手动编辑注册表来跟进。 现在让我们看看这两种方法。

    使用CCleaner清除条目 (Purging Entries with CCleaner)

    To use CCleaner to purge your “Add or Remove Programs” list, simply download the application from the Piriform website here and run it. After running it, click on the large “Tools” tab in the left-hand navigation pane. Within the the Tools section, select “Uninstall” and then from the list of programs select the program you wish to remove the entry for. Select the “Delete” button.

    要使用CCleaner清除“添加或删除程序”列表,只需从此处的Piriform网站下载应用程序并运行它。 运行它后,单击左侧导航窗格中较大的“工具”选项卡。 在“工具”部分中,选择“卸载”,然后从程序列表中选择要为其删除条目的程序。 选择“删除”按钮。

    Delete, as opposed to “Uninstall”, will simply remove the entry from the program list and will not attempt to remove any installed software or bits left behind after a manual uninstall. Restart your computer for the changes to take effect.

    与“卸载”相对,“删除”将仅从程序列表中删除该条目,而不会尝试删除任何已安装的软件或手动卸载后遗留下来的部分。 重新启动计算机,以使更改生效。

    使用手动注册表编辑清除条目 (Purging Entries with Manual Registry Edits)

    If, for some reason, the CCleaner method didn’t work (or you simply wish to do it manually), it’s into the Registry we go. Type “regedit” in the Start Menu run box to launch the Registry Editor. Inside the registry, we’re going to make two potential stops (depending on whether not you’re running the 32-bit or 64-bit version of windows).

    如果由于某种原因CCleaner方法不起作用(或者您只是希望手动进行操作),我们就进入注册表。 在开始菜单运行框中键入“ regedit”以启动注册表编辑器。 在注册表内部,我们将进行两个潜在的停止(取决于您运行的是32位还是64位版本的Windows)。

    The first stop is for all Windows users. Within the editor, use the left-hand navigation pane to navigate the directory structure of the registry to this location:

    第一站适用于所有Windows用户。 在编辑器中,使用左侧导航窗格将注册表的目录结构导航到以下位置:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

    Within that registry directory, you will see two kinds of entries: software ID entry and human-readable software names. The first type of entries require more effort to identify; you will need to click on each individual entry and look for the name of the software in the description pane, labeled “DisplayName”, as seen below.

    在该注册表目录中,您将看到两种条目:软件ID条目和人类可读的软件名称。 第一种类型的条目需要更多的精力来识别。 您需要单击每个单独的条目,然后在描述窗格中标记为“ DisplayName”的软件名称进行查找,如下所示。

    Here we can see that the registry key ” {079FEF6F-9E83-4694-897D-69C30389B772} ” corresponds to the entry in the Add/Remove list labeled ” Python 3.6.1 Add to Path (64-bit) “. Before you invest too much time in checking the “DisplayName” setting of all the program entries with abstract IDs, scroll down first until you reach the human-readable names and check through them quickly for the software entry you’re looking for.

    在这里我们可以看到注册表项“ {079FEF6F-9E83-4694-897D-69C30389B772} ”对应于添加/删除列表中标有“ Python 3.6.1 Add to Path (64-bit) ”的条目。 在花太多时间检查所有带有抽象ID的程序条目的“ DisplayName”设置之前,请先向下滚动直到找到易于理解的名称,然后快速遍历它们以查找所需的软件条目。

    Once you locate the entry for the piece of software you wish to remove from the list, simply right click on it and select “Delete” on the registry key for the given application.

    找到要从列表中删除的软件条目后,只需右键单击它,然后在给定应用程序的注册表项上选择“删除”。

    The second stop, for users running the 64-bit version of Windows, is a totally separate sub-directory in the registry, located at:

    对于运行Windows 64位版本的用户,第二站是注册表中一个完全独立的子目录,位于:

    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall

    Here you will find, if entries for the applications are present, the exact same directory structure as we found in the previous \Uninstall directory, wherein some entries will be identified by an abstract ID and some will be identified by name. Don’t worry if there isn’t an entry here for the application you just removed in the previous section, not all applications have entries in both registry directories.

    在这里,如果存在用于应用程序的条目,则将发现与上一个\Uninstall目录中的目录结构完全相同,其中一些条目将由抽象ID标识,而某些条目将由名称标识。 不必担心上一节中刚刚删除的应用程序是否没有条目,并非所有应用程序都在两个注册表目录中都有条目。

    Once you’ve deleted the relevant entries for the applications you wish to remove, reboot for the changes to take effect.

    删除了要删除的应用程序的相关条目后,请重新启动以使更改生效。



    That’s all there is to it. Whether because of an uninstaller failure or because you got a little overexcited and manually deleted the program directory, with the CCleaner and registry editor at your finger tips your Add and Remove Programs list is clean and up-to-date once again.

    这里的所有都是它的。 无论是由于卸载程序故障还是由于您过分激动而手动删除程序目录,借助CCleaner和注册表编辑器,您的“添加和删除程序”列表都是干净的,并且是最新的。

    翻译自: https://www.howtogeek.com/314734/how-to-manually-remove-programs-from-the-windows-uninstall-program-list/

    windows10卸载程序

    展开全文
  • 获取windows已安装应用列表

    千次阅读 2020-07-09 16:43:18
    windows系统安装的软件在注册表中有记录,路径为:注册表根句柄KEY_LOCAL_MACHINE,路径为"Software\Microsoft\Windows\CurrentVersion\Uninstall",涉及到32位应用和64位应用,如果是64位系统,32位的应用则存放在...
  • 获取WINDOWS打印机列表

    千次阅读 2019-01-08 06:54:20
    获取WINDOWS打印机列表 如何知道WINDOWS已经安装了哪些打印机? 1) usesVcl.Printers 2) Printer.Printers // property Printers: TStrings read GetPrinters; 3)  
  • 如果您希望在 Windows 10 或 Windows Server 上查询已安装应用程序的列表,可以使用以下各种方法。 1:通过 Windows 设置:这是在 Windows 中查看已安装应用程序列表的最简单方法 - 如下所示导航至 Windows 设置...
  • To interact with the services panel from the command line, Windows provides the Net utility. From the command prompt, you can use this utility to start, stop, pause and continue services. What most pe...
  • 最近有win10系统用户到本站咨询这样一个情况,就是要安装打印机的时候,突然提示无法从Windows Update获取设备列表怎,遇到这样的问题该怎么办呢,本文就给大家讲解一下win10系统安装打印机提示无法从Windows Update...
  • 1.假如你的Path变量值是%开头的,它就会显示一个字符串,如下图一样,这种时候,我们不方便...2.想要显示列表的话,需要将变量值改为以盘符开始,比如输入C:\Windows\System64; 然后问题就解决了,效果如下图 ...
  • 如何列出所有已安装的Windows驱动程序 (How to List All Installed Windows Drivers) Luckily there’s a built-in utility that will spit out a list of all the installed drivers, and it couldn’t be simpler...
  • 当时看很多教程遇到这个问题时是把列表已有的ensp都打勾,可能是刚到的新电脑的原因,装完ensp出现这个问题后,列表里一个ensp开头的都没有… 可能有的找不到列表里的ensp,我试了才知道4和6是一样的,就是你把4...
  • windows下使用QT实现文件管理器

    千次阅读 热门讨论 2019-11-04 23:25:14
    1、简介 此工程实现了文件管理器的基本工程,复制、粘贴、...(1)、列表模式 (2)、图标模式 3、复制、粘贴、剪切、重命名、删除、新建文件夹、新建文档 4、双击浏览图片 5、双击浏览txt文档 ...
  • Windows获取窗口列表

    千次阅读 2018-04-17 20:47:41
    Windows 10 Visual Studio 2017 Source #include <Windows.h> #include <Dwmapi.h> #include <iostream> #pragma comment(lib, "dwmapi.lib") int ...
  • Windows通过cmd命令获取文件列表 例子

    万次阅读 2018-09-14 14:00:29
    有时我们需要获取文件夹下所有文件名的列表,较为快捷的方式就是通过cmd命令了。 - 举个栗子——在文件夹Test中有如下文件: 1. 获取文件夹所有文件和文件夹的名字列表 使用以下语句: ... \Test>dir...
  • windows10任务栏窗口预览换成列表

    千次阅读 2020-06-09 21:44:06
    windows任务栏中的任务窗口预览变成列表(如图1–>>图2)会提高查找效率 -----------》》》 步骤 打开注册表:windows+R打开“运行”,然后输入:regedit 找到:\HKEY_CURRENT_USER\Software\Microsoft\...
  • 显示目录中的文件和子目录列表。 DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N] [/O[[:]sortorder]] [/P] [/Q] [/R] [/S] [/T[[:]timefield]] [/W] [/X] [/4] [dri...
  • Windows CMD常用命令大全(值得收藏)

    万次阅读 多人点赞 2021-08-22 10:45:42
    Windows CMD常用命令大全前言1. 常用命令1.1 cd命令1.2 查看目录文件1.3 创建目录和删除目录1.4 查看本机ip1.5 清除屏幕1.6 复制文件1.7 移动文件1.8 删除文件1.9 ping1.10 taskkill1.11 netstat 查看网络连接状态...
  • Windows更新信任证书颁发机构列表

    千次阅读 2020-03-28 12:56:58
    Windows系统内置的信任根证书是需要随时更新的, 任意打开一个HTTPS网站,如果发现其证书不是由受信任的根证书颁发机构提供的,那么有两种可能: 一、本地储存的根证书太旧了,需要更新,这时就会触发系统自动请求...
  • Windows】电脑不显示WiFi列表

    万次阅读 2020-12-28 12:11:50
    点击网络图标不显示WiFi列表 设置--》状态--》更改网络设置-》网络适配器选项 右键WLAN--》禁用--》重新启用
  • windows命令查看软件安装列表

    万次阅读 2017-04-09 14:08:43
    windows上,可以通过控制面板,查看软件安装情况。那么除此之外还有其它方法吗? powershell命令 PS C:\Users\wyq> Get-WmiObject -class Win32_Product |Select-Object -Property name,versionname
  • Windows原版系统下载地址列表

    万次阅读 2017-05-27 10:34:06
    Windows 7 企业版 (64位) Windows 7 Enterprise (x64) – DVD (Chinese-Simplified) 文件名:cn_windows_7_enterprise_x64_dvd_x15-70741.iso SHA1:EE20DAF2CDEDD71C374E241340DEB651728A69C4 MD5:211C49713392879...
  • Windows删除服务

    万次阅读 2022-02-22 14:16:20
    Windows服务
  • win10文件夹下的文件列表,总是默认缩略图显示,但我想默认显示为详细信息,其实可以通过下面方式修改 即在父文件夹右键属性窗口的自定义选项页,在优化此文件夹下拉框,选择文档(默认是常规项目),并勾选应用...
  • 解决方案的文章链接 ...问题描述:win7系统里windows update服务无法启动,在windows的服务界面查看发现没有windows update服务。 解决方法: 运行一下WindowsUpdate组件修复工具,然后再运行一...
  • C#WindowsMediaPlayer的播放列表

    千次阅读 2017-05-30 22:36:01
    播放单首歌曲 player.URL = "歌曲文件路径"; ...添加多首歌曲到播放列表 IWMPPlaylist playList = player.playlistCollection.newPlaylist("MyPlayList"); //新建列表  IWMP
  • 网上类似的情况有很多,大部分解决方案无非是 重装网卡驱动 网络重置 重启WLAN AutoConfig服务等,笔者试过后,都没有解决。偶尔发现 这个服务 重新打开后,问题解决。猜测是一些安全管理软件或浏览器自动屏蔽了这项...
  • 如何查看开放的端口列表 查看电脑开放的端口号,自己电脑中打开了哪些端口呢?打开命令提示符,开始->附件->命令提示符,或者直接快捷键win+R,运行窗口,输入CMD回车; 查看电脑开放的端口号,在命令提示符...
  • 后来经常出现连接中断的问题,服务端要求客户端要有连接异常自动重连的功能,后来发现用WebService重启很不方便,就改为了WindowsService 但是服务端不是自己开发的,他们经常做升级操作、更改订阅主题等配置,...
  • 它结合了两个 Sysinternals 的旧版工具 Filemon 和 Regmon 的功能,并添加了一个包含丰富的和非破坏性的广泛增强过滤功能列表,全面的事件属性(例如会话 ID 和用户名称),可靠的进程信息,每个操作的完整线程、...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 757,062
精华内容 302,824
关键字:

windows列表