powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / указанная служба не установлена
25 сообщений из 39, страница 1 из 2
указанная служба не установлена
    #38852765
DoomUnit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
службу устанавливал батником

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe C:\Srvc_MOF_Slime_Total_Production\Srvc_MOF_Slime_Total_Production\bin\Debug\Srvc_MOF_Slime_Total_Production.exe
pause

пытаюсь батником ее перезапустить

net stop "ServiceMOFSlimeTotal";
sc start "ServiceMOFSlimeTotal";
pause

остановить он её может. а вот запустить уже нет. как решить?

net start не работает
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38852877
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DoomUnitостановить он её может. а вот запустить уже нет. как решить?
У любого NT Service есть DACL -таблица где расписаны права для пользователей/ групп пользователей
(также как и для файлов/папок и для ключей реестра)
Скорее всего у текущего пользователя отсутствует право SERVICE_START.
Проверь под админом.
DoomUnitкак решить?
Либо под админом запускать (хотя в общем случае у него тоже может не быть прав).
Если для штатного пользователя, я даже не знаю как это ручками делается, скорее всего есть какая-то утилита, кот. надо запускать под админом.
Если по документации MSDN-Windows, то типа так (чтоб представлял сложность задачи):
Ниже пример кода API-VB6, в .Net я это еще не разбирал:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
      'права запуска/остановки для любого пользователя
      DoAccessNTService "Имя_службы", GENERIC_READ Or GENERIC_EXECUTE

Public Const GENERIC_ALL = &H10000000
'для SE_SERVICE это в частности дает право не только запускать/останавливать, но и удалять сервис

Public Const GENERIC_READ = &H80000000
'для SE_SERVICE это означает:
' STANDARD_RIGHTS_READ
' SERVICE_QUERY_CONFIG
' SERVICE_QUERY_STATUS
' SERVICE_INTERROGATE
' SERVICE_ENUMERATE_DEPENDENTS

Public Const GENERIC_EXECUTE = &H20000000
'для SE_SERVICE это означает:
' STANDARD_RIGHTS_EXECUTE
' SERVICE_START
' SERVICE_STOP
' SERVICE_PAUSE_CONTINUE
' SERVICE_USER_DEFINED_CONTROL

Public Const SERVICE_START = &H10&
Public Const SERVICE_STOP = &H20&


Public Function DoAccessNTService(ServiceName As String, dwAccessRights As Long) As Long
  DoAccessNTService = AddAceToObjectsSecurityDescriptor(ServiceName, _
   SE_SERVICE, _
   ConstructUniversalAndNTWellKnownSids("Users"), _
   dwAccessRights, _
   GRANT_ACCESS, _
   NO_INHERITANCE)
  If DoAccessNTService <> ERROR_SUCCESS Then
    AddLog "  Calling AddAceToObjectsSecurityDescriptor... Failed. Error code: " & RaiseAPIErrorByNumber(DoAccessNTService)
  Else
    AddLog "  Calling AddAceToObjectsSecurityDescriptor... Done."
  End If
End Function


Public Function AddAceToObjectsSecurityDescriptor(pszObjName As String, _
 ObjectType As SE_OBJECT_TYPE, pszTrustee As String, _
 dwAccessRights As Long, AccessMode As ACCESS_MODE, dwInheritance As Long) As Long
'DWORD AddAceToObjectsSecurityDescriptor (
'    LPTSTR pszObjName,          ' name of object
'    SE_OBJECT_TYPE ObjectType,  ' type of object
'    LPTSTR pszTrustee,          ' trustee for new ACE
'    TRUSTEE_FORM TrusteeForm,   ' format of trustee structure -<&#237;&#229; &#237;&#224;&#228;&#238;
'    DWORD dwAccessRights,       ' access mask for new ACE
'    ACCESS_MODE AccessMode,     ' type of ACE
'    DWORD dwInheritance         ' inheritance flags for new ACE
')
 
  Dim dwRes As Long
  Dim pOldDACL As Long, pNewDACL As Long
  Dim pSD As Long
  Dim ea As EXPLICIT_ACCESS
 
  If (pszObjName = "") Then
    AddAceToObjectsSecurityDescriptor = ERROR_INVALID_PARAMETER
    Exit Function
  End If
  
  'Get a pointer to the existing DACL.
  dwRes = GetNamedSecurityInfo(pszObjName, ObjectType, _
   DACL_SECURITY_INFORMATION, _
   0&, 0&, pOldDACL, 0&, pSD)
  If dwRes <> ERROR_SUCCESS Then
    AddLog "    Calling GetNamedSecurityInfo... Failed. Error code: " & RaiseAPIErrorByNumber(dwRes)
    'MsgBox "GetNamedSecurityInfo Error " & CStr(dwRes)
    GoTo Cleanup
  Else
    AddLog "    Calling GetNamedSecurityInfo... Done."
  End If
  
  'Initialize an EXPLICIT_ACCESS structure for the new ACE.
  BuildExplicitAccessWithName ea, pszTrustee, dwAccessRights, AccessMode, dwInheritance
  
  ' Create a new ACL that merges the new ACE into the existing DACL.
  dwRes = SetEntriesInAcl(1, ea, pOldDACL, pNewDACL)
  If dwRes <> ERROR_SUCCESS Then
    AddLog "    Calling SetEntriesInAcl... Failed. Error code: " & RaiseAPIErrorByNumber(dwRes)
    'MsgBox "SetEntriesInAcl Error " & CStr(dwRes)
    GoTo Cleanup
  Else
    AddLog "    Calling SetEntriesInAcl... Done."
  End If

  'Attach the new ACL as the object's DACL.
  dwRes = SetNamedSecurityInfo(pszObjName, ObjectType, _
   DACL_SECURITY_INFORMATION, _
   0&, 0&, pNewDACL, 0&)
  If dwRes <> ERROR_SUCCESS Then
    AddLog "    Calling SetNamedSecurityInfo... Failed. Error code: " & RaiseAPIErrorByNumber(dwRes)
    'MsgBox "SetNamedSecurityInfo Error " & CStr(dwRes)
    GoTo Cleanup
  Else
    AddLog "    Calling SetNamedSecurityInfo... Done."
  End If

Cleanup:
  If pSD <> 0 Then LocalFree pSD
  If pNewDACL <> 0 Then LocalFree pNewDACL
  
  AddAceToObjectsSecurityDescriptor = dwRes
End Function



Есть ли в .Net соответствующие классы для Service, и насколько они неглючные/удобные я еще не выяснял.
Задача кстати на очереди в ближайшие дни.
Ты б выяснил "на пальцах" хоть как-то сначала что у тебя не хватает (кто владелец сервиса, какие у кого права, под каким аккаунтом запускаешь).
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38852892
DoomUnit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
млин я уже с таким сталкивался (я про рестарт). там работало на ура.
но есть нюанс - там я использовал установочник visual studio. и батник лежал в папке с программой (в программ файлс).
а тут я примонтировал сервис силами InstallUtil.
кст система - WinServer 2003. сама служба запущена от локальной системы.
а про права - если бы прав текущему пользователю не хватало (сижу под админом), то ему бы не хватало прави остановить сервис. а ошибка видать от того что сервис нужно стандарными средствами ставить и батник ему в папку кидать.
еще видел способ с использованием sc create. но это уж совсем для отмороженных
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38852895
DoomUnit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так опять же службу же видно в службах. нужно как то путь указать
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38852898
DoomUnit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не только на мою службу алергия
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38852911
DoomUnit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
млин из командной строки все ок
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38852975
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DoomUnit,

>а про права - если бы прав текущему пользователю не хватало (сижу под админом), то ему бы не хватало прави остановить сервис.

Вообще-то SERVICE_START и SERVICE_STOP - это разные права доступа, твое утверждение в общем случае неверно.
И если ты админ, это еще в общем случае не значит, что у тебя есть права на что-то. Владельцем объекта может быть напр. TrastedInstaller, а у админа при этом права только на чтение.

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

Я тебе совет дал: найди любой способ посмотреть права на объект. К сожалению сделать это как с файлами и папками через свойства - безопасность нельзя.

Ну, м.б. у тебя какой другой глюк, кто его знает. Но я бы не принебрег проверкой прав.
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38852987
DoomUnit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну тогда есть ли разница прав у командной строки и батника?
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853006
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77,

