Регулярно меняйте разрешения созданных файлов с помощью 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 }

Убедитесь, что свойство владельца файла или его разрешения также изменились, так как владелец обычно может вернуть разрешения на чтение/запись. Вы можете проверить в пользовательском интерфейсе проводника файлов или с помощьюGet-Acl \\path\to\file.ext

Связанный контент