Назад | Перейти на главную страницу

Измените права группы Windows без достаточных прав в пакете

Я написал командный файл, который создает несколько папок и подпапок в текущем каталоге. Также изменяется групповое разрешение одной папки. Это работает на моей локальной рабочей станции с правами администратора, но не работает на сервере, потому что у меня недостаточно прав.

Этот пакет также следует использовать другим пользователям, не являющимся администраторами, которые не имеют права изменять разрешения папок, и у них нет возможности предоставить им это право.

После прочтения этот комментарий, решение кажется очевидным:

  1. Напишите VBScript, который изменяет разрешения данной папки (имя-папки является аргументом)
  2. Запустите VBScript как службу Windows (запустите от имени администратора)
  3. И измените пакет так, чтобы вызывалась служба Windows (передавая папку в качестве аргумента)

Мои вопросы: как пакет может отправить команду службе Windows? И каким образом должен быть реализован сервис, чтобы получать эту команду и обрабатывать ее?

В sc start позволяет указать параметры, которые будут переданы службе ServiceMain функция.

Я не знаю наверняка, передаст ли какое-либо из существующих решений «запускать приложение как услугу» эти аргументы в приложение, но это не должно быть слишком сложно реализовать.

Убедитесь, что вы тщательно проверили имя папки. Вы не хотите, чтобы кто-то мог сбросить разрешения на c:\folders\..\windows\system32, например.

Вы можете проверить RunAsService который должен иметь возможность запускать одно или несколько приложений как службу Windows.

Вы можете захотеть проверить этот слишком.