我已经返回一个小的java代码来执行远程服务器上的SC命令,我正在使用LSRunas来提供管理员凭据。
String[] command = new String [3];
command[0] = 'cmd';
command[1] = "/c";
command[2] = "lsrunas /user:username /password:password /domain:domain /command:"sc \\servername queryex" /runpath:c\\"
ProcessBulder buider = new ProcessBuilder(command);
Process p = buider.start();
BufferedReader reader = new BufferedReader(new(InputStreamReader(p.getInputStrem()));
String line = reader.readLine();
while(line != null) {
System.out.println(line);
line = reader.readLine();
}
该程序运行正常,它在远程服务器上使用提供的凭据执行SC命令,但问题是它打开了一个新的cmd窗口来打印结果(使用RUNAS时的常见场景),但我想捕获结果并在我的java程序中读取它。有没有办法可以从新打开的cmd窗口中捕获结果。
答案 0 :(得分:0)
String line = reader.readLine();
while(line != null) {
System.out.println(line);
}
这将保持打印出相同的行。尝试:
String line;
while ((line = reader.readLine()) != null)
{
System.out.println(line);
}