2

Вопрос:

В Windows Home / Professional (Windows 10), каков рекомендуемый способ создания учетной записи локальной службы?

Есть ли документация для этого? (Powershell, GUI и т.д.).

Пояснение: это не вопрос Active Directory - или проблема управляемой учетной записи службы Windows - только на рабочем столе.

Контекст:

Установка BTSync Bittorent запрашивает возможность запуска в качестве локальной службы Windows.

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

Как в Linux ...:

В Linux я обычно использовал useradd и связывал учетную запись с соответствующими группами:

useradd -M btsync
usermod -L btsync

Примечание: -r предназначено для создания учетных записей служб в Linux, но, независимо от того, отключает ли оно вход в систему или нет, кажется непоследовательным - и недокументировано (ссылка на человека).

Домашний каталог не будет создан, вход в систему будет отключен,

1 ответ1

1

Относится к:

Windows 7, 8/8.1, Windows 10 - Домашняя и Профессиональная.

Программы (например, BTSync), которые устанавливают службы, но не следуют соглашениям служб Windows, как другие программы (IIS, MySQL, SQL Server и т.д.).

Вопросы:

  1. Дефект программного обеспечения: некоторые установки (например, BitTorrent Sync) не устанавливают службу Windows - если не указана учетная запись обычного пользователя.  
  2. Ожидаемое поведение: должно автоматически предоставлять правильную идентификационную информацию учетной записи службы NT или, по крайней мере, разрешать пользователю тоже.
  3. Проблема безопасности: пользователь вынужден создать другую учетную запись обычного пользователя, [что никогда не следует делать].  
  4. Обходной путь: После указания соответствующей учетной записи службы эту временную учетную запись следует удалить.

Рекомендации

  1. Windows не использует "учетные записи служб" - в смысле Linux, а « виртуальные учетные записи » и « управляемые учетные записи служб» (для компьютеров, участвующих в среде LDAP).
  2. Соглашение об именовании учетных записей служб. В соответствии с соглашением об именах виртуальные учетные записи должны иметь форму "Имя команды" - [Extension] + "svc".

    "btsync.exe" becomes "NT Service\btsyncsvc"

Создание виртуальной учетной записи "NT Service":

  1. Откройте оснастку "Локальные службы", «services.msc»
  2. Перейдите к нужному сервису (btsync), щелкните правой кнопкой мыши "Свойства".
  3. Выберите вкладку "Вход в систему".
  4. Выберите опцию, чтобы указать пользователя.
  5. Введите название "Обычного" сервиса, описанное выше: (без кавычек).

    NT Service\btsyncsvc

  6. УДАЛИТЕ пароли.

  7. Сохранить - применить
  8. Перезапустите Сервис.

Настройка разрешений для папок:

Установить права доступа к папке - используя полное имя учетной записи: «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

Надеюсь это поможет!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .