winrm4j
is a project which enables Java applications to execute batch or PowerShell commands on a remote Windows server
using WinRM
You can download the latest binaries here, which also gives the details for adding winrm4j as a dependency to your project.
If you wish to build the binaries yourself, you can clone this project, and build it using Maven:
mvn clean install
Add the following to your pom.xml
:
<dependency>
<groupId>io.cloudsoft.windows</groupId>
<artifactId>winrm4j</artifactId>
<version>0.5.0</version> <!-- WINRM4J_VERSION -->
</dependency>
To use winrm4j in Java code, you first create a WinRmTool
object via the static WinRmTool.Builder
class.
WinRmTool.Builder
has several options which you might consider setting before instantiating a WinRmTool
:
workingDirectory(String)
environment(Map<String,String>)
setAuthenticationScheme(String)
disableCertificateChecks(boolean)
useHttps(boolean)
port(int)
A WinRmTool
instance supports the basic executeCommand(String)
method which executes windows native commands.
Through executeCommand(String)
method supports:
executeCommand(List<String>)
execute a list of commands concatenated with &executePs(String)
execute a PowerShell command with the native windows commandexecutePs(List<String>)
execute a list of PowerShell commands
WinRmClientContext context = WinRmClientContext.newInstance();
WinRmTool.Builder builder = WinRmTool.Builder.builder("my.windows.server.com", "Administrator", "pa55w0rd!");
builder.setAuthenticationScheme(AuthSchemes.NTLM);
builder.port(5985);
builder.useHttps(false);
builder.context(context);
WinRmTool tool = builder.build();
tool.executePs("echo hi");
context.shutdown();
Commercial support for the library is provided as part of Cloudsoft AMP. See the contacts page for the various ways to contact us.
Copyright 2015-2017 by Cloudsoft Corporation Limited
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.