суббота, 10 февраля 2024 г.

Как удаленно запретить пользователюудалять файлы

По работе появилась необходимость запретить пользователю удалять файлы в некоторой папке. Проблема была еще и в том чтобы когда это нужно, можно было удобно включать и выключать разрешение на удаление, причем желательно удаленно, чтобы пользователь даже не подозревал о том что ему что-то там разрешают или запрещают в этот момент. Решение со скриптом на запрет и нашлось довольно быстро, используется системная утилита icacls, а команда в батнике может выглядеть примерно так:

@echo off
icacls "D:\foldername" /deny UserName:(OI)(CI)(DE,DC) /T /C
Причем в названии папке в конце слэш не нужен. В данном случае появляется запрет на удаление этой папки и всех файлов и подпапок внутри нее, все-равно что если бы сделали это вручную через проводник Windows (т.к.лень делать много скринов все на одном):

Свойства папки -- Безопасность -- Дополнительно -- Добавить -- Выбрать пользователя для которого добавляются права -- Потом поставить запрет на удаление. Как видно на скрине возле пункта меню "Удалить" появился значок требующий доступа.


Чтобы убрать запрет можно удалить вот этот элемент разрешений через проводник, либо применить такой же самый батник, но вместо /deny поставить /grant:

@echo off
icacls "D:\foldername" /grant UserName:(OI)(CI)(DE,DC) /T /C

Понятное дело что UserName нужно ввести свой, как и путь до папки

Теперь запуская скрипты локально можно включать/выключать разрешения на удаление. Но необходимо это делать удаленно, с другого компьютера в этой сети. Для этого на том компьютере можно создать ярлык, или батник с примерно такой командой:

 wmic /user:UserName /node:"ip-remote-pc" process call create "C:\scripts\deny.bat"

Как можно догататься в конце прописан путь до ранее созданных нами батников на компе где требуется установить запрет (deny)

Скорее всего при этом система ругнется что отказано в доступе и тогда может помочь эта инструкция: https://serveradmin.ru/nastroit-udalennyj-dostup-po-wmi/

В ней написано что нужно установить частную сеть и запустить команду winrm quickconfig

Комментариев нет:

Отправить комментарий