windows - 检索PowerShell中日期范围内修改的文件的完整路径和文件权限
问题描述
考虑到这是我在 stackoverflow 上的第一篇文章,而且对 PowerShell 来说是全新的;我会要求大家对你的回复有点温和。
我正在尝试在大型生产服务器的日期范围之间修改内容。我希望将内容导出到一个 .csv 文件,其中的列代表 FullName、LastWriteTime、用户/组、包含修改后文件的关联文件夹的权限,以及它是否已被继承。
我浏览了大量的论坛、文章等,但无法获得所需的输出。这是我一直试图运行的代码:
$BaseFolder = "<path to be traversed>"
[datetime]$start = '2019-10-05 00:00:00'
[datetime]$end = '2020-10-25 00:00:00'
$Acl = Get-Acl -Path $BaseFolder
#For each Group or Username in ACL
$Files = ForEach ($Access in $Acl.Access){
Get-ChildItem -Path $BaseFolder -Recurse -Force | Where-Object { $_.LastWriteTime -gt $start -AND $_.LastWriteTime -lt $end } |
Select-Object #FullName, LastWriteTime
@{Name='Path';Expression={$_.FullName}},
@{Name='LastWriteTime';Expression={$_.LastWriteTime}},
@{Name='Group/User';Expression=$Access.IdentityReference},
@{Name='Permissions';Expression=$Access.FileSystemRights},
@{Name='Inherited';Expression=$Access.IsInherited}
}
$Files | Export-Csv "<save-path>\Folder-Permissions-$((Get-Date).ToString("yyyy-MM-dd_HHmmss")).csv" -NoTypeInformation
以下是一些屏幕截图,以便更好地了解:
非常感谢您的任何帮助,并在此先感谢您!
问候,
曼尼
解决方案
我想是之后的注释select-object
搞砸了一切,因为后面有一个换行符,并且哈希表不会作为参数传递给命令。您的表达式定义中也存在问题(您必须将它们放在脚本块中{}
)。
这应该有效:
$BaseFolder = "<path to be traversed>"
[datetime]$start = '2019-10-05 00:00:00'
[datetime]$end = '2020-10-25 00:00:00'
$Acl = Get-Acl -Path $BaseFolder
$Files = ForEach ($Access in $Acl.Access){
Get-ChildItem -Path $BaseFolder -Recurse -Force |
Where-Object { $_.LastWriteTime -gt $start -AND $_.LastWriteTime -lt $end } |
Select-Object @{Name='Path';Expression={$_.FullName}},
@{Name='LastWriteTime';Expression={$_.LastWriteTime}},
@{Name='Group/User';Expression={$Access.IdentityReference}},
@{Name='Permissions';Expression={$Access.FileSystemRights}},
@{Name='Inherited';Expression={$Access.IsInherited}}
}
$Files | Export-Csv "<save-path>\Folder-Permissions-$((Get-Date).ToString("yyyy-MM-dd_HHmmss")).csv" -NoTypeInformation
推荐阅读
- video - 防止托管视频被轻松下载
- c# - OnCertificateValidated 未运行 - 自签名证书客户端身份验证 - ASP.NET Core 和 Kestrel
- ios - Swift CoreData,获取所有子实体的问题
- webpack - 升级到最新的 Gatsby 后,Sass base64 背景图片在生产版本中不可用
- postgresql - 如何获得零钱?
- cmake - 如何从单个 CMake 构建中生成目标及其依赖项的多个“风味”?
- java - JavaFX 窗口对于屏幕来说太大了
- android-asynctask - 一类中几个 AsyncTask 的上下文
- php - 如何减慢 AutomateWoo 插件的电子邮件发送速度
- docker-compose - 气流 docker compose 无法访问网络服务器