Когда я пытаюсь подключиться и запустить скрипт PowerShell вручную из CMD, я могу это сделать, но когда я пытаюсь сделать то же самое в своем коде Java, отображается ошибка, мой код для подключения такой:
String command = "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell C:\\scr.ps1";
Process powerShellProcess = Runtime.getRuntime().exec(command);
powerShellProcess.getOutputStream().close();
String line;
System.out.println("Standard Output:");
BufferedReader stdout = new BufferedReader(new InputStreamReader(
powerShellProcess.getInputStream()));
while ((line = stdout.readLine()) != null) {
System.out.println(line);
}
stdout.close();
//En caso de error se obtiene
System.out.println("Standard Error:");
BufferedReader stderr = new BufferedReader(new InputStreamReader(
powerShellProcess.getErrorStream()));
while ((line = stderr.readLine()) != null) {
System.out.println(line);
}
stderr.close();
System.out.println("Done");
Прежде чем я попытался поместить все команды в командную строку, но это не сработало, поэтому я решил поместить это в скрипт. Скрипт содержит это:
$pass = ConvertTo-SecureString "pass" -AsPlainText -Force
$cred = New-Object System.management.Automation.PSCredential("user", $pass)
Enter-PSSession -ComputerName User-Pc -Credential $cred ;
dir
но последняя команда dir
выполняется на локальном рабочем столе mi, а не на удаленном, я отлаживаю и не вижу ошибок, скрипт работает, соединение выполнено, но я не понимаю, почему dir
команда не выполняется на удаленном рабочем столе, кто-нибудь знает, что происходит?