2024-09-17
一言
有些梦想虽然遥不可及,但不是不可能实现。只要我足够的强。 --- 《秦时明月》 · 小学生
English
once again
: 再次
It's again possible
: 再次可行
Powershell 导出目录权限列表
要导出 D:\Sharing_Data
目录下一级子目录的用户权限列表,可以使用 PowerShell 或 命令提示符(Command Prompt) 中的 icacls
工具。以下是两种方法的详细步骤:
方法一:使用 PowerShell
-
打开 PowerShell
- 按
Win + X
,选择 Windows PowerShell(管理员) 或 Windows Terminal(管理员)。
- 按
-
运行以下脚本
# 设置共享目录路径
$sharedPath = "D:\Sharing_Data"
# 获取一级子目录
$subDirectories = Get-ChildItem -Path $sharedPath -Directory
# 创建一个空数组来存储权限信息
$permissionsList = @()
foreach ($dir in $subDirectories) {
# 获取当前子目录的ACL(访问控制列表)
$acl = Get-Acl -Path $dir.FullName
foreach ($access in $acl.Access) {
# 创建一个自定义对象来存储信息
$permission = [PSCustomObject]@{
Directory = $dir.Name
Identity = $access.IdentityReference
FileSystemRights = $access.FileSystemRights
AccessControlType = $access.AccessControlType
}
# 添加到数组中
$permissionsList += $permission
}
}
# 导出到CSV文件
$permissionsList | Export-Csv -Path "D:\Sharing_Data_Permissions.csv" -NoTypeInformation -Encoding UTF8
Write-Output "权限列表已成功导出到 D:\Sharing_Data_Permissions.csv" -
解释脚本内容
- 获取子目录:
Get-ChildItem -Path $sharedPath -Directory
获取D:\Sharing_Data
下的所有一级子目录。 - 获取权限:
Get-Acl
获取每个子目录的权限信息。 - 整理数据:将目录名、用户、权限类型等信息整理成表格形式。
- 导出CSV:将整理好的权限信息导出到
D:\Sharing_Data_Permissions.csv
文件中。
- 获取子目录:
-
查看导出的权限文件
导出的
D:\Sharing_Data_Permissions.csv
文件可以使用 Excel 或任何支持 CSV 格式的应用程序打开,方便查看和分析。
方法二:使用命令提示符中的 icacls
-
打开命令提示符
- 按
Win + R
,输入cmd
,然后按Enter
。
- 按
-
运行以下命令
cd /d D:\Sharing_Data
for /D %G in (*) do icacls "%G" >> D:\Sharing_Data_Permissions.txt注意:
- 如果你将此命令写入批处理文件(.bat),需要将
%G
替换为%%G
,即:for /D %%G in (*) do icacls "%%G" >> D:\Sharing_Data_Permissions.txt
- 如果你将此命令写入批处理文件(.bat),需要将
-
解释命令内容
for /D %G in (*)
:遍历D:\Sharing_Data
目录下的所有一级子目录。icacls "%G"
:获取每个子目录的权限信息。>> D:\Sharing_Data_Permissions.txt
:将权限信息追加到D:\Sharing_Data_Permissions.txt
文件中。
-
查看导出的权限文件
打开
D:\Sharing_Data_Permissions.txt
文件,即可查看各子目录的权限列表。
选择哪种方法?
- PowerShell 方法 更加灵活和强大,适合需要进一步处理和分析权限数据的场景。
icacls
方法 简单快捷,适合快速导出权限信息到文本文件。
根据你的需求选择合适的方法即可。如果需要更详细的权限信息或格式化的数据,推荐使用 PowerShell 方法。
额外提示
- 管理员权限:确保以管理员身份运行 PowerShell 或命令提示符,以避免权限不足导致无法读取某些目录的权限信息。
- 编码问题:在导出到 CSV 文件时,使用 UTF-8 编码可以避免中文字符显示为乱码。
- 权限说明:
IdentityReference
:表示用户或用户组。FileSystemRights
:表示具体的权限类型,如读取、写入、修改等。AccessControlType
:表示是允许(Allow)还是拒绝(Deny)权限。
开发gradle插件
创建一个自定义的 Gradle 插件 codegen-jooq-gradle-plugin
,其插件 ID 为 org.moonlit.jooq
,并在其中为 gradle-jooq-plugin
添加默认配置,可以按照以下步骤进行。整个过程 包括设置插件项目、定义插件逻辑、添加默认配置、打包发布插件等。
以下是详细的步骤和代码示例:
1. 创建插件项目
首先,创建一个新的 Gradle 项目来开发你的插件。
mkdir codegen-jooq-gradle-plugin
cd codegen-jooq-gradle-plugin
gradle init --type java-gradle-plugin
这将创建一个基本的 Gradle 插件项目结构。