Из моего приложения Java я хочу запускать различные сценарии PowerShell. Скрипты PowerShell имеют входные и выходные параметры. Внутри скриптов выполняются команды PSRemoting для управления другими компьютерами под управлением Windows. Мне нужно запустить сценарии PowerShell из Java от имени администратора. В моем Java-приложении известны пользователь и пароль администратора.
Запуск сценария PowerShell, передача аргументов и возврат возвращаемых значений пока работает. Но мне не удалось запустить скрипт от имени администратора.
Код: Выделить всё
List cmd = new ArrayList();
cmd.add("powershell.exe");
cmd.add("-ExecutionPolicy");
cmd.add("Bypass");
cmd.add("-File");
cmd.add(tempScriptPath.toString());
// Add the arguments for the PowerShell file
Iterator fields = jsonArgs.fields();
while (fields.hasNext()) {
Map.Entry field = fields.next();
String key = field.getKey();
String value = field.getValue().asText(); // Get value as text
// Add the key and value to the list
cmd.add("-" + key);
cmd.add(value);
}
ProcessBuilder pb = new ProcessBuilder(cmd);
pb.redirectErrorStream(true); // Combine stdout and stderr
// Start the process
Process process = pb.start();
Код: Выделить всё
param (
[string]$ip
)
Write-Output "PS INFO: Check if ps remoting is active"
$hostname = Invoke-Command -ComputerName 127.0.0.1 -ScriptBlock { hostname }
Write-Output "PS INFO: Hostname is $hostname"
$result = @{
PsErrorCode = 0
Hostname = $hostname
}
$result | ConvertTo-Json -Depth 10
Может быть, кто-то знает, как запустить скрипт от имени администратора.
Подробнее здесь: https://stackoverflow.com/questions/792 ... t-as-admin
Мобильная версия