Cambie los permisos de los archivos creados de forma rutinaria con powershell

Cambie los permisos de los archivos creados de forma rutinaria con powershell

Tengo cierto problema que actualmente no puedo resolver por mí mismo. Mi empresa tiene una carpeta pública donde los usuarios (otros trabajadores) pueden crear archivos. El problema es que esta carpeta debe configurarse de manera que los usuarios puedan crear archivos en esa carpeta el mismo día: cada noche se ejecuta un script que hace que todos los archivos recién creados en esta carpeta (incluidos todos los archivos en las subcarpetas) sean de solo lectura. . Esta carpeta pública se encuentra en una máquina basada en Windows 10.

Ya logré obtener un script de Powershell simple que puede configurar todos los archivos en solo lectura en la carpeta actual:

$folderPath = 'C:\TestFolder' 
Get-ChildItem -Path $folderPath -Recurse -File | % { $_.IsReadOnly=$True }`

Este script de PowerShell se ejecuta desde la cuenta de administrador y significa que, después de la ejecución diaria del script, solo el administrador puede editar archivos en la carpeta, pero los usuarios ya no pueden. Al día siguiente, los usuarios pueden crear archivos nuevos, pero ya no editar los actuales y el ciclo se repite todos los días: los archivos nuevos se "bloquearán" como de solo lectura a partir del día siguiente.

¿Alguien tiene idea de cómo implementar este tipo de permisos de archivos en PowerShell?

Mi propia idea de un algoritmo para este script:

  • Localizar todos los archivos de forma recursiva

  • hacerlos de solo lectura

  • eliminar el acceso del usuario para modificar cualquier archivo encontrado

  • mantener el acceso a los usuarios para crear nuevos archivos y ver los actuales

    ¡Cualquier consejo es muy bienvenido!

Respuesta1

Puede especificar solo archivos anteriores a una fecha específica con powershell de esta manera:

Get-ChildItem -Path $folderPath -Recurse -File | 
    Where-Object CreationTime -lt (get-date).AddDays(-1) | 
    % { $_.IsReadOnly=$True }

Asegúrese de que la propiedad del propietario del archivo o sus permisos también cambien, ya que el propietario generalmente puede volver a configurar los permisos para lectura/escritura. Puede verificar en la interfaz de usuario del explorador de archivos o conGet-Acl \\path\to\file.ext

información relacionada