问题: 我必须调用一个传递2个字符串参数的exe文件。该呼叫必须以其他用户身份执行
我引用了一些从提示中获得的链接。其中有几个使用powershell,很少使用runas示例,依此类推。 但是,对于powershell,我也不确定是否会遇到“由于在该系统上禁用了运行脚本而无法加载”的问题。 正因为如此,我想尝试一些正宗的东西。
尝试以下方法
尝试通过RunAs命令进行调用使我的生活变得困难。 (使用RunAs命令传递单独的pass.txt或savecred称为批处理文件)。 savecred被大多数人排除在外。其他人没有按预期工作。
Powershell的问题是,即使我运行Java文件,也总是会弹出一个用户ID /密码弹出窗口。
在命令提示符下我也出现错误,如下所示 + CategoryInfo:InvalidOperation:(:) [New-Object],MethodExcept 离子 + FullyQualifiedErrorId:ConstructorInvokedThrowException,Microsoft.Power Shell.Commands.NewObjectCommand
(下面附有示例代码)
public class SamplePS {
public static void main(String[] args) throws IOException {
Runtime runtime = Runtime.getRuntime();
String command = "powershell C:\\Users\\Ramu\\Project\\SampleFile.ps1";
//String cmds[] = {"C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\powershell.exe", "\\c", "SampleFile.ps"};
System.out.println("1");
Process proc = runtime.exec(command);
InputStream is = proc.getErrorStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader reader = new BufferedReader(isr);
String line;
while ((line = reader.readLine()) != null)
{
System.out.println(line);
}
System.out.println("2");
}
}
我的ps1文件如下所示
$credential = New-Object System.Management.Automation.PSCredential <<domain>>\<<user id>>, <<password>>
start-process cmd.exe -arg "/k dir" -Credential $credential
处理这种情况的最佳方法是什么? 请提出建议!我不确定该采取什么方法。 Powershell或Perl或任何其他脚本。 无论如何,我都必须从Java文件拨打电话。
请提出建议! 注意:暂时,我不介意以纯文本形式发送密码。 exe文件在Windows计算机中
谢谢! 拉姆