Changeserviceconfig ошибка 5 отказано в доступе

I want to stop the service run automatically when system boots.

For specific information, I’m logged in with «administrator» account.
And opened cmd with «run as administrator»

here’s the log on cmd.

C:>sc config AppIDSvc start= auto
[SC] ChangeServiceConfig SUCCESS

C:>sc config AppIDSvc start= demand
[SC] ChangeServiceConfig FAILED 5:

Access is denied.

I don’t understand why I can change startup type to auto but cannot to demand.

Any ideas?

assylias's user avatar

assylias

320k80 gold badges658 silver badges780 bronze badges

asked Jan 25, 2018 at 0:30

Pandol's user avatar

You can just hack the registry: (1=Sys,2=Auto,3=Manual,4=Disabled)

HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesWSServiceStart  =  4

answered Nov 14, 2020 at 19:17

user1388706's user avatar

1

Run cmd.exe as administrator by right clicking on CMD and selecting Run as Administratoror if Windows 8 or 10, right click Start and select Command Prompt (Admin) then in cmd.exe and type:

net user administrator /active:yes

in the same cmd.exe retry:

sc config AppIDSvc start= demand

Which should return:

[SC] ChangeServiceConfig SUCCESS

If however it still gives the access denied error, please Restart the Computer and then run cmd.exe as Administrator and then retry:

sc config AppIDSvc start= demand

answered Jan 25, 2018 at 8:00

Gerhard's user avatar

GerhardGerhard

22.5k7 gold badges27 silver badges42 bronze badges

Как исправить Системная ошибка 5 Отказано в доступеПри выполнении команд net user, net stop, net start и других в командной строке Windows 11 или Windows 10 вы можете получить сообщение: «Системная ошибка 5. Отказано в доступе». Начинающему пользователю не всегда ясно, чем вызвана ошибка и как решить проблему.

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

Методы решения для «Системная ошибка 5. Отказано в доступе» при выполнении команд net stop, net start, net user

Системная ошибка 5. Отказано в доступе. Сообщение об ошибке в командной строке

Причина того, что в результате выполнения команд сообщается о системной ошибке 5 «Отказано в доступе» в том, что командная строка (Терминал Windows или Windows PowerShell) запущен не от имени администратора. Или, в некоторых случаях — в том, что ваш пользователь и вовсе не имеет прав администратора на компьютере.

В первом случае решение будет простым: запустите командную строку от имени Администратора, для этого вы можете:

  1. Начать набирать «Командная строка» в поиске на панели задач Windows 11 или Windows 10, а затем в результатах поиска нажать «Запуск от имени Администратора». Запуск командной строки от имени Администратора при системной ошибке 5
  2. Нажать правой кнопкой мыши по кнопке «Пуск» и выбрать «Терминал Windows (Администратор)» или «Windows PowerShell (Администратор)» Запуск терминала от администратора в контекстном меню кнопки Пуск
  3. Использовать инструкции Как запустить командную строку от имени Администратора в Windows 11 и Как запустить командную строку от имени Администратора в Windows 10.

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

Если ваш пользователь не имеет прав администратора на компьютере, но вы имеете доступ к учетной записи с правами администратора, вы можете зайти под ней, а потом сделать текущего пользователя администратором: Как сделать пользователя администратором в Windows 10 (в Windows 11 действия аналогичны).

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

Skip to content

  • ТВикинариум
  • Форум
  • Поддержка
  • PRO
  • Войти

ФорумXpucT2022-08-18T02:06:35+03:00

Вы должны войти, чтобы создавать сообщения и темы.

Отказано в доступе при изменении типа запуска службы

Profile photo ofG2O2
Цитата: Владимир от 18.05.2021, 16:02

Добрый день. При изменении параметра «Start» по пути «HKLMSYSTEMCurrentControlSetServicesWdiSystemHost» появляется ошибка «Отказано в доступе», программа запущена от администратора. Как можно задать тип запуска этой службе?

Добрый день. При изменении параметра «Start» по пути «HKLMSYSTEMCurrentControlSetServicesWdiSystemHost» появляется ошибка «Отказано в доступе», программа запущена от администратора. Как можно задать тип запуска этой службе?

Голосуйте — палец вниз.0Голосуйте — палец вверх.0

Profile photo ofG2O2
Цитата: Владимир от 18.05.2021, 23:17

Нашел решение:

Код

