Вроде простая задача, но ни одно из моих решений не помогло. Обычный домен AD с постоянными пользователями. Мы используем терминальные серверы с не перемещаемыми профилями, поэтому все хранится на диске TS. Мы хотим очистить их папку загрузок при входе в систему, потому что они никогда не делают этого сами, и мы устали от переполнения дисков.
Итак, естественно, я делаю простой сценарий PowerShell и создаю объект групповой политики для его запуска при входе в систему. Проблема в том, что для сценария ps требуется повышение прав, а сценарии входа в систему выполняются на уровне разрешений этого пользователя и не могут быть повышены.
Вот строчка PS:
Get-ChildItem C:\Users\*\Downloads\* | Remove-Item -Force
Отлично работает, если вы запускаете его вручную из экземпляра PowerShell с повышенными привилегиями.
Хорошо, так что нет GPO. Следующая мысль - создать запланированную задачу на каждом сервере терминалов и запустить ее с учетной записью службы с правами администратора.
Проблема в том, что не работает очистка папки загрузки каждого пользователя ... только учетная запись службы.
Итак, я не хочу статически вводить путь к папке загрузки каждого пользователя в файл .ps1, потому что, очевидно, это был бы кошмар для руководства.
Кто-нибудь знает:
Как это легко сделать? Спасибо
Ваша проблема с этим сценарием входа пользователя в систему заключается в том, что вы пытались удалить ВСЕ загружаемое содержимое пользователей, если вы использовали эту команду.
Вы, конечно же, хотите удалить Загрузки каждого конкретного пользователя. Итак, если Загрузки находятся в каталоге их профиля:
Get-ChildItem $env:USERPROFILE\downloads | Remove-Item -recurse
Возможно, вам потребуется подписать свой сценарий или установить -ExecutionPolicy Bypass
в зависимости от вашей политики выполнения для Powershell. Существует множество советов о том, как запустить Powershell в сценарии входа в систему.
Если вы делаете это в старом командном файле, это просто:
rd /s /q %USERPROFILE%\Downloads\*
del /q %USERPROFILE%\Downloads\*.*