кстати есть одна фича веселая :) для службы можно задать пустые права, то есть права доступа для изменения прав службы и прочего не будет ни у кого, даже у систем. Вернуть обратно штатными средствами я так и не понял как. Можно только сбросить ACL для всех служб по умолчанию.
сбрасывал через subinacl /perm с соответствующим ключам и именем службы, по крайней мере так было в XP =) и 7
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853007
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DoomUnit,
зависит из какого "окружения" они были запущены и с какими права.
если ты запустил просто батник и запустил командную стоку с повешенными правами это имеет существенную разницу :)
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853012
DoomUnit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
net stop "ServiceMOFSlimeTotal"
net start "ServiceMOFSlimeTotal"
pause


без точек с запятой
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853123
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DoomUnit,

по поводу как посмотреть-поменять права вот наверно разжевано:
Раздаем права на запуск/остановку сервисов под Windows

вообще ощущение, что в чем-то другом проблема. Когда нет прав, увидишь следующее:
Системная ошибка 5.
Отказано в доступе.

И никакого Start_Pending не увидишь.

Че-то ты глючное поставил, что запуститься никак не может.

>net stop "ServiceMOFSlimeTotal";
>sc start "ServiceMOFSlimeTotal";

А че за манера использовать две разные утилиты, когда одной достаточно. Хотя на результат не влияет.

>если ты запустил просто батник и запустил командную стоку с повешенными правами это имеет существенную разницу
Не на 2003-м сервере, когда он сидит на нем с правами администратора.
На Vista - 7-8-8.1, Server 2008-2008R2-2012-2012R2 -да.
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853148
DoomUnit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
net stop "ServiceMOFSlimeTotal"
net start "ServiceMOFSlimeTotal"
pause


без точек с запятой
-------------------------
это и есть решение
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853522
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтоб тем не плодить.
Правильно понимаю что в .Net есть


RegistrySecurity Class

FileSecurity Class

Но нету аналога для NT Service?

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Public Enum SE_OBJECT_TYPE
  SE_UNKNOWN_OBJECT_TYPE
  SE_FILE_OBJECT '< - FileSecurity Class 
  SE_SERVICE '< -???
  SE_PRINTER
  SE_REGISTRY_KEY '< - RegistrySecurity Class
  SE_LMSHARE
  SE_KERNEL_OBJECT
  SE_WINDOW_OBJECT
  SE_DS_OBJECT
  SE_DS_OBJECT_ALL
  SE_PROVIDER_DEFINED_OBJECT
  SE_WMIGUID_OBJECT
  SE_REGISTRY_WOW64_32KEY
End Enum
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853541
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Знаете, Дмитрий, я уже не один год разрабатываю сервисы и вообще пишу на .net, но ваши вопросы ставят меня в тупик. Мне ни разу не приходилось сталкиваться с проблемами, которые вы тут постите на форуме. Ваши темы - это какой-то глоток новизны на этом форуме. Не то, чтобы сильно полезной и актуальной, но новизны - это точно :-)

По сабжу: если речь идет о самописной службе, а не чужой, проще написать экзешник, который умеет сам себя инсталлировать и деинсталлировать, а под кем запускаться - решается установкой соответствующих свойств в инсталлерах (ServiceInstaller, ServiceProcessInstaller) - 11611062 . Главное - чтобы пользователь, который запускает экзешник, имел право на

А управлять службами можно с помощью ServiceController
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853600
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79,

>если речь идет о самописной службе, а не чужой
считайте что чужой -произвольной уже установленной в системе -назовем ее так

>А управлять службами можно с помощью ServiceController
Start/Stop -да, если есть права

А я спрашиваю как раз о правах, т.е. об объектах безопасности.

В API как раз с этим проще - т.е. модель универсальна, а различия только в типах объектов.
SE_OBJECT_TYPE enumeration
А модель универсальна.

В .Net есть отдельные классы-обертки (для отдельно взятого типа объекта):
RegistrySecurity Class
FileSecurity Class

А вот ServiceSecurity Class что-то я не вижу, про него и был вопрос.
Но видимо такого нет, иначе б был здесь:
System.Security.AccessControl Namespace

Хотя вижу какие-то общие ObjectSecurity и CommonObjectSecurity но скорее всего это не то.

В принципе вопрос можно снимать.
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853609
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77>если речь идет о самописной службе, а не чужой
считайте что чужой -произвольной уже установленной в системе -назовем ее так

>А управлять службами можно с помощью ServiceController
Start/Stop -да, если есть права
Я бы начал копать в сторону запуска процессов от имени другого пользователя с гарантированно имеющимися правами, например:
ShellExecute(this.Handle, "open", "cmd.exe", @"/k runas /netonly /user:sed@ateks.local /"net start service1"/", null,1); (не мое, и при копировании мог с кавычками накосячить)

или через CreateProcessAsUser
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853610
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя...

NativeObjectSecurity Class

ResourceType Enumeration

Members
Service A Windows service.

Надо попробовать.
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853612
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79,

ну мы о разных вещах говорим.
Вы предлагаете делать старт от имени другого пользователя (администратора, например).
А я например хочу проверить, может ли данный пользователь ("user") делать этот самый старт сервиса.
Или скажем дать этому "user" это самое право.
Не понимаете?
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853618
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77Arm79, ну мы о разных вещах говорим. Вы предлагаете делать старт от имени другого пользователя (администратора, например). А я например хочу проверить, может ли данный пользователь ("user") делать этот самый старт сервиса. Или скажем дать этому "user" это самое право. Не понимаете? Почему не понимаю, все норм. Вопрос только в том, что .net это приклад, и нет смысла делать с его помощью системные и админские штучки
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853623
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79,

>net это приклад, и нет смысла делать
ну зачем эти отмазки

нашел же..
17112967

чего рассуждать, будем пробовать по делу
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853676
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77Хотя...

NativeObjectSecurity Class

ResourceType Enumeration

Members
Service A Windows service.

Надо попробовать.

Если я правильно понял, то готового класса нету,
Inheritance HierarchySystem.Object
_ System.Security.AccessControl.ObjectSecurity
_ _ System.Security.AccessControl.CommonObjectSecurity
_ _ _ System.Security.AccessControl.NativeObjectSecurity
_ _ _ _ System.IO.Pipes.PipeSecurity
_ _ _ _ System.Security.AccessControl.CryptoKeySecurity
_ _ _ _ System.Security.AccessControl.EventWaitHandleSecurity
_ _ _ _ System.Security.AccessControl.FileSystemSecurity
_ _ _ _ System.Security.AccessControl.MutexSecurity
_ _ _ _ System.Security.AccessControl.ObjectSecurity(Of T)
_ _ _ _ System.Security.AccessControl.RegistrySecurity
_ _ _ _ System.Security.AccessControl.SemaphoreSecurity а я должен писать свой:
Код: vbnet
1.
2.
3.
  Public Class ServiceSecurity
    Inherits NativeObjectSecurity
...



По аналогии с готовыми
RegistrySecurity Class
FileSecurity Class

Так?

Если да, то как это делается? Опыта нет и рука не набита.
Где посмотреть исходники RegistrySecurity/FileSecurity
Если можно подскажите на VB.Net а не на C#, синтаксис таки отличается.

Ну если есть желание помогать осваивать ваш язык.
Если опять тупые дискуссии не по теме, забиваем и оставляю это на API чтоб не тратить время.
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853678
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77Если я правильно понял, то готового класса нету,
пичалька....
а windows.h почему-то всё есть
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853681
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77Где посмотреть исходники RegistrySecurity/FileSecurity
1) Можно дизассембляторами, например http://www.devextras.com/decompiler/
2) Куча исходников .net выложена самим майкрософтом в и-нете, но там на шарпе: http://referencesource.microsoft.com/#mscorlib/system/security/accesscontrol/filesecurity.cs,52b99e3f0aeeb82d
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853691
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилпичалька....
а windows.h почему-то всё есть
А причем тут windows.h?
Ты мне на .Net разжуй то что я спросил.
Или нафига тут сидишь и язвишь с советами что C++ лучше? Вот именно на этом форуме?
Через API я тебе сам в 2 щелчка это сделаю и без C++.
...
Рейтинг: 0 / 0
25 сообщений из 39, страница 1 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / указанная служба не установлена
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]