winrm java客户端_java通过winrm4j远程连接win执行命令
说明:为什么使用winrm?
在Linux /UNIX/WINDOWS系统中,一般通过远程连接的方式在远端执行脚本命令或者其他,是通过SSH或者Telnet。笔者之前写过几遍运用JAVA使用SSH或者TELNET连接操作系统执行命令的博客。但这些协议之间存在的差别的。
在LINUX、UNIX系统中一般通过SSH协议来登录、执行命令;
而在Windows操作系统中,由于没有自带SSH协议,一般通过Telnet协议去登录、执行命令;但是Telnet服务默认是不开启的。所以在大规模环境中,操作比较麻烦。另外Telnet协议存在安全问题。
如果不需要执行命令,而是通过远程桌面的形式来操作windows,可以使用RDP协议,java有一个开源的项目properJavaRDP,可以在web页面或者GUI形式提供实现方案。
接回本题:
Windows远程管理(WinRM)
Server2008R2中默认开启该服务,从Server2012开始,该服务便集成在系统中默认开启,Win7默认安装此服务,但是默认为禁用状态,Win8,Win10默认开启。
所以可以通过这种winrm来实现。
winrm4j
maven导入
io.cloudsoft.windows
winrm4j
0.5.0
测试代码:
package com.test;
import org.apache.http.client.config.AuthSchemes;
import io.cloudsoft.winrm4j.client.WinRmClientContext;
import io.cloudsoft.winrm4j.winrm.WinRmTool;
import io.cloudsoft.winrm4j.winrm.WinRmToolResponse;
public class RemoteWinrm4JTest {
public static void main(String[] args) {
WinRmClientContext context = WinRmClientContext.newInstance();
WinRmTool.Builder builder = WinRmTool.Builder.builder("ip", "username", "password");
builder.setAuthenticationScheme(AuthSchemes.NTLM);
builder.port(5985);
builder.useHttps(false);
builder.context(context);
WinRmTool tool = builder.build();
tool.setOperationTimeout(5000L);
System.out.println("========");
String command = "dir";
WinRmToolResponse resp = tool.executeCommand(command);
System.out.println(resp.getStatusCode());
String out = resp.getStdOut();
System.out.println(out);
context.shutdown();
}
}
遇到问题及解决:
服务端winrm修改设置:
winrm set winrm/config/service '@{AllowUnencrypted="true"}'
winrm java客户端_java通过winrm4j远程连接win执行命令相关推荐
- ssh远程执行服务器命令,ssh远程连接服务器执行命令
问题 首先说一下使用ssh远程连接服务器执行命令的方法: 为了方便描述,这里把测试服务器称之为A1,目标服务器称之为A2 A1与A2之间首先要建立ssh免密登录,在A1上生成公钥和私钥 ssh-key ...
- java jsch_java - 使用JSch在远程计算机上执行命令
SSH是访问远程计算机,传输数据和执行远程命令的一种简单而安全的方法.除了基础的交互模式外,还有许多依赖于ssh Client/Server架构的工具可以实现自动化执行远程任务.我们可以找到ssh客户 ...
- java使用2种方法操作liberoffice把word转pdf,pdf加水印,java远程调用Linux执行命令
文章目录 libreoffice下载地址 安装 (第一种) java调用 (第二种 推荐) java调用Linux命令转pdf java远程连接Linux执行命令(少数情况) linux安装windo ...
- 老男孩教育50期左婷婷-day03-xhell连接服务器-远程连接排错-基础命令
xshell连接服务器-远程连接排错-基础命令 作者:左婷婷 归档:学习笔记 2018/7/11 快捷键: Ctrl + 1 标题1 Ctrl + 2 标题2 Ctrl + 3 ...
- 在LoadRunner向远程Linux/Unix执行命令行并收集性能数据
前面介绍过在LoadRunner的Java协议实现"使用SSH连接Linux",当然连接之后的故事由你主导. 今天要讲的,是一个非Java版本.是对"在LoadRunne ...
- unity连接linux服务器,C#编程之C#通过SharpSSH库与Linux服务器建立SSH连接并执行命令...
本文主要向大家介绍了C#编程之C#通过SharpSSH库与Linux服务器建立SSH连接并执行命令,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助. 在Unity3D项目开发工具时需要用到S ...
- c# ssh到linux,C#通过SharpSSH库与Linux服务器建立SSH连接并执行命令
在Unity3D项目开发工具时需要用到SSH连接远程Linux服务器执行命令,找到SharpSSH链接库后,通过此方法就可使用./// /// SSH登录远程Linux服务器,并运行指令 /// // ...
- java 连接远程服务器_java实现连接远程服务器并执行命令的基本原理
一.所需jar包 需要借助Ganymed SSH的jar包: ganymed-ssh2-build210.jar 二.实现原理 Ganymed SSH-2 java在整个访问过程中担当SSH的客户端 ...
- java 远程连接_java实现连接远程服务器并执行命令的基本原理
一.所需jar包 需要借助Ganymed SSH的jar包: ganymed-ssh2-build210.jar 二.实现原理 Ganymed SSH-2 java在整个访问过程中担当SSH的客户端 ...
- socket java 客户端_Java基于socket实现的客户端和服务端通信功能完整实例
本文实例讲述了Java基于socket实现的客户端和服务端通信功能.分享给大家供大家参考,具体如下: 以下代码参考马士兵的聊天项目,先运行ChatServer.java实现端口监听,然后再运行Chat ...
最新文章
- 【原创】ListView快速滚动至新添加一行(自动滚动)
- echo使用说明,参数详解
- 首个镜子分割网络问世,大连理工、鹏城实验室、香港城大出品 | ICCV 2019
- 从零开始入门 K8s | 可观测性:你的应用健康吗?
- Vue013_ vue组件化编码
- 简单深入两个虚拟内存API VirtualAlloc及VritualCopy
- .Net Core2.0下使用Dapper遇到的问题
- ssl1759-求连通分量【图论,深搜,广搜】
- 查看oracle会话和进程_带有Oracle Digital Assistant和Fn Project的会话式UI
- pythonfor循环是迭代器吗_[Python] 迭代器是什么?你每天在用的for循环都依赖它!...
- 高等数学(第七版)同济大学 习题4-2(后半部分) 个人解答
- editormd 支持拖放上传图片和视频
- 2022年圣诞节外贸出口热门清单 外贸进出口商品查询 贸易动力
- 最新Discuz模板二次元动漫C风格+C风格门户版1.1 UTF8+GBK
- Go实战--golang中使用MongoDB(mgo)
- XiaoHu日志 9/7~9/17
- 中国怪企 许昌怪人----胖东来
- VC操作EXCEL2003
- 【人脸识别】基于KL变换人脸识别含Matlab源码
- redis设置key的时间戳