Столкнулся с проблемой с CreateProcessWithLogonW под Windows Server 2003. Если вызывать эту функцию из сервиса (работает под LocalSystem), то возникает ошибка Access is denied. При этом если вызывать из обычного приложения, то все прекрасно работает. Под Win2k/XP проблем никаких нет, из сервиса все запускается.
LogonUser + CreateProcessAsUser из-под сервиса под Win2003 работают нормально, но их не хочется использовать из-за заморочек с доступом к оконной станции и десктопу.
Кто-нибудь с такой ситуацией сталкивался? Где тут могут быть грабли?
Здравствуйте, rmars, Вы писали:
R>Столкнулся с проблемой с CreateProcessWithLogonW под Windows Server 2003. Если вызывать эту функцию из сервиса (работает под LocalSystem), то возникает ошибка Access is denied. При этом если вызывать из обычного приложения, то все прекрасно работает. Под Win2k/XP проблем никаких нет, из сервиса все запускается.
R>LogonUser + CreateProcessAsUser из-под сервиса под Win2003 работают нормально, но их не хочется использовать из-за заморочек с доступом к оконной станции и десктопу.
R>Кто-нибудь с такой ситуацией сталкивался? Где тут могут быть грабли?
попробуйте указать явно в качестве десктопа в STARTUPINFO
_T("WinSta0\Default")
... << RSDN@Home 1.1.0 stable >>
Здравствуйте, Valerio, Вы писали:
V>попробуйте указать явно в качестве десктопа в STARTUPINFO
V>V>_T("WinSta0\Default")
V>
К сожалению, тогда нужно самому добавлять права доступа к десктопу и станции:
For CreateProcessWithLogonW, if this member is NULL or an empty string, the new process inherits the desktop and window station of its parent process. CreateProcessWithLogonW adds permission for the specified user account to the inherited window station and desktop. Otherwise, if this member specifies a desktop, it is the responsibility of the application to add permission for the specified user account to the specified window station and desktop.
Хотя при запуске из сервиса с описанным выше наследованием десктопа и станции тоже не все ясно...