我有一个问题,目前我自己无法解决。我公司有一个公共文件夹,用户(其他员工)可以在其中创建文件。问题是,需要以某种方式配置此文件夹,以便用户可以在同一天在该文件夹中创建文件:每天晚上都会执行一个脚本,使此文件夹中所有新创建的文件(包括子文件夹中的所有文件)都变为只读。此公共文件夹位于基于 Windows 10 的计算机上。
我已经设法获得了简单的 Powershell 脚本,该脚本能够将当前文件夹中的所有文件设置为只读:
$folderPath = 'C:\TestFolder'
Get-ChildItem -Path $folderPath -Recurse -File | % { $_.IsReadOnly=$True }`
此 powershell 脚本从管理员帐户运行,这意味着每天执行脚本后,只有管理员可以编辑文件夹中的文件,但用户不能再编辑。第二天,用户可以创建新文件,但不能再编辑当前文件,并且每天重复此循环:从第二天开始,新文件将被“锁定”为只读。
有人知道如何在 powershell 中实现这类文件权限吗?
我自己对于这个脚本的算法的想法:
递归查找所有文件
将其设为只读
删除用户修改任何找到的文件的权限
保留用户创建新文件和查看当前文件的权限
非常欢迎任何建议!
答案1
您可以使用 powershell 仅指定早于特定日期的文件,如下所示:
Get-ChildItem -Path $folderPath -Recurse -File |
Where-Object CreationTime -lt (get-date).AddDays(-1) |
% { $_.IsReadOnly=$True }
确保文件所有者属性或其权限也发生更改,因为所有者通常可以将权限重新设置为读/写。您可以在文件资源管理器 UI 中检查,也可以使用Get-Acl \\path\to\file.ext