Tenho um certo problema que atualmente não consigo resolver sozinho. Minha empresa possui uma pasta pública onde os usuários (outros trabalhadores) podem criar arquivos. O problema é que esta pasta precisa ser configurada de forma que os usuários possam criar arquivos nela no mesmo dia: todas as noites um script é executado tornando todos os arquivos recém-criados nesta pasta (incluindo todos os arquivos em subpastas) somente leitura . Esta pasta pública está localizada em uma máquina baseada no Windows 10.
Já consegui um script Powershell simples que é capaz de definir todos os arquivos como somente leitura na pasta atual:
$folderPath = 'C:\TestFolder'
Get-ChildItem -Path $folderPath -Recurse -File | % { $_.IsReadOnly=$True }`
Este script PowerShell é executado a partir da conta de administrador e significa que após a execução diária do script, apenas o administrador pode editar arquivos na pasta, mas os usuários não podem mais. No dia seguinte, os usuários podem criar novos arquivos, mas não editar mais os atuais e o ciclo se repete todos os dias: novos arquivos serão "bloqueados" como somente leitura a partir do dia seguinte.
Alguém tem ideia de como implementar esse tipo de permissão de arquivo no PowerShell?
Minha própria ideia de um algoritmo para este script:
Localize todos os arquivos recursivamente
torná-los somente leitura
remova o acesso do usuário para modificar qualquer arquivo encontrado
manter o acesso aos usuários para criar novos arquivos e visualizar os atuais
Qualquer conselho é muito bem-vindo!
Responder1
Você pode especificar apenas arquivos anteriores a uma data específica com o PowerShell assim:
Get-ChildItem -Path $folderPath -Recurse -File |
Where-Object CreationTime -lt (get-date).AddDays(-1) |
% { $_.IsReadOnly=$True }
Certifique-se de que a propriedade do proprietário do arquivo ou suas permissões também sejam alteradas, pois o proprietário geralmente pode definir as permissões novamente para leitura/gravação. Você pode verificar na interface do explorador de arquivos ou comGet-Acl \\path\to\file.ext