SidAclReplacer.psd1
|
@{ # 模块清单 RootModule = 'SidAclReplacer.psm1' ModuleVersion = '1.0.0' GUID = 'b3c4d5e6-f7a8-9012-bcde-f12345678901' Author = 'SidAclReplacer' CompanyName = '' Copyright = '(c) 2026 SidAclReplacer. All rights reserved.' Description = 'NTFS ACL SID 管理工具 — 在文件/目录的 DACL 中替换或移除 SID,完整保留 ACE 类型、权限掩码、继承标志和规范顺序。提供 Update-AclSid(替换)和 Remove-AclSid(移除)两个命令。' PowerShellVersion = '5.1' CLRVersion = '4.0' DotNetFrameworkVersion = '4.6.1' # 兼容的 PowerShell 版本 CompatiblePSEditions = @('Desktop', 'Core') # 导出的函数 / cmdlet FunctionsToExport = @('Update-AclSid', 'Remove-AclSid') CmdletsToExport = @('Update-AclSid', 'Remove-AclSid') AliasesToExport = @() VariablesToExport = @() # 模块依赖 RequiredModules = @() RequiredAssemblies = @() # 文件列表(构建后生成) FileList = @( 'SidAclReplacer.dll' 'SidAclReplacer.psd1' 'SidAclReplacer.psm1' 'Update-AclSid.ps1' 'System.IO.FileSystem.AccessControl.dll' 'System.Security.AccessControl.dll' 'System.Security.Principal.Windows.dll' 'System.Buffers.dll' 'System.Memory.dll' 'System.Numerics.Vectors.dll' 'System.Runtime.CompilerServices.Unsafe.dll' ) # 私有数据 PrivateData = @{ PSData = @{ Tags = @('NTFS', 'ACL', 'SID', 'Security', 'Permissions', 'Migration', 'AccessControl', 'Windows', 'FileSystem') LicenseUri = 'https://github.com/QZLin/SidAclReplacer/blob/main/LICENSE' ProjectUri = 'https://github.com/QZLin/SidAclReplacer' IconUri = '' ReleaseNotes = @' v1.0.0 SidAclReplacer — NTFS ACL SID 管理工具 功能: - Update-AclSid: 将 ACL 中匹配的 SID 替换为新 SID,保留 ACE 完整结构 - Remove-AclSid: 移除 ACL 中指定 SID 的所有权限记录,支持孤立 SID 清理 Update-AclSid 特性: - 支持 DACL / SACL / Owner / Group 替换 - 使用 RawSecurityDescriptor 低层 API 原地替换,不破坏 ACE 规范顺序 - 递归处理目录树,流式输出结果 - WhatIf / Confirm 安全模式 Remove-AclSid 特性: - 按 -TargetSid 移除特定 SID 的权限记录 - 按 -AllUnknownSid 清理所有无法解析的孤立 SID - 按 -AccessControlType 过滤 Allow / Deny 类型 - 不处理 Owner/Group,专注 DACL 清理 技术栈: - C# 二进制 PowerShell 模块(netstandard2.0,兼容 PS 5.1 和 PS 7+) - 纯 PowerShell 脚本回退实现(零依赖) - 双实现自动切换,DLL 加载失败时无缝回退 '@ } } # 帮助信息 URI HelpInfoURI = '' } |