使用 powershell 定期更改创建文件的权限

使用 powershell 定期更改创建文件的权限

我有一个问题,目前我自己无法解决。我公司有一个公共文件夹,用户(其他员工)可以在其中创建文件。问题是,需要以某种方式配置此文件夹,以便用户可以在同一天在该文件夹中创建文件:每天晚上都会执行一个脚本,使此文件夹中所有新创建的文件(包括子文件夹中的所有文件)都变为只读。此公共文件夹位于基于 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

相关内容