Python工具开源专栏
Py0002 python+icacls 制作Win系统文件权限ACL导出小工具
前言
在处理Windows SMB文件共享服务时,要表达清楚文件的权限是如何分配的,有时也需要截图文件的权限列表,总结后发现跟权限有关的数据统计并不是很好弄。后来思考了下,觉得还是要使用工具的模块化思想来解决这个问题,不能每次都是人工太麻烦,因此这个需求是来源于自己,为提高工作效率而做的。功能大致如下几点。(文末有github链接)
- 支持递归遍历文件/文件夹,自定义递归层级。
- 支持导出权限ACL列表到Excel和Json。
- 对icacls查询到的数据进行分列,支持按照列字段做模糊查询。例如在C盘查某个用户拥有的所有的文件权限
工具迭代到第三个版本,感觉没啥更新的必要这工具。技术要点:面向过程、面向对象的编程,使用了py标准库argparse
,使用了第三方库:openpyxl
、pyinstaller
目录结构
源代码目录结构:
Win32GetPathACL
|——— Win32GetPathACL.py # py主程序源文件
|——— utils.py # py工具类
|——— icacls导出权限ACL声明.xlsx
|——— favicon64.ico # exe的图标
|——— README.md #
|——— LICENSE.md #
|——— requirements.txt # py项目的依赖项
|——— py打包命令.txt #
执行文件的目录结构:
|——— Win32GetPathACL.exe # 主程序入口
部分演示
help
信息
Win32GetPathACL工具导出文件夹的权限ACL到Excel
:
Win32GetPathACL.exe G:\test --depth=2 --write="file_acl.xlsx" --type=xlsx --print=default
Win32GetPathACL工具导出文件夹的权限ACL到Json
:
Win32GetPathACL.exe G:\test --depth=2 --write="file_acl.xlsx" --type=xlsx --print=default
导出的Excel示例声明
完整代码已在GitHub上开源
源码已在GitHub上开源:Win32GetPathACL
参考来源: