【Windows】【DevOps】Windows Server 2022平台启用WinRM实现远程powershell登陆 采用自签名证书开启HTTPS方案

快速配置开启WinRM(HTTP)

quiciconfig

在目标服务器上,管理员权限启动powershell,执行指令

winrm quickconfig

输入y,完整日志如下

PS C:\Windows\system32> winrm quickconfig
已在此计算机上运行 WinRM 服务。
WinRM 没有设置成为了管理此计算机而允许对其进行远程访问。
必须进行以下更改:配置 LocalAccountTokenFilterPolicy 以远程向本地用户授予管理权限。执行这些更改吗[y/n]? yWinRM 已经进行了更新,以用于远程管理。已配置 LocalAccountTokenFilterPolicy 以远程向本地用户授予管理权限。

当前默认服务配置状态

默认开启了HTTP 5985端口

开放TCP/5985端口

netsh advfirewall firewall add rule name="WinRM" protocol=TCP dir=in localport=5985 action=allow

此时可以在防火墙规则中看到刚才添加的入站规则

客户端登陆

明文密码

$username = "服务器用户名"
$password = ConvertTo-SecureString -AsPlainText "服务器密码" -Force
$cred = New-Object System.Management.Automation.PSCredential($username, $password)
Enter-PSSession -ComputerName "服务器IP地址" -Port 5985 -Credential $cred 

成功登陆远程powershell

交互式密码

Enter-PSSession -ComputerName "服务器IP" -Port 5985 -Credential (Get-Credential)

注意:采用Get-Credential方式,需要用管理员权限打开powershell,否则会报错

Get-Credential : 无法处理命令,因为一个或多个强制参数丢失:  Credential。

采用自签名证书启用WinRM的HTTPS 5986端口

以下服务器操作均在管理员权限启动的powershell中执行

查看hostname

由于证书CN需要保持与服务器主机名一致,因此,先查看主机名

hostname

创建证书

# 生成自签名证书
$subjectName = "CN=WIN-RKI1L4F3HTJ"
$cert = New-SelfSignedCertificate -DnsName WIN-RKI1L4F3HTJ -CertStoreLocation Cert:\LocalMachine\My -Subject "CN=WIN-RKI1L4F3HTJ" -KeyUsage DigitalSignature, KeyEncipherment -NotBefore (Get-Date) -NotAfter ((Get-Date).AddYears(10))
Get-ChildItem Cert:\LocalMachine\My | Where-Object {$_.Subject -eq "CN=WIN-RKI1L4F3HTJ"}# 获取证书的 Thumbprint
$certificates = Get-ChildItem Cert:\LocalMachine\My | Where-Object { $_.Subject -eq $subjectName }
$thumbprint = $certificates.Thumbprint$store = New-Object System.Security.Cryptography.X509Certificates.X509Store("MY", "LocalMachine")
$store.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadOnly)
$certificates = $store.Certificates
$targetCert = $certificates | Where-Object { $_.Thumbprint -eq $thumbprint }# 输出增强密钥用法
$targetCert.Extensions | Where-Object { $_.Oid.Value -eq '2.5.29.37' } | ForEach-Object {$_.Format([System.Security.Cryptography.X509Certificates.X509Extension]::NoFlags)
}

注意需要指定-KeyUsage参数

执行过程如下

注意,必须要有增强密钥用法:

客户端身份验证 (1.3.6.1.5.5.7.3.2), 服务器身份验证 (1.3.6.1.5.5.7.3.1)

设置 WinRM 使用证书
 

winrm set winrm/config/service '@{CertificateThumbprint="证书指纹16进制字符串"}'

此处指纹需要自行复制,不能引用$thumbprint变量(不明白)

禁用未加密连接

winrm set winrm/config/service '@{AllowUnencrypted="false"}'

删除listener

Get-ChildItem wsman:\localhost\Listener\ | Where-Object -Property Keys -like 'Transport=HTTP*' | Remove-Item -Recurse

创建新的https监听
 

New-Item -Path WSMan:\localhost\Listener\ -Transport HTTPS -Address * -CertificateThumbPrint $thumbprint -Force

效果如下

检查配置及监听状态

winrm get winrm/config/serviceGet-ChildItem wsman:\localhost\Listener

此时服务器关闭了HTTP的5985 只监听了HTTPS的5986端口

开放TCP/5986端口