public static class ServiceHelper
        {
            [DllImport("advapi32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
            public static extern Boolean ChangeServiceConfig(
                IntPtr hService,
                UInt32 nServiceType,
                UInt32 nStartType,
                UInt32 nErrorControl,
                String lpBinaryPathName,
                String lpLoadOrderGroup,
                IntPtr lpdwTagId,
                [In] char[] lpDependencies,
                String lpServiceStartName,
                String lpPassword,
                String lpDisplayName);

            [DllImport("advapi32.dll", SetLastError = true, CharSet = CharSet.Auto)]
            static extern IntPtr OpenService(
                IntPtr hSCManager, string lpServiceName, uint dwDesiredAccess);

            [DllImport("advapi32.dll", EntryPoint = "OpenSCManagerW", ExactSpelling = true, CharSet = CharSet.Unicode, SetLastError = true)]
            public static extern IntPtr OpenSCManager(
                string machineName, string databaseName, uint dwAccess);

            [DllImport("advapi32.dll", EntryPoint = "CloseServiceHandle")]
            public static extern int CloseServiceHandle(IntPtr hSCObject);

            private const uint SERVICE_NO_CHANGE = 0xFFFFFFFF;
            private const uint SERVICE_QUERY_CONFIG = 0x00000001;
            private const uint SERVICE_CHANGE_CONFIG = 0x00000002;
            private const uint SC_MANAGER_ALL_ACCESS = 0x000F003F;

            public static void ChangeStartMode(ServiceController svc, ServiceStartMode mode)
            {
                var scManagerHandle = OpenSCManager(null, null, SC_MANAGER_ALL_ACCESS);
                if (scManagerHandle == IntPtr.Zero)
                {
                    throw new ExternalException("Open Service Manager Error");
                }

                var serviceHandle = OpenService(
                    scManagerHandle,
                    svc.ServiceName,
                    SERVICE_QUERY_CONFIG | SERVICE_CHANGE_CONFIG);

                if (serviceHandle == IntPtr.Zero)
                {
                    throw new ExternalException("Open Service Error");
                }

                var result = ChangeServiceConfig(
                    serviceHandle,
                    SERVICE_NO_CHANGE,
                    (uint)mode,
                    SERVICE_NO_CHANGE,
                    null,
                    null,
                    IntPtr.Zero,
                    null,
                    null,
                    null,
                    null);

                if (result == false)
                {
                    int nError = Marshal.GetLastWin32Error();
                    var win32Exception = new Win32Exception(nError);
                    throw new ExternalException("Could not change service start type: "
                        + win32Exception.Message);
                }

                CloseServiceHandle(serviceHandle);
                CloseServiceHandle(scManagerHandle);
            }
        }


Использование:

var svc = new ServiceController(WdiSystemHost);
ServiceHelper.ChangeStartMode(svc, ServiceStartMode.Disabled);

Нашел решение:

public static class ServiceHelper
        {
            [DllImport("advapi32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
            public static extern Boolean ChangeServiceConfig(
                IntPtr hService,
                UInt32 nServiceType,
                UInt32 nStartType,
                UInt32 nErrorControl,
                String lpBinaryPathName,
                String lpLoadOrderGroup,
                IntPtr lpdwTagId,
                [In] char[] lpDependencies,
                String lpServiceStartName,
                String lpPassword,
                String lpDisplayName);

            [DllImport("advapi32.dll", SetLastError = true, CharSet = CharSet.Auto)]
            static extern IntPtr OpenService(
                IntPtr hSCManager, string lpServiceName, uint dwDesiredAccess);

            [DllImport("advapi32.dll", EntryPoint = "OpenSCManagerW", ExactSpelling = true, CharSet = CharSet.Unicode, SetLastError = true)]
            public static extern IntPtr OpenSCManager(
                string machineName, string databaseName, uint dwAccess);

            [DllImport("advapi32.dll", EntryPoint = "CloseServiceHandle")]
            public static extern int CloseServiceHandle(IntPtr hSCObject);

            private const uint SERVICE_NO_CHANGE = 0xFFFFFFFF;
            private const uint SERVICE_QUERY_CONFIG = 0x00000001;
            private const uint SERVICE_CHANGE_CONFIG = 0x00000002;
            private const uint SC_MANAGER_ALL_ACCESS = 0x000F003F;

            public static void ChangeStartMode(ServiceController svc, ServiceStartMode mode)
            {
                var scManagerHandle = OpenSCManager(null, null, SC_MANAGER_ALL_ACCESS);
                if (scManagerHandle == IntPtr.Zero)
                {
                    throw new ExternalException("Open Service Manager Error");
                }

                var serviceHandle = OpenService(
                    scManagerHandle,
                    svc.ServiceName,
                    SERVICE_QUERY_CONFIG | SERVICE_CHANGE_CONFIG);

                if (serviceHandle == IntPtr.Zero)
                {
                    throw new ExternalException("Open Service Error");
                }

                var result = ChangeServiceConfig(
                    serviceHandle,
                    SERVICE_NO_CHANGE,
                    (uint)mode,
                    SERVICE_NO_CHANGE,
                    null,
                    null,
                    IntPtr.Zero,
                    null,
                    null,
                    null,
                    null);

                if (result == false)
                {
                    int nError = Marshal.GetLastWin32Error();
                    var win32Exception = new Win32Exception(nError);
                    throw new ExternalException("Could not change service start type: "
                        + win32Exception.Message);
                }

                CloseServiceHandle(serviceHandle);
                CloseServiceHandle(scManagerHandle);
            }
        }

Использование:

var svc = new ServiceController(WdiSystemHost);
ServiceHelper.ChangeStartMode(svc, ServiceStartMode.Disabled);
Голосуйте — палец вниз.0Голосуйте — палец вверх.0

Цитата: Станислав от 21.05.2021, 09:34

Доброго времени суток! Не хочу создавать лишний топик, поэтому напишу тут. 
Христ в ТГ говорит про его курсы С#, где можно их найти?
Заранее спасибо!

Доброго времени суток! Не хочу создавать лишний топик, поэтому напишу тут. 
Христ в ТГ говорит про его курсы С#, где можно их найти?
Заранее спасибо!

Голосуйте — палец вниз.0Голосуйте — палец вверх.0

Profile photo ofPotapovS
Цитата: Станислав от 21.05.2021, 09:34

Доброго времени суток! Не хочу создавать лишний топик, поэтому напишу тут. 
Христ в ТГ говорит про его курсы С#, где можно их найти?
Заранее спасибо!

Доброго времени суток! Не хочу создавать лишний топик, поэтому напишу тут. 
Христ в ТГ говорит про его курсы С#, где можно их найти?
Заранее спасибо!

Голосуйте — палец вниз.0Голосуйте — палец вверх.0

Голосуйте — палец вниз.0Голосуйте — палец вверх.2
Лайкнули XpucT и Станислав

Profile photo ofYar
Цитата: ЯR от 21.05.2021, 09:37

Здравствуйте.
Внизу страницы есть ссылки на Youtube-канал.

Здравствуйте.
Внизу страницы есть ссылки на Youtube-канал.

Голосуйте — палец вниз.0Голосуйте — палец вверх.2
Лайкнули XpucT и Станислав
Лучший способ помочь себе — помогать другим.

В этой статье мы поговорим о каталоге WinSxS в Windows, причинах его постоянного роста и способах очистки. Каталог C:windowsWinSxS является хранилищем компонентов Windows. В этом каталоге хранятся dll библиотеки, бинарные и xml файлы, необходимые для установки и работы различных ролей и компонентов Windows. Каждый раз когда вы устанавливаете обновления Windows (это происходит ежемесячно), новая версия обновляемого компонента устанавливается в систему, а старая сохраняется в хранилище компонентов WinSxS (это необходимо для обеспечения совместимости и возможности “отката“ к старым версиям компонентов при удалении проблемного обновления).

Со временем размер каталога WinSxS постоянно увеличивается. Причем его размер ничем не ограничен (хотя на практике размер папки WinSxS в Windows 10 редко превышает 15-20 Гб.)

каталог WinSxS в windows10

В этой статье мы рассмотрим наиболее безвредные способы очистки папки WinSxS в Windows 10 и Windows Server.

  • Оптимизация хранилища компонентов и удаление старых версий компонентов, оставшихся после установки обновлений Windows;
  • Технология Features on Demand (функции по требованию), позволяющая удалить неиспользуемые компоненты Windows с диска;
  • Сжатие файлов в папке WinSxS – способ уменьшить размер каталога WinSxS за счет включения NTFS компрессии.

У многих пользователей возникает естественный вопрос можно ли вручную удалить файлы из папки WinSxS. Ответ на этот вопрос – категоричное НЕТ! Такими действиями с большой долей вероятности вы сломаете свою Windows. И хотя отдельные попытки удаления конкретных файлов из папки WinSxS могут быть удачными, рекомендовать этот способ нельзя.

Содержание:

  • Как узнать реальный размер папки WinSxS в Windows 10?
  • Очистка хранилища компонентов WinSxS в Windows
  • Удаление неиспользуемых компонентов Windows (Windows Server)
  • Включаем NTFS сжатие на папке WinSxS в Windows

Как узнать реальный размер папки WinSxS в Windows 10?

Самый простой способ получить текущий размер каталога WinSxS в Windows, запустить проводник File Explorer и открыть свойства папки %windir%WinSxS (или воспользоваться скриптом PowerShell). Но имейте в виду, что большинство файловых менеджеров (в том числе File Explorer) показывают несколько больший размер каталога WinSxS, чем он занимает на диске.

Дело в том, что в каталоге WinSxS есть большое количество hard links (жестких символических ссылок) на файлы в других системных каталогах. Файловые менеджеры при подсчете размера папки WinSxS учитывают объем файлов, на которые ссылаются жесткие ссылки, а это не корректно.

Чтобы реальный (без учета жестких ссылок) размер папки WinSxS, воспользуйтесь утилитой SysInternal du:

du -v c:windowswinSXS

получить реальный размер каталога winsxs с помощью утилиты du.exe

Но проще всего проанализировать размер хранилища компонентов в папке WinSxS с помощью команды DISM:

Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore

Dism.exe Cleanup Image-AnalyzeComponentStore

Разберемся, что возвращает данная команда:

Размер хранилища компонентов по данным проводника : 5.70 GB (это размер хранилища с учета жестких ссылок, который отображается в проводнике)
Фактический размер хранилища компонентов : 5.49 GB (реальный размер хранилища компонентов за исключением жестких ссылок)
Совместно с Windows : 3.12 GB (обязательные файлы системы, не могут быть удалены)
Резервные копии и отключенные компоненты : 2.12 GB (устаревшие файлы компонентов, которые нужны на случай проблем с установленными обновлениями)
Кэш и временные данные : 245.87 MB (файлы используются для ускорения работы системы обслуживания)
Дата последней очистки : 2018-07-31 12:45:23
Число освобождаемых пакетов : 10 (файлы, которые обновились после установки обновлений Windows, они будут удалены при очистке хранилища)
Рекомендуется очистка хранилища компонентов : Да

Как вы видите, в данном случае можно уменьшить размер каталога WinSxS на 2.1 Гб + 250 Мб.

Очистка хранилища компонентов WinSxS в Windows

Самый быстрый и простой способ освободить место в хранилище компонентов Windows (т.е. очистить папку WinSxS) – оптимизация хранилища командой:

Dism.exe /Online /Cleanup-Image /StartComponentCleanup

Dism.exe Cleanup Image StartComponentCleanup

Опция Dism /StartComponentCleanup поддерживается во всех версиях Windows, начиная с Windows 8/Windows Server.

После окончания очистки проверьте текущий размер хранилища компонентов:

Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore

В моем примере это помогло уменьшить размер папки WinSxS на 2,5 Гб.

С помощью еще одного параметра /ResetBase вы можете удалить все предыдущие версии компонентов, оставшиеся после установки обновлений Windows. После этого вы не сможете удалить установленные обновления или Service Pack, а в панели обновлений
appwiz.cpl
у обновлений пропадет кнопка «Удалить»).

Чтобы очистить старые версии компонентов, выполните:

Dism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase

В Windows 7 и Windows Server 2008 R2 для очистки старых версий компонентов, оставшихся после установки сервис пака, использовался еще один параметр DISM:

dism /online /Cleanup-Image /spsuperseded

Также вы можете удалить устаревшие обновления с помощью мастера очистки диска. Выполните команду cleanmgr c правами администратора.

В окне утилиты выберите диск и в следующем окне нажмите кнопку «Очистить системны файлы».

cleanmgr windows 10 Очистить системны файлы

Далее выберите опцию “Файлы журнала обновления Windows» и нажмите ОK. Утилита очистки диска покажет сколько места вы можете освободить, удалив файлы журнала старых обновлений Windows. В моем примере это 427 Мб.

удалить файлы журнала обновлений windows

После окончания очистки хранилища с помощью DISM проверьте сколько освободилось места на диске.

В планировщике задания Windows 10 и Windows Server 2016 есть специальное задание автоматического обслуживания, которое регулярно выполняет оптимизацию и очистку каталога WinSxS (выполняется действия, аналогичные команде dism с ключом StartComponentCleanup). Это задание StartComponentCleanup находится в разделе MicrosoftWindowsServicing. Данное задание запускается в фоновом режиме и автоматически удаляет версии компонентов старше 30 дней, которое были заменены более новыми версиями.

Можно запустить это задание вручную так:

schtasks.exe /Run /TN "MicrosoftWindowsServicingStartComponentCleanup"

задание планировщика StartComponentCleanup - очистка компонентов

Удаление неиспользуемых компонентов Windows (Windows Server)

В статье Безопасная очистка папки WinSxS в Windows Server 2016/2012 мы рассмотрели функцию Features on Demand (функции по требованию), предоставляющую возможность удаления с диска бинарных файлов неиспользуемых ролей и компонентов из каталога WinSxS. Для этого в Windows Server используется командлет PoweShell Uninstall-WindowsFeature.

В Windows 10 командлет Uninstall-WindowsFeature отсуствует, и для удаления компонентов Windows из образа нужно использовать DISM.

DISM в отличии от Uninstall-WindowsFeature не удаляет зависимые компоненты.

Полный список доступных функций в образе Windows 10 можно получить с помощью команды:
DISM.exe /Online /English /Get-Features /Format:Table

windows 10 dism get-features список установленных компонентов

Чтобы удалить, например компонент TelnetClient с диска (из каталога WinSxS), выполните команду:
DISM.exe /Online /Disable-Feature /Featurename:TelnetClient /Remove

DISM Disable-Feature Remove

Если еще раз вывести список всех доступных функций по требованию в Windows, вы увидите, что статус компонента изменится на Disabled with Payload Removed.

Таким образом в Windows можно существенно уменьшить размер папки WinSxS, удалив с диска неиспользуемые компоненты. Единственный нюанс, это вариант очистки каталога WinSxS подойдет для достаточной продвинутых пользователей, которые разбираются в компонентах Windows 10 и их назначении.

Включаем NTFS сжатие на папке WinSxS в Windows

Еще один способ уменьшить размера каталога WinSxS в Windows 10 – сжать содержимое каталога на уровне файловой системы NTFS.

  1. Откройте командную строку с правами администратора;
  2. Остановите и отключите службы Windows Installer и Windows Module Installer:
    sc stop msiserver
    
    sc stop TrustedInstaller
    
    sc config msiserver start= disabled
    
    sc config TrustedInstaller start= disabled
  3. Создайте резервную копию списков доступа (ACL) назначенных на файлы и папки в каталоге WinSxS с помощью утилиты icacls. Резервная копия ACL представляет собой обычной текстовый файл, в котором указаны все файлы и каталоги и назначенные на них NTFS разрешения (в дальнейшем этот файл понадобиться для восстановления оригинальных ACL):
    icacls "%WINDIR%WinSxS" /save "%WINDIR%WinSxS_NTFS.acl" /t

    создаем резевную копию разрешений каталога winsxs

  4. Назначьте себя владельцем папки WinSxS и всех вложенных каталогов:
    takeown /f "%WINDIR%WinSxS" /r
  5. Предоставьте своей учетной записи полные права на каталог WinSxS:
    icacls "%WINDIR%WinSxS" /grant "%USERDOMAIN%%USERNAME%":(F) /t
  6. Теперь можно выполнить сжатие файлов в каталоге WinSxS с помощью команды compact. Т.к. часть файлов может использоваться Windows, нужно указать параметр /i. Иначе сжатие будет остановлено на первом же занятом файле (в Windows 10 можно использовать более прогрессивное LZX сжатие):
    compact /s:"%WINDIR%WinSxS" /c /a /i *

    Сжимаем содержимое каталога winsxs

  7. Теперь нужно восстановить TrustedInstaller как владельца каталога WinSxS:
    icacls "%WINDIR%WinSxS" /setowner "NT SERVICETrustedInstaller" /t
  8. И вернуть оригинальные NTFS разрешения на каталог WinSxS из резервной копии ACL:
    icacls "%WINDIR%" /restore "%WINDIR%WinSxS_NTFS.acl"
  9. Измените типа тип запуска служб Windows Installer и Windows Module Installer:
    sc config msiserver start= demand
    
    sc config TrustedInstaller start= demand

Проверьте текущий размер каталога WinSxS.

уменьшить размер каталога winsxs в windows10 с помощью сжатия

Как вы видите, в нашем примере размер папки WinSxS за счет сжатия уменьшился с 9,36 Гб до 6,5 Гб (примерно на треть). Неплохо, особо для небольшого по размеру SSD-диска.

Указанные команды можно выполнять по отдельности (так проще контролировать успешность выполнения каждой из них), либо можно объединить все операции в один файл скрипт. Вы можете скачать готовый bat файл для сжатия WinSxS здесь compress_winsxs.bat

Данный скрипт нужно запускать периодически, т.к. в каталоге WinSxS будут появляться новые «несжатые» файлы после установки новых обновлений Windows и программ.

На что может повлиять сжатие каталога WinSxS? Windows работает со сжатыми файлами в прозрачном режиме, однако при обработке таких файлов, ей может понадобиться дополнительное время на их декомпрессию/компрессию. Это может вызвать небольшое замедление при установке компонентов Windows или обновлений. Однако для современных процессоров (CPU) операция компрессии/декомпрессии файлов выполняется практически мгновенно, так что реального уменьшения скорости пользователь даже не заметит.

I’m getting this error when I try to start a windows service I’ve created in C#:

alt text

My Code so far:

private ServiceHost host = null;

public RightAccessHost()
{
    InitializeComponent();
}

protected override void OnStart(string[] args)
{
    host = new ServiceHost(typeof(RightAccessWcf));
    host.Open();
}

protected override void OnStop()
{
    if (host != null)
        host.Close();
    host = null;
}

Update #1

I solved the issue above by granting permissions to the account NETWORK SERVICE but now I have an another problem:

alt text

Update #2

Service cannot be started. System.InvalidOperationException: Service ‘RightAccessManagementWcf.RightAccessWcf’ has zero application (non-infrastructure) endpoints. This might be because no configuration file was found for your application, or because no service element matching the service name could be found in the configuration file, or because no endpoints were defined in the service element.
at System.ServiceModel.Description.DispatcherBuilder.EnsureThereAreNonMexEndpoints(ServiceDescription description)
at System.ServiceModel.Description.DispatcherBuilder.InitializeServiceHost(ServiceDescription description, ServiceHostBase serviceHost)
at System.ServiceModel.ServiceHostBase.InitializeRuntime()
at System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
at RightAccessHosting.RightAccessHost.OnStart(String[] args) in C:Users….

M463's user avatar

M463

1,9733 gold badges22 silver badges39 bronze badges

asked Nov 24, 2010 at 13:00

TheBoubou's user avatar

TheBoubouTheBoubou

19.3k53 gold badges147 silver badges234 bronze badges

2

I realize this post is old, but there’s no marked solution and I just wanted to throw in how I resolved this.

The first Error 5: Access Denied error was resolved by giving permissions to the output directory to the NETWORK SERVICE account.

The second Started and then stopped error seems to be a generic message when something faulted the service. Check the Event Viewer (specifically the ‘Windows Logs > Application’) for the real error message.

In my case, it was a bad service configuration setting in app.config.

Mangesh's user avatar

Mangesh

5,3815 gold badges48 silver badges71 bronze badges

answered Mar 6, 2011 at 0:37

Justin Skiles's user avatar

Justin SkilesJustin Skiles

9,3436 gold badges50 silver badges61 bronze badges

6

Computer -> Manage -> Service -> [your service] properties.
Then the the tab with the account information. Play with those settings, like run the service with administrator account or so.

That did it for me.

EDIT:
What also can be the problem is that, most services are run as LOCAL SERVICE or LOCAL SYSTEM accounts. Now when you run C:/my-admin-dir/service.exe with those accounts but they are not allowed to execute anything in that directory, you will get error 5. So locate the executable of the service, RMB the directory -> Properties -> Security and make sure that the account the service is run with, is in the list of users that are alloewd to have full control over the directory.

answered Aug 1, 2012 at 6:04

Mike de Klerk's user avatar

Mike de KlerkMike de Klerk

11.8k8 gold badges51 silver badges76 bronze badges

This worked for me.

  1. Right-click on top-level folder containing the service executable. Go to Properties
  2. Go to «Security» Tab
  3. Click «EDIT»
  4. Click «ADD»
  5. Enter the name «SYSTEM», click OK
  6. Highlight SYSTEM user, and click ALLOW check-box next to «Full control»
  7. Click OK twice

answered Jun 12, 2013 at 1:39

cmcginty's user avatar

3

Make sure the Path to executable points to an actual executable (Right click service -> Properties -> General tab).
Via powershell (and sc.exe) you can install a service without pointing it to an actual executable… ahem.

answered Jan 7, 2016 at 13:05

Aage's user avatar

AageAage

5,8822 gold badges32 silver badges56 bronze badges

4

I also got the same error , It resolved by
Right click on Service > Properties >Log On > log on as : Local System Account.

answered Jun 4, 2014 at 8:10

Asmita Chavan's user avatar

3

I was getting this error because I misread the accepted answer from here: Create Windows service from executable.

sc.exe create <new_service_name> binPath= "<path_to_the_service_executable>"

For <path_to_service_executable>, I was using the path of the executable’s folder, e.g. C:Folder.

It needs to be the path of the executable, e.g. C:FolderExecutable.exe.

answered Sep 10, 2018 at 12:24

Jamie Butterworth's user avatar

2

I got the solution:

1. Go to local service window(where all services found)
2. Just right click on your service name: 
3. click on "properties" 
4. go to "log on" tab
5. select "local system account"
6. click "ok"

now you can try to start the service.

answered May 30, 2018 at 17:35

Nur Uddin's user avatar

Nur UddinNur Uddin

1,7901 gold badge28 silver badges38 bronze badges

1

In my case following was not checked.

enter image description here

answered Apr 21, 2017 at 21:12

Akshay Anand's user avatar

2

if you are a having an access denied error code 5. then probably in your code your service is trying to interact with some files in the system like writing to a log file

open the services properties select log on tab and check option to allow service to interact with the desktop,
click allow service to interact with desktop

answered Oct 27, 2017 at 23:01

kudzai zishumba's user avatar

kudzai zishumbakudzai zishumba

6342 gold badges7 silver badges12 bronze badges

For me — the folder from which the service was to run, and the files in it, were encrypted using the Windows «Encrypt» option. Removing that and — voila!

answered Nov 28, 2013 at 20:45

Nicholas Blumhardt's user avatar

1

This error happens when there is a error in your OnStart method. You cannot open a host directly in OnStart method because it will not actually open when it is called, but instead it will wait for the control. So you have to use a thread. This is my example.

public partial class Service1 : ServiceBase
{
    ServiceHost host;
    Thread hostThread;
    public Service1()
    {
        InitializeComponent();
         hostThread= new Thread(new ThreadStart(StartHosting));

    }

    protected override void OnStart(string[] args)
    {
        hostThread.Start();
    }

    protected void StartHosting()
    {
        host = new ServiceHost(typeof(WCFAuth.Service.AuthService));
        host.Open();
    }

    protected override void OnStop()
    {
        if (host != null)
            host.Close();
    }
}

Frank Bryce's user avatar

Frank Bryce

8,0064 gold badges37 silver badges56 bronze badges

answered Oct 3, 2011 at 9:58

santhosh's user avatar

I had windows service hosted using OWIN and TopShelf.
I was not able to start it. Same error — «Access denied 5»

I ended up giving all the perms to my bin/Debug.

The issue was still not resolved.

So I had a look in the event logs and it turned out that the Microsoft.Owin.Host.HttpListener was not included in the class library containing the OWIN start up class.

So, please make sure you check the event log to identify the root cause before beginning to get into perms, etc.

answered May 27, 2016 at 4:00

Rashmi Pandit's user avatar

Rashmi PanditRashmi Pandit

23.1k17 gold badges71 silver badges111 bronze badges

2

In my case, I had to add ‘Authenticated Users’ in the list of ‘Group or User Names’ in the folder where the executable was installed.

answered Mar 8, 2018 at 7:27

Sankar's user avatar

One of the causes for this error is insufficient permissions (Authenticated Users) in your local folder.
To give permission for ‘Authenticated Users’
Open the security tab in properties of your folder, Edit and Add ‘Authenticated Users’ group and Apply changes.

Once this was done I was able to run services even through network service account (before this I was only able to run with Local system account).

answered Nov 2, 2018 at 13:30

Vijay kumar.S's user avatar

Right click on the service in service.msc and select property.

You will see a folder path under Path to executable like C:UsersMeDesktopprojectTorTortor.exe

Navigate to C:UsersMeDesktopprojectTor and right click on Tor.

Select property, security, edit and then add.
In the text field enter LOCAL SERVICE, click ok and then check the box FULL CONTROL

Click on add again then enter NETWORK SERVICE, click ok, check the box FULL CONTROL

Then click ok (at the bottom)

answered Nov 14, 2017 at 16:49

MagTun's user avatar

MagTunMagTun

5,5715 gold badges61 silver badges102 bronze badges

Your code may be running in the security context of a user that is not allowed to start a service.

Since you are using WCF, I am guessing that you are in the context of NETWORK SERVICE.

see: http://support.microsoft.com/kb/256299

answered Nov 24, 2010 at 13:04

Shiraz Bhaiji's user avatar

Shiraz BhaijiShiraz Bhaiji

63.7k33 gold badges143 silver badges249 bronze badges

2

I have monitored sppsvc.exe using process monitor and found out that it was trying to write to the HKEY_LOCAL_MACHINESYSTEMWPA key. After giving permissions to NETWORK SERVICE on this key, I was able to start the service and Windows suddenly recognized that it was activated again.

answered Apr 29, 2014 at 21:00

Guilherme Noronha's user avatar

Use LocalSystem Account instead of LocalService Account in Service Installer.

You can do this either from doing below change in design view of your service installer:

Properties of Service Process Installer -> Set Account to LocalSystem.

or by doing below change in in designer.cs file of your service installer:

this.serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.LocalSystem;

Cubicle.Jockey's user avatar

answered Nov 9, 2016 at 11:03

Jay Shah's user avatar

Jay ShahJay Shah

3,5191 gold badge26 silver badges25 bronze badges

Have a look at Process Utilities > Process monitor from http://www.sysinternals.com.

This is tool that allows you monitor what a process does. If you monitor this service process, you should see an access denied somewhere, and on what resource the access denied is given.

answered Nov 24, 2010 at 13:13

Pieter van Ginkel's user avatar

Pieter van GinkelPieter van Ginkel

29.1k8 gold badges71 silver badges109 bronze badges

For the error 5, i did the opposite to the solution above.
«The first Error 5: Access Denied error was resolved by giving permissions to the output directory to the NETWORK SERVICE account.»

I changed mine to local account, instead of network service account, and because i was logged in as administrator it worked

answered Dec 19, 2012 at 13:09

Chris's user avatar

If you are getting this error on a server machine try give access to the folder you got the real windows service exe. You should go to the security tab and select the Local Service as user and should give full access. You should do the same for the exe too.

answered Mar 26, 2014 at 2:43

Darshana's user avatar

DarshanaDarshana

5641 gold badge4 silver badges12 bronze badges

I accidentally set my service to run as Local service solution was to switch to Local System

answered Sep 23, 2014 at 21:45

meda's user avatar

medameda

45k14 gold badges92 silver badges122 bronze badges

After banging my had against my desk for a few hours trying to figure this out, somehow my «Main» method got emptied of it’s code!

ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[] 
{ 
    new DMTestService()
};
ServiceBase.Run(ServicesToRun);

Other solutions I found:

  • Updating the .NET framework to 4.0
  • Making sure the service name inside the InitializeComponent() matches the installer service name property

    private void InitializeComponent()
    ...
    this.ServiceName = "DMTestService";
    
  • And a nice server restart doesn’t hurt

Szhlopp

answered May 5, 2015 at 23:53

Szhlopp's user avatar

In may case system run out of free space on local disk.

answered Jul 8, 2015 at 14:30

Alexander Puchkov's user avatar

I had this issue today on a service that I was developing, and none of the other suggestions on this question worked. In my case, I had a missing .dll dependency in the folder where the service ran from.

When I added the dependencies, the issue went away.

answered Jul 21, 2015 at 16:45

Frank Bryce's user avatar

Frank BryceFrank Bryce

8,0064 gold badges37 silver badges56 bronze badges

In my case I kept the project on desktop and to access the desktop we need to add permission to the folder so I simply moved my project folder to C: directory now its working like a charm.

answered Oct 8, 2016 at 5:17

smali's user avatar

smalismali

4,6576 gold badges38 silver badges59 bronze badges

I don’t know if my answer would make sense to many, but I too faced the same issue and the solution was outrageously simple. All I had to do was to open the program which I used to run the code as an administrator. (right-click —> Run as Administrator).

That was all.

answered Aug 29, 2018 at 12:43

Harshith Rai's user avatar

Harshith RaiHarshith Rai

3,0187 gold badges20 silver badges35 bronze badges

check windows event log for detailed error message. I resolved the same after checking event log.

answered Oct 30, 2019 at 10:24

Amrik Singh's user avatar

Amrik SinghAmrik Singh

4935 silver badges4 bronze badges

All other answers talk about permissions issues — which make sense, given that’s what the error message refers to.

However, in my case, it was caused by a simple exception in my service code (System.IndexOutOfRangeException, but it could be anything).

Hence, when this error occurs, one should look inside their log and look for exceptions.

answered Sep 13, 2021 at 10:45

OfirD's user avatar

OfirDOfirD

8,9034 gold badges45 silver badges88 bronze badges

I had this issue on a service that I was deploying, and none of the other suggestions on this question worked. In my case, it was because my .config (xml) wasn’t valid. I made a copy and paste error when copying from qualif to prod.

answered Sep 11, 2015 at 9:04

SabineA's user avatar

SabineASabineA

731 gold badge1 silver badge5 bronze badges

Сообщение “Ошибка 5: отказано в доступе” обычно появляется при попытке установить какие-либо новые программы или приложения. Хотя с проблемой чаще всего сталкиваются пользователи Windows 10, она не обошла стороной и предыдущие версии операционной системы.

Как понятно из самой ошибки, доступ к действию (обновлению Windows / установке приложения) был запрещён. Это происходит из-за недостаточных разрешений в системе. Поэтому в большинстве случаев неполадка решается запуском проблемной программы от имени администратора. Помимо этого существуют и другие причины сбоя. Ниже разберём, почему так происходит, и как это исправить.

Содержание

  • Решение 1. Запустите установщик от имени администратора
  • Решение 2. Дайте своей учётной записи права администратора
  • Решение 3. Запустите приложение в режиме совместимости
  • Решение 4. Запустите средство устранения неполадок совместимости
  • Решение 5. Временно измените разрешения профиля пользователя
  • Исправления для “ошибка 5: отказано в доступе, Windows не удалось запустить службу [название] на локальном компьютере”.
    • Способ 1. Проверьте систему на наличие повреждённых файлов
    • Способ 2. Проверьте, есть ли у сервиса доступ к файлам
    • Способ 3. Откат системы
    • Способ 4. Сброс Windows

Решение 1. Запустите установщик от имени администратора

Как уже упоминалось, первым исправлением должен быть запуск приложения или установщика программы от имени администратора.

  1. Нажмите правой кнопкой мыши по ярлыку установленной программы, или по установщику, если система не позволяет установить данное приложение.
  2. Выберите пункт: Запуск от имени администратора.
  3. Когда появится окно управления учётными записями пользователей, нажмите Да.
  4. Проверьте, решило ли это проблему.

Как исправить "ошибка 5: отказано в доступе

Решение 2. Дайте своей учётной записи права администратора

Если запуск приложения от имени администратора не помог, попробуйте дать своему профилю права администратора.

  1. Нажмите ПКМ по значку Windows и выберите пункт Выполнить.
  2. Скопируйте и вставьте команду netplwiz, а затем нажмите Ок.
  3. В открывшемся окне пользователей выберите свою учётную запись и нажмите Свойства.
  4. В новом окне выберите вкладку Членство в группах и установите флажок на пункт Администратор.
  5. Нажмите: Применить и Ок.
  6. Снова попробуйте установить / запустить приложение.

Как исправить "ошибка 5: отказано в доступе

Решение 3. Запустите приложение в режиме совместимости

Одной из причин ошибки может быть проблема в совместимости программы с какими-либо системными файлами именно Windows 10, поэтому стоит попробовать запустить приложение в режиме совместимости с предыдущими версиями системы.

  1. Нажмите ПКМ по ярлыку проблемной программы, и выберите Свойства.
  2. В новом окне перейдите на вкладку Совместимость.
  3. В разделе Режим совместимости установите галочку, чтобы активировать возможность выбора альтернативной версии Windows.
  4. Выберите одну из доступных версий, а затем нажмите Применить и Ок.
  5. Пробуйте разные версии, если предыдущая попытка не дала результатов.

Как исправить "ошибка 5: отказано в доступе

Решение 4. Запустите средство устранения неполадок совместимости

В Windows встроены инструменты устранения неполадок – их можно запустить через Панель управления или панель настроек Windows. После чего система в автоматическом режиме проведёт диагностику, и исправит неполадки, если это возможно. В противном случае будут предложены рекомендации по самостоятельному решению проблемы.

  1. Снова нажмите ПКМ по ярлыку проблемного приложения.
  2. Выберите пункт: Исправление проблем совместимости.
  3. Ожидайте окончания диагностики.

Как исправить "ошибка 5: отказано в доступе

Решение 5. Временно измените разрешения профиля пользователя

Руководство:

  1. Нажмите Win + E, чтобы открыть проводник.
  2. Откройте диск, на котором установлена система (по умолчанию диск С:).
  3. Нажмите ПКМ по папке Пользователи и выберите Свойства.
  4. В новом окне выберите свой профиль и нажмите Дополнительно.
  5. В следующем окне конфигураций установите галочку “Замените все записи разрешений дочернего объекта наследуемого от этого объекта”.
  6. Нажмите: Применить и Ок.
  7. Попробуйте снова установить / запустить программу.

Как исправить "ошибка 5: отказано в доступе

Исправления для “ошибка 5: отказано в доступе, Windows не удалось запустить службу [название] на локальном компьютере”.

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

Способ 1. Проверьте систему на наличие повреждённых файлов

Поврежденные системные файлы могут привести к тому, что службы не будут работать должным образом. Поэтому можно попробовать исправить их, выполнив ввод команд в командной строке:

  1. Нажмите ПКМ по значку Windows и выберите Командная строка (Администратор).
  2. Введите следующую команду и нажмите Enter:
  3. sfc /scannow
  4. По окончании сканирования система сообщит о найденных ошибках и их исправлениях.
  5. Необходимо перезагрузить компьютер.
  6. Если проблема осталась, введите поочерёдно следующий набор команд, нажимая Enter после каждой:
  7. DISM /Online /Cleanup-Image /CheckHealth
    DISM /Online /Cleanup-Image /ScanHealth
    DISM /Online /Cleanup-Image /RestoreHealth
  8. Перезагрузите систему.

Как исправить "ошибка 5: отказано в доступе

Способ 2. Проверьте, есть ли у сервиса доступ к файлам

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

  1. Нажмите Win + X и выберите Панель управления.
  2. Перейдите в раздел Администрирование и далее в Службы.
  3. В новом окне найдите конкретную службу, указанную в сообщении об ошибке.
  4. Нажмите по ней ПКМ и выберите Свойства.
  5. Откройте вкладку Вход в систему.
  6. Установите галочку на пункт: Разрешить взаимодействие с рабочим столом.
  7. Нажмите Применить и Ок.
  8. Попробуйте снова запустить программу.

Как исправить "ошибка 5: отказано в доступе

Способ 3. Откат системы

Если приложение работало раньше, но с некоторых пор стала появляться вышеозначенная проблема, можно попробовать откатить систему до предыдущего состояния. Однако следует иметь в виду, что программу, возможно, придётся переустановить.

  1. Снова зайдите в Панель управления, как предложено в предыдущем способе.
  2. Выберите раздел Восстановление и далее Запуск восстановления системы.
  3. Отметьте дату, к которой необходимо откатить систему.
  4. Если точек восстановления недостаточно, установите галочку на соответствующий пункт.
  5. Затем нажмите Далее, чтобы запустить процесс.

Как исправить "ошибка 5: отказано в доступе

Способ 4. Сброс Windows

Если ничего из вышеперечисленного не помогло решить проблему, попробуйте сбросить Windows к первоначальным настройкам. В результате этого действия личные файлы будут сохранены, однако многие программы, драйверы и обновления системы придётся установить заново.

  1. Щёлкните ПКМ по значку Windows и выберите Параметры.
  2. Перейдите в раздел Обновление и безопасность.
  3. Выберите пункт Восстановление, и справа нажмите Начать.
  4. Далее отметьте опцию сброса с сохранением личных файлов.
  5. Подтвердите сброс, нажав соответствующую кнопку.

Как исправить "ошибка 5: отказано в доступе

Понравилась статья? Поделить с друзьями:
  • Chaffoteaux alixia ultra ошибка 108
  • Ch25g qapg k ошибка f4
  • Check paper tray change the tray ошибка sharp
  • Check internet connection android ошибка
  • Check injection ошибка на рено лагуна 2