Надеюсь, кто-то сможет ответить на этот вопрос раз и навсегда, это уже несколько месяцев сводит меня с ума.
В папке, когда я создаю файлы, пока Администратор (из командной строки или из пакетного запуска «Как администратор» пользователь, с которым я связан, не может редактировать созданные файлы. В наборе разрешений отсутствует мой пользователь с «Специальными разрешениями» (что бы это ни значило), тогда как это не происходит на рабочей станции. Почему ??
Я пробовал множество вариантов ICACLS, среди которых тот, который постоянно появляется в результатах поиска: ICACLS folder /reset /C /L /T
и это не помогает: мой пользователь по-прежнему не может редактировать файлы, если он не находится в наборе разрешений.
Единственный обходной путь, который я нашел, - это принудительное предоставление полного доступа моему пользователю следующим образом: icacls folder /grant %USERNAME%@%USERDNSDOMAIN%:F /T /C /Q
Проблема в том, что набор разрешений для файлов по-прежнему не соответствует тому, что должно быть:
Что-то я делаю не так?
Какова наилучшая практика при выполнении пакетов от имени администратора, если вы хотите, чтобы созданные файлы имели такие же разрешения, как если бы вы не выполняли пакет от имени администратора? Можно ли на самом деле сбросить разрешения так, как они должны быть, без написания пакета с несколькими условиями?
решения нет, есть только обходной путь: принудительно применить разрешения, предоставив полный доступ пользователю по вашему выбору:
icacls folder /grant %USERNAME%@%USERDNSDOMAIN%:F /T /C /Q
Я не думаю, что вы делаете что-то неправильно, и система работает так, как задумано. При запуске сценария с повышенной учетной записью в непривилегированном сеансе вы создаете файл от имени администратора. Насколько я понимаю, члены группы администраторов будут иметь полное разрешение, а не учетная запись авторизованного пользователя. Разрешения пользователя нужно будет добавить в файл именно так, как вы его обходите. Вы также можете использовать takeown% USERNAME% в своем скрипте, чтобы изменить владельца файла. Я считаю, что вам нужно будет добавить условия в свои командные файлы.