Я создаю простое приложение для наших пользователей, которое проверяет, является ли конкретный пользователь активным на ПК, и возвращает результат.
Приложение состоит из двух частей, одна из которых будет распространяться среди наших пожилых людей, которые могут установить их статус (встреча, перерыв и т. Д.), А другая будет использоваться нашими юниорами, чтобы проверить, доступен ли старший для оказания помощи в любом данное время.
Он работает путем запуска сценария PowerShell, который проверяет связь с ПК, проверяет пользователя и сохраняет результат в (доступной) хеш-таблице на сетевом ресурсе.
Оба приложения отлично работают при использовании администратором, но проблемы возникают, когда обычный пользователь пытается сделать то же самое, он просто не запускает необходимые сценарии PS.
Я на 99% уверен, что здесь виноваты права пользователя, но я изо всех сил пытаюсь найти достаточно простое решение.
Я также настроил объект групповой политики (проверил ПК через gpresult и rsop.msc), который теоретически должен это разрешать:
Конфигурация компьютера> Политики> Административные шаблоны> Компоненты Windows> Windows PowerShell - Включить выполнение сценариев - Разрешить все сценарии. (Небезопасно, но для целей тестирования:))
Фрагмент кода Java, который запускает скрипт, выглядит следующим образом:
run_script(String path) throws IOException {
String command = String.format("powershell.exe -executionpolicy bypass -file %s",path);
String result;
Process powerShellProcess = Runtime.getRuntime().exec(command);
powerShellProcess.getOutputStream().close();
BufferedReader brd= new BufferedReader(new InputStreamReader(
powerShellProcess.getInputStream()));
while ((result= brd.readLine()) != null) {
System.out.println(result);
}
brd.close();
BufferedReader err= new BufferedReader(new InputStreamReader(
powerShellProcess.getErrorStream()));
while ((line = err.readLine()) != null) {
System.out.println(result);
}
err.close();
}
Просто, чтобы повторить важную часть, все работает нормально, когда администратор запускает приложение, только обычные пользователи не могут получить ожидаемый результат.
И, наконец, мой вопрос:)
Можно ли запускать подобный код без прав администратора на удаленном ПК через приложение Java и есть ли альтернативы для получения желаемого результата (пинг компьютера, проверка пользователя, возврат результата без использования PowerShell)?
Заранее благодарю за любые предложения и советы!