JNA:com.sun.jna.platform.win32.Win32Exception- доступ запрещен
Я использую следующий код для управления службой Windows из Java-программы
public class PostgresService2
{
public static void main(String[] args)
{
try
{
W32ServiceManager serviceManager = new W32ServiceManager();
serviceManager.open(Winsvc.SERVICE_STOP);
W32Service service = serviceManager.openService("DBService",
Winsvc.SERVICE_ACCEPT_STOP);
service.stopService();
service.close();
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
}
Это дает ошибку на Windows7 (64-битной) машине
com.sun.jna.platform.win32.Win32Exception: Access is denied.
at com.sun.jna.platform.win32.W32Service.queryStatus(W32Service.java
at com.sun.jna.platform.win32.W32Service.waitForNonPendingState(W32S
at com.sun.jna.platform.win32.W32Service.stopService(W32Service.java
at chs.capitalmigrate.ui.PostgresService2.main(PostgresService2.java
Оболочка, из которой запускается команда, имеет права администратора. Как я могу предоставить полный доступ?
1 ответ
Я использую SC_MANAGER_ALL_ACCESS, и это работает. Не уверен, что это поможет.
W32ServiceManager serviceManager = new W32ServiceManager();
serviceManager.open(Winsvc.SC_MANAGER_ALL_ACCESS);
W32Service service = serviceManager.openService("servicename", Winsvc.SC_MANAGER_ALL_ACCESS);