2014-06-22 182 views
1

我想從Linux使用JAVA執行PowerShell腳本。JAVA執行從Linux的powershell腳本

PowerShell腳本在Windows系統中。我必須從使用java bu傳遞2個參數的linux系統調用它。

是否有可能?

感謝

+0

我想使用JAVA從Linux運行遠程PowerShell腳本。 – Biswajit

+0

好的... upvote回答你的問題。但爲什麼? – Thufir

回答

0

得到了解決......

  1. 1日下載FreeSSHD http://www.freesshd.com/?ctt=download在Windows(服務器)。 請確保以管理員身份運行。

    設置FreeSSHD跟着 這個URL http://www.techrepublic.com/blog/tr-dojo/set-up-a-free-ssh-server-on-windows-7-with-freesshd/ 設置後你可以從linux或使用膩子ssh那個windows系統。

  2. 使用Java

從Linux到遠程Windows系統執行PowerShell腳本
package com.sysvana.router.config; 
import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import ch.ethz.ssh2.Connection; 
import ch.ethz.ssh2.Session; 
import ch.ethz.ssh2.StreamGobbler; 
public class Test { 
static String hostname = "10.1.10.60"; 
static String username = "administrator"; 
static String password = "[email protected]"; 
public static void main(String[] args) throws IOException { 
Connection conn = new Connection(hostname); 
conn.connect(); 
boolean isAuthenticated = conn.authenticateWithPassword (username, password); 
if (isAuthenticated == false){ 
System.out.println("authentication failed"); 
} 
System.out.println(isAuthenticated); 
Session sess = conn.openSession(); 
sess.execCommand ("powershell C:/Users/Administrator/Desktop/test.ps1"); 
InputStream stdout = new StreamGobbler (sess.getStdout()); 
BufferedReader br = new BufferedReader (new InputStreamReader (stdout)); 
while (true) 
{ 
String line = br.readLine(); 
if (line == null) break; 
System.out.println (line); 
} 
System.out.println ("Exit code" + sess.getExitStatus()); 
sess.close(); 
conn.close(); 
} 
} 

使用Ganymed SSH-2罐子http://www.ganymed.ethz.ch/ssh2/