2017-08-05 7 views
0

JAVAのPowerShellを使用してリモートサーバーに接続する際に役立つ必要があります。パスワードの入力を求めるプロンプトを表示せずにサーバー上の目的の場所(C:\ Events \ rootdir \)に移動することなく、バックグラウンドで接続を行いたい場合は、ローカルマシンからディレクトリをアップロードします。私が何をする必要がありますどのようなJava - PowerShellを使用してサーバーにリモート接続し、パスワードプロンプトをバイパスします。

enter image description here

:これを行うことで、私はパスワードのプロンプトを取得しています、しかし

String command = "powershell.exe Invoke-Command -Credential myusername -ComputerName 192.x.x.x -FilePath C:\\Events\\rootdir\\ 
Process powerShellProcess = Runtime.getRuntime().exec(command); 
powerShellProcess.getOutputStream().close(); 

:現在

、私は次のクエリを使用していますコマンド・ストリングにパスワード・コールを入れて、このパスワード・プロンプトを無視してC:\ Events \ rootdir \に直接接続しますか?

答えて

0

まず、ユーザー名とパスワードを持つ認証情報を作成する必要があります。これはちょうどexecを使用して痛みになります。このライブラリを使用してください:https://github.com/profesorfalken/jPowerShell PowerShellセッションを開始し、複数のコマンドを実行できます。

または.ps1をビルドして実行します。そして、あなたは-Credentialスイッチにパラメータとして渡す$Credを使用することができます

$Username = 'labuser' 
$Password = 'labuser' 
$pass = ConvertTo-SecureString -AsPlainText $Password -Force 
$Cred = New-Object System.Management.Automation.PSCredential -ArgumentList $Username,$pass 

:資格情報オブジェクトを作成するには

+1

こんにちはStrelok、ご返信ありがとうございます。私は提案された道を先に進んだ。 PowerShellProcess = Runtime.getRuntime()。exec(command)を実行するのではなく、各実行で提案された.ps1ファイルを作成するようにコードを修正しました。 invoke-command -ComputerName "xxx" -ScriptBlock {あなたがやりたいこと} -credential $ Cred。だからそれはトリックでした。 – kokodee

関連する問題