Я борюсь с проблемой здесь. Итак, я создал службу Windows, сделал сценарий установки и зарегистрировал его в Windows. Я использую пользовательскую учетную запись, которую я создаю в том же сценарии, и даю ей права на вход в качестве службы с использованием библиотеки Carbon, чтобы иметь возможность делать это из PowerShell (описано здесь в разделе Установить или предоставить пользователю вход в качестве службы прямо через Powershell)
При запуске службы (как вручную, так и через cmd) я получаю ошибку 5: Доступ запрещен. Я не понимаю почему, я даже пытался дать учетной записи полные права доступа ко всему диску C:\.
Вот как я создаю пользователя
net user MyServiceAccount MyPassword /add /expires:never /passwordchg:no
Вот как я даю ему разрешение на вход в качестве службы
$Identity = "MyServiceAccount"
$privilege = "SeServiceLogonRight"
$CarbonDllPath = $PSScriptRoot + "\Carbon.dll"
[Reflection.Assembly]::LoadFile($CarbonDllPath)
[Carbon.Lsa]::GrantPrivileges( $Identity, $privilege )
(Вход в систему, поскольку разрешения службы, кажется, работают, так как до этого произошел сбой с ошибкой, связанной с этой проблемой) Я прочитал большое количество сообщений по этой теме, но не смог решить проблему. Итак, еще раз, мой вопрос: что может быть причиной ошибки «Отказано в доступе»?
Обновить
Пробовал запускать под учетной записью администратора (зайти как...), тоже самое - Доступ запрещен. В EventLog нет ничего, кроме службы MonitoringService. Не удалось запустить службу из-за следующей ошибки: Отказано в доступе. сообщение в системном журнале событий.
sc add
, затем переназначьте ее для запуска под определенным пользователем, а затем повторите попытку. - person Vesper   schedule 16.05.2014