Относится к:
Windows 7, 8/8.1, Windows 10 - Домашняя и Профессиональная.
Программы (например, BTSync), которые устанавливают службы, но не следуют соглашениям служб Windows, как другие программы (IIS, MySQL, SQL Server и т.д.).
Вопросы:
- Дефект программного обеспечения: некоторые установки (например, BitTorrent Sync) не устанавливают службу Windows - если не указана учетная запись обычного пользователя.
- Ожидаемое поведение: должно автоматически предоставлять правильную идентификационную информацию учетной записи службы NT или, по крайней мере, разрешать пользователю тоже.
- Проблема безопасности: пользователь вынужден создать другую учетную запись обычного пользователя, [что никогда не следует делать].
- Обходной путь: После указания соответствующей учетной записи службы эту временную учетную запись следует удалить.
Рекомендации
- Windows не использует "учетные записи служб" - в смысле Linux, а « виртуальные учетные записи » и « управляемые учетные записи служб» (для компьютеров, участвующих в среде LDAP).
Соглашение об именовании учетных записей служб. В соответствии с соглашением об именах виртуальные учетные записи должны иметь форму "Имя команды" - [Extension] + "svc".
"btsync.exe" becomes "NT Service\btsyncsvc"
Создание виртуальной учетной записи "NT Service":
- Откройте оснастку "Локальные службы", «services.msc»
- Перейдите к нужному сервису (btsync), щелкните правой кнопкой мыши "Свойства".
- Выберите вкладку "Вход в систему".
- Выберите опцию, чтобы указать пользователя.
Введите название "Обычного" сервиса, описанное выше: (без кавычек).
NT Service\btsyncsvc
УДАЛИТЕ пароли.
- Сохранить - применить
- Перезапустите Сервис.
Настройка разрешений для папок:
Установить права доступа к папке - используя полное имя учетной записи: «NT Service\btsyncsvc», (использование кавычек может или не может потребоваться в зависимости от контекста ...) ...
Для btsyncsvc необязательно иметь разрешения на выполнение, поэтому удалите, если хотите, иначе полный контроль.
Ошибка - служба не запускается из-за отсутствия сопоставления между именами учетных записей и идентификаторами безопасности:
Например, эта ошибка возникнет, если вы укажете «NT Service\btsync» вместо «NT Service\btsyncsvc» ...
Следующая команда вернет список имен текущих учетных записей служб.
Используя PowerShell, (PS), проверьте список по сравнению с тем, который вы указали для "Вход в систему":
PS > get-service | foreach {Write-Host NT Service\$($_.Name)}
Ошибка - служба не запускается из-за того, что учетной записи не предоставлен вход в систему как служба. Разрешения:
Эта ошибка может возникать, если вы указали неверное "Условное имя", или если разрешения действительно отсутствуют - хотя они будут автоматически назначены, если используется правильное соглашение.
В Windows 10 Home Пользователь не сможет использовать оснастку локальной политики безопасности для настройки этого (secpol.msc) - и должен быть выполнен вручную, с помощью PowerShell или другой утилиты.
Скрипты PowerShell:
Чтобы это исправить, можно использовать PowerShell. «Предоставить сценарий PowerShell для входа в систему в качестве службы из галереи Technet»:
Если PowerShell сообщает об "ExecutionPolicy Error", может потребоваться изменить ExecutionPolicy:
PS > Set-ExecutionPolicy RemoteSigned
... Может привести к ошибке подписи - и затем изменился на:
PS > Set-ExecutionPolicy Unrestricted
А затем используйте скрипт для назначения разрешения:
PS > .".\Add Account To LogonAsService.ps1" "NT Service\btsyncsvc"
Сбросьте ExecutionPolicy, если хотите:
PS > Set-ExecutionPolicy Restricted
Надеюсь это поможет!