netsh advfirewall firewall add rule name="WinRM" protocol=TCP dir=in localport=5986 action=allow

客户端登陆

方案一(IP地址登陆)

$SessionOption = New-PSSessionOption -SkipCNCheck -SkipCACheck
Enter-PSSession -ComputerName "服务器IP" -Port 5986 -UseSSL -Credential (Get-Credential) -SessionOption $SessionOption

方案二(命令行明文账号密码登陆)

$username = "服务器用户名"
$password = ConvertTo-SecureString -AsPlainText "服务器用户密码" -Force
$cred = New-Object System.Management.Automation.PSCredential($username, $password)
$SessionOption = New-PSSessionOption -SkipCNCheck -SkipCACheck
Enter-PSSession -ComputerName "服务器地址" -Port 5986 -UseSSL -Credential $cred -SessionOption $SessionOption

方案三(主机名登陆,繁琐)

登陆服务器,导出服务器证书
$subjectName = "CN=WIN-RKI1L4F3HTJ"
$certificates = Get-ChildItem Cert:\LocalMachine\My | Where-Object { $_.Subject -eq $subjectName }
Export-Certificate -Cert $certificates[0] -FilePath ./WIN-RKI1L4F3HTJ.cer

将证书复制到客户端

客户端配置hosts
服务器ip 	WIN-RKI1L4F3HTJ
登陆客户端,导入证书

管理员身份启动powershell,导入证书

Import-Certificate -FilePath D:\WIN-RKI1L4F3HTJ.cer -CertStoreLocation Cert:\LocalMachine\root\
登陆
 Enter-PSSession -ComputerName "WIN-RKI1L4F3HTJ" -Port 5986 -UseSSL -Credential (Get-Credential)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/445220.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《Spring Microservices in Action, 2nd Edition》读后总结

总体来说有种时过境迁的感觉,有些章节的内容已经跟不上现在,特别对于云原生大行其道的当下, 越来越多东西下沉到基础设施层,然后应用层尽量轻量化成了一种新趋势;当然任何事物都具有多面性,云原生那套也要投…

vue3+vite@4+ts+elementplus创建项目详解

1、第一步创建项目cnpm init vite4 2、设置vue3.2局域网可访问配置: 找到项目路径下的package.json目录下找到script对象下面添加一下代码: "serve": "vite --host 0.0.0.0" 启动项目命令不在是dev而是:cnpm run serve 3…

固体废物处理(一)——MDPI特刊推荐

特刊征稿 01 期刊名称: Advances in Organic Solid Waste and Wastewater Management 截止时间: 投稿截止日期:11月30日2024 目标及范围: 本主题旨在收集有关有机固体废物和废水管理最新进展的贡献。感兴趣的主题包括与废水…

AI赋能!0基础小白自媒体创业,成功率提升90%的秘诀?

本文背景 好多小伙伴也想写公众号文章,但是自己又没有写过,不知道如何开始。 今天分享个小方法,就算是写作新手,也能靠 AI 快速上手,写出好内容! 一起来看看怎么用 AI 工具 助力写作,提高效率&a…

【计算机网络】详解IP协议网段划分路由转发子网掩码网络号

一、IP功能 IP可以实现主机定位和路由选择,提供一种能力,将数据可靠地从A点跨网络送到B点。数据先根据目的IP在局域网之间进行转发,再在局域网内进行内网转发。 二、IP协议报头 4 位版本号(version):指定 IP 协议的版本&#xff…

shell案例(shell中输出彩色Hello world)

Shell中输出彩色Hello world 循环遍历不同的ANSI转义序列代码,展示了各种字体颜色、背景颜色和显示方式的效果,每个部分都包含了一个简单的循环,通过echo -e命令输出带有相应颜色或显示方式的字符串,并在每部分之间输出空行以分割…

MyBatis XML映射文件

XML映射文件 XML映射文件的名称与Mapper接口名称一致,并且将XML映射文件和Mapper接口放置在相同包下(同包同名)XML映射文件的namespace属性为Mapper接口全限定名一致XML映射文件中SQL语句的id与Mapper接口中的方法名一致,并保持返…

ICLR 2024 Spotlight|SEAL:面向真实场景超分辨率的系统性评估框架

研究背景 现实世界图像超分辨率(Real-World Super-Resolution, Real-SR)技术,作为提升图像清晰度的关键技术,正变得越来越重要。然而,如何准确评估Real-SR方法的性能,一直是该领域的一大挑战。目前的评估…

