gpt4 book ai didi

java - 如何执行远程 PSSession 并在远程桌面中运行脚本?

转载 作者:行者123 更新时间:2023-11-30 10:15:49 26 4
gpt4 key购买 nike

当我尝试从 CMD 手动连接并运行 PowerShell 脚本时,我可以做到,但是当我尝试在我的 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 命令不在远程桌面中执行,有人知道发生了什么吗?

最佳答案

Enter-PSSession 用于交互式。对于非交互式命令执行,使用Invoke-Command:

Invoke-Command -Computer 'User-Pc' -Scriptblock {
Get-ChildItem
} -Credential $cred

关于java - 如何执行远程 PSSession 并在远程桌面中运行脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50310790/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com