Не удается запустить пакетные файлы с сервера, у пользователей нет прав доступа к файлу
Мы пытаемся запустить некоторые сценарии входа / выхода из системы на контроллере домена server 2008r2. Сценарий находится в каталоге выхода из групповой политики по умолчанию.
\\domain.local\SysVol\domain.local\Policies\{guid}\User\Scripts\Logoff
Ничего не происходило при выходе из системы, поэтому мы наконец поняли, что скрипт вообще не работает. Я скопировал скрипт на локальный компьютер и запустил его, и он работает нормально (обычная аутентифицированная учетная запись пользователя).
Затем я попытался получить доступ к каталогу через файловый менеджер, который я могу. Однако я не смог запустить командный файл. Я получаю ошибку
"Windows не может получить доступ (\ местоположение файла). У вас нет прав доступа (\ местоположение файла). Обратитесь к администратору сети для запроса доступа".
Если я щелкну правой кнопкой мыши и запустлю администратор, все будет нормально. Я не упомянул, что находится в командном файле, потому что это не имеет значения. Я создал скрипт входа в систему так же, как test.bat. Он содержит только
echo Hello
pause
Опять же, это не работает в папке пользовательских сценариев или в любой общей папке в этом отношении. Я помещаю это в общий ресурс на нашем файловом сервере, и получаю ту же ошибку. Если я запускаю командный файл через командную строку, он также работает нормально.
Также применяется групповая политика, и в средстве просмотра событий рабочей станции нет журналов ошибок.
Наконец, я попытался дать моей учетной записи пользователя домена больше прав на сам файл, и он все равно не запустится. Только администратор домена может запустить файл.
Какие-нибудь мысли?
3 ответа
Переместите ваш пакетный файл в \\DomainController\Netlogon
а затем в объекте групповой политики перейдите по этому пути и используйте этот файл.bat для сценария выхода из системы.
Это должно исправить любые проблемы с разрешениями.
Если у вас много контроллеров домена, вы можете установить путь к пакетному файлу в объекте групповой политики: \\%LOGONSERVER%\NETLOGON\copyNinite.bat
Затем он будет использовать любой DC, прошедший аутентификацию, в качестве пути к пакетному файлу, который должен быть локальным для их сайта.
Надеюсь, это поможет.
Щелкните правой кнопкой мыши папку, в которой находится BAT -> безопасность -> все пользователи -> разрешить все. проверьте также для других пользователей, перечисленных там. Может быть, это проблема, поскольку у нас была похожая проблема.
Похоже, виртуализация файловой системы контроля учетных записей пользователей для меня. В качестве эксперимента запустите useraccountcontrolsettings.exe и установите для UAC значение "Никогда не уведомлять". Перезагрузите и перепроверьте. Если ваш скрипт работает, то это точно UAC.