步步精科技诚邀您参加2024慕尼黑华南电子展

尊敬的客户: 我们诚挚地邀请您参加即将于2024年10月14日至10月16日在深圳国际会展中心 (宝安新馆)举办的慕尼黑华南电子展(electronica South China)。本届将聚焦人工智能、数据中心、新型储能、无线通信、硬件安全、新能源汽车、第三代半导…

云原生(四十四) | 远程连接ECS服务器

文章目录 远程连接ECS服务器 一、自带连接工具连接ECS云服务器 二、为什么要使用远程连接工具 三、远程连接ECS服务器四要素 1、用户名 密码 2、IP地址(公网IP) 3、SSH端口号 4、阿里云安全组 四、使用MobaXterm远程连接ECS云服务器 五、ECS云…

讯飞星火与昇腾AI双向奔赴:本土化技术创新应对全球化挑战的一次成功验证

文 | 智能相对论 作者 | 陈泊丞 2019年,彼时的AI赛道还不像今天这么热。 这一年,人工智能连续第三年出现在政府工作报告中,政策关键词从“加快”“加强”转变为“深化”,开始进入行业需求快速增长的应用探索期。而华为也在这个…

爬虫(反调试)

其实就是一种给页面反爬机制,一般页面用不到。 万能解决反调试方法:

vue-插槽作用域实用场景

vue-插槽作用域实用场景 1.插槽1.1 自定义列表渲染1.2 数据表格组件1.3 树形组件1.4 表单验证组件1.5 无限滚动组件 1.插槽 插槽感觉知道有这个东西,但是挺少用过的,每次看到基本都会再去看一遍用法和概念。但是在项目里,自己还是没有用到过…

查看 Excel 应用程序中已打开的 Excel 文件的完整路径

要查看 Excel 应用程序中已打开的 Excel 文件的完整路径(全路径),你可以通过以下几种方法获取具体路径,尤其是在 VSTO 应用程序中。 方法1:使用 VSTO Excel 外接程序代码 在 VSTO 外接程序代码中,您可以直接…

海外市场充电桩需求激增:充电基础设施展望

报告显示,在大多数欧盟国家的路网中,充电桩数量存在不足、不支持快速充电且分布不均匀的问题。具体而言,有6个欧洲国家的平均每百公里充电桩数量不足1个,17个国家的平均每百公里充电桩数量少于5个,仅有5个国家的平均每…

计算机网络之传输层

一、传输层提供的服务 1、传输层的功能 向上面的应用层提供通信服务,属于面向通信的最高层,用户功能的最低层。传输层为运行在不同主机上的进程中间提供了逻辑通信,网络层提供主机之间的逻辑通信。边缘部分两台主机使用网络核心部分的功能进…

网络编程(15)——服务器如何主动退出

十五、day15 服务器主动退出一直是服务器设计必须考虑的一个方向,旨在能通过捕获信号使服务器安全退出。我们可以通过asio提供的信号机制绑定回调函数即可实现优雅退出。 之前服务器的主函数如下 #include "CSession.h" #include "CServer.h"…

[Git] Git下载及使用 从入门到精通 详解(附下载链接)

前言 目录 Git概述 简介 下载 Git代码托管服务 Git常用命令 Git全局配置 获取Git仓库 在本地初始化一个Git仓库 从远程仓库克隆 基本概念 工作区文件状态 本地仓库操作 远程仓库操作 分支操作 标签操作 在IDEA中使用Git 在IDEA中配置Git 本地仓库操作 远程仓…

Ngx+Lua+Redis 实时IP黑名单系统

实时黑名单系统,如果用php脚本实现很容易,但是效率惨不忍睹呀。 要想速度快还的在nginx层实现阻塞。如果iptables 层阻塞速度更快,但是黑名单列表如果有更新就必须要重载配置,实现还是有难度的。php管理后台把黑名单ip写入到redis…

万字详解AI实践,零手写编码用AI完成开发 + 数据清洗 + 数据处理 的每日新闻推荐,带你快速成为AI大神

用AIdify完成前后端开发数据处理和数据清洗。 引言数据获取和数据处理dify构建workflow进行数据清洗前端页面构建和前后端交互总结 引言 AI时代对开发人员的加强是非常明显的,一个开发人员可以依靠AI横跨数个自己不熟悉的领域包括前后端、算法等。让我们来做个实践…