说明:为什么使用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执行命令相关推荐

  1. ssh远程执行服务器命令,ssh远程连接服务器执行命令

    问题 首先说一下使用ssh远程连接服务器执行命令的方法: 为了方便描述,这里把测试服务器称之为A1,目标服务器称之为A2 A1与A2之间首先要建立ssh免密登录,在A1上生成公钥和私钥 ssh-key ...

  2. java jsch_java - 使用JSch在远程计算机上执行命令

    SSH是访问远程计算机,传输数据和执行远程命令的一种简单而安全的方法.除了基础的交互模式外,还有许多依赖于ssh Client/Server架构的工具可以实现自动化执行远程任务.我们可以找到ssh客户 ...

  3. java使用2种方法操作liberoffice把word转pdf,pdf加水印,java远程调用Linux执行命令

    文章目录 libreoffice下载地址 安装 (第一种) java调用 (第二种 推荐) java调用Linux命令转pdf java远程连接Linux执行命令(少数情况) linux安装windo ...

  4. 老男孩教育50期左婷婷-day03-xhell连接服务器-远程连接排错-基础命令

      xshell连接服务器-远程连接排错-基础命令 作者:左婷婷 归档:学习笔记 2018/7/11 快捷键: Ctrl + 1    标题1 Ctrl + 2    标题2 Ctrl + 3    ...

  5. 在LoadRunner向远程Linux/Unix执行命令行并收集性能数据

    前面介绍过在LoadRunner的Java协议实现"使用SSH连接Linux",当然连接之后的故事由你主导. 今天要讲的,是一个非Java版本.是对"在LoadRunne ...

  6. unity连接linux服务器,C#编程之C#通过SharpSSH库与Linux服务器建立SSH连接并执行命令...

    本文主要向大家介绍了C#编程之C#通过SharpSSH库与Linux服务器建立SSH连接并执行命令,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助. 在Unity3D项目开发工具时需要用到S ...

  7. c# ssh到linux,C#通过SharpSSH库与Linux服务器建立SSH连接并执行命令

    在Unity3D项目开发工具时需要用到SSH连接远程Linux服务器执行命令,找到SharpSSH链接库后,通过此方法就可使用./// /// SSH登录远程Linux服务器,并运行指令 /// // ...

  8. java 连接远程服务器_java实现连接远程服务器并执行命令的基本原理

    一.所需jar包 需要借助Ganymed SSH的jar包:  ganymed-ssh2-build210.jar 二.实现原理 Ganymed SSH-2 java在整个访问过程中担当SSH的客户端 ...

  9. java 远程连接_java实现连接远程服务器并执行命令的基本原理

    一.所需jar包 需要借助Ganymed SSH的jar包:  ganymed-ssh2-build210.jar 二.实现原理 Ganymed SSH-2 java在整个访问过程中担当SSH的客户端 ...

  10. socket java 客户端_Java基于socket实现的客户端和服务端通信功能完整实例

    本文实例讲述了Java基于socket实现的客户端和服务端通信功能.分享给大家供大家参考,具体如下: 以下代码参考马士兵的聊天项目,先运行ChatServer.java实现端口监听,然后再运行Chat ...

最新文章

  1. 【原创】ListView快速滚动至新添加一行(自动滚动)
  2. echo使用说明,参数详解
  3. 首个镜子分割网络问世,大连理工、鹏城实验室、香港城大出品 | ICCV 2019
  4. 从零开始入门 K8s | 可观测性:你的应用健康吗?
  5. Vue013_ vue组件化编码
  6. 简单深入两个虚拟内存API VirtualAlloc及VritualCopy
  7. .Net Core2.0下使用Dapper遇到的问题
  8. ssl1759-求连通分量【图论,深搜,广搜】
  9. 查看oracle会话和进程_带有Oracle Digital Assistant和Fn Project的会话式UI
  10. pythonfor循环是迭代器吗_[Python] 迭代器是什么?你每天在用的for循环都依赖它!...
  11. 高等数学(第七版)同济大学 习题4-2(后半部分) 个人解答
  12. editormd 支持拖放上传图片和视频
  13. 2022年圣诞节外贸出口热门清单 外贸进出口商品查询 贸易动力
  14. 最新Discuz模板二次元动漫C风格+C风格门户版1.1 UTF8+GBK
  15. Go实战--golang中使用MongoDB(mgo)
  16. XiaoHu日志 9/7~9/17
  17. 中国怪企 许昌怪人----胖东来
  18. VC操作EXCEL2003
  19. 【人脸识别】基于KL变换人脸识别含Matlab源码
  20. redis设置key的时间戳

热门文章

  1. 三阶段最小二乘法 回归分析 3SLS python实现
  2. 饮品类公众号引流到企微,搭建私域模型,实现粉丝快速增长
  3. 【PS技能+】简单几步教会你使用PS制作GIF动图
  4. 基于STM32的物联网语音控制智能家居
  5. 虚拟交换系统-VSS
  6. linux网卡dhcp获取ip,Linux下通过DHCP服务器获取IPv6地址
  7. 苹果x屏幕多少钱_xsmax闪屏,苹果xsmax换屏幕多少钱
  8. win10 uwp 相机的分辨率设置方法
  9. python + selenium清除Chrome缓存
  10. Ubuntu 快捷截图