首页 > 系统相关 >【Powershell】Powershell在远程计算机上执行指令

【Powershell】Powershell在远程计算机上执行指令

时间:2023-12-22 12:32:21浏览次数:45  
标签:PS Administrator Users 192.168 远程 指令 以太网 Powershell

开启并配置WinRM

被远程机器执行

前提:被远程的机器上开启可WinRM

如果连接失败;则需要在被远程的机器上运行:

Enable-PSRemoting -SkipNetworkProfileCheck -Force

【Powershell】Powershell在远程计算机上执行指令_指令

验证方法:

  • WinRM处于Running状态
  • 防火墙rule处于Allow状态

【Powershell】Powershell在远程计算机上执行指令_指令_02

远程机器执行

如果远程的计算机没有加入域(这里注意是执行远程指令的机器而不是被远程的机器);则需要为其设定:

#设定
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "192.168.11.199" -Force

#查看设定结果
Get-Item WSMan:\localhost\Client\TrustedHosts

再说一遍:这条指令在执行远程指令的机器上执行。

命令中的"192.168.11.199"是被远程的机器

在远程机器上测试是否可以正常连接到被远程机器

PS C:\Users\Administrator> Test-WSMan "192.168.11.199"


wsmid           : http://schemas.dmtf.org/wbem/wsman/identity/1/wsmanidentity.xsd
ProtocolVersion : http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd
ProductVendor   : Microsoft Corporation
ProductVersion  : OS: 0.0.0 SP: 0.0 Stack: 3.0



PS C:\Users\Administrator>

【Powershell】Powershell在远程计算机上执行指令_执行_03

更详细的内容,看我另一篇文章:https://blog.51cto.com/mlxia/5682985


使用Invoke-command

在本机执行下面的命令;

#本机
PS C:\Users\Administrator> hostname
PCA001
PS C:\Users\Administrator>
#远程计算机的访问凭证
PS C:\Users\Administrator> $credential = Get-Credential

位于命令管道位置 1 的 cmdlet Get-Credential
请为以下参数提供值:
Credential
PS C:\Users\Administrator> 

#在远程计算机中执行指令
PS C:\Users\Administrator> Invoke-Command -ComputerName 192.168.11.199 -ScriptBlock {hostname} -Credential $credential
DESKTOP001
PS C:\Users\Administrator> Invoke-Command -ComputerName 192.168.11.199 -ScriptBlock {ipconfig} -Credential $credential

Windows IP 配置


以太网适配器 以太网:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::4ad6:7f6c:bde8:956d%18
   IPv4 地址 . . . . . . . . . . . . : 192.168.11.199
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . : 192.168.11.1

以太网适配器 以太网 2:

   媒体状态  . . . . . . . . . . . . : 媒体已断开连接
   连接特定的 DNS 后缀 . . . . . . . :

以太网适配器 以太网 3:

   媒体状态  . . . . . . . . . . . . : 媒体已断开连接
   连接特定的 DNS 后缀 . . . . . . . :

以太网适配器 VMware Network Adapter VMnet1:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::9505:3329:f98b:d4b%17
   IPv4 地址 . . . . . . . . . . . . : 192.168.183.1
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . :

以太网适配器 VMware Network Adapter VMnet8:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::d4f9:e8fa:bb89:87c9%7
   IPv4 地址 . . . . . . . . . . . . : 192.168.106.1
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . :
PS C:\Users\Administrator>

以脚本的方式执行Invoke-command

脚本内容:

$UserName = "administrator"
$Password = "xxxxxxxx"
$serverip = "192.168.11.199"
$secPassword = ConvertTo-SecureString $Password -AsPlainText –Force
$cred = New-Object System.Management.Automation.PSCredential($UserName,$secPassword)
$result = invoke-command -ComputerName $serverip -Credential $cred -ScriptBlock {
hostname
gwmi win32_operatingsystem
}

$result
$result[0]

也可以将指令参数化

$UserName = "administrator"
$Password = "xxxxxxxx"
$serverip = "192.168.11.199"
$secPassword = ConvertTo-SecureString $Password -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential($UserName,$secPassword)

$a= "win32_operatingsystem"
$b = "balabala.."
$result = invoke-command -ComputerName $serverip -Credential $cred -ScriptBlock {
param($item1, $item2)  #使用参数则必需要有这句
hostname
gwmi $item1
} -ArgumentList $a,$b

$result
$result[0]

好了,就简单说这些吧;以上内容,结合工作实际环境,应该可以发生很多奇妙的反应。




标签:PS,Administrator,Users,192.168,远程,指令,以太网,Powershell
From: https://blog.51cto.com/mlxia/8934228

相关文章

  • el-select自定义指令用于触底加载分页请求options数据(附上完整代码和接口可直接用)
    问题描述某些情况下,下拉框需要做触底加载,发请求,获取option的数据为了方便复用,笔者封装了一个自定义指令另外也提供了一个简单的接口,用于演示我们先看看效果图效果图思路分析注意事项一el-select要不嵌入到body中为何,不嵌入到body标签中呢?答曰,更加方便自定义指令管理......
  • powershell 作服务端 响应网络(socket tcp)连接 提供文件夹大小查询服务
    包含:端口占用检测心跳包网络断线检测传入的数据是否为合法有效的目录路径检测读取计算文件夹大小(不含软链接|symlink)传回查询到的文件夹大小[cmdletbinding()]Param($Port=8888)$VerbosePreference="Continue"#值或取`SilentlyContinue`,此时需调用脚本时传入`-Ve......
  • 工作中常用的一些Linux指令,简单易记还实用(三)
    成功路上最大的困难就是坚持,每天坚持看一道算法,每周坚持看一本好书!工作中,离不开Linux系统,很多刚步入职场的小白,往往对于Linux操作系统的使用都显得生疏,最主要的就是对一些常用的指令记忆不熟练,下面就罗列一些使用度比较高的一些Linux指令,一起来巩固学习一下。这一部分的指令就稍......
  • vscode远程连接colab
     一、Colab端1.新建脚本install_colab_ssh.sh,添加如下内容:pipinstallcolab_ssh--upgrade*直接在colab的notebook的cell中执行会报警:接着新建一个cell并执行脚本,安装colab_ssh!bashpath/to/install_colab_ssh.sh2.新建一个cell并执行下列代码fromcolab_ssh......
  • DA指令通俗理解
    DA指令通俗理解最近在学微机的过程中,学到DA指令时对其底层实现感兴趣,但是搜集了网上的资料并没有讲的很清楚易懂的,遂有此文章,来分享一些我对这个指令的理解。1.DA指令的作用DAA这条指令书上叫做BCD加法调整指令,说人话就是因为单片机的加法指令是二进制的运算,如当01H+09H时如......
  • 可视化云平台EasyCVR远程视频监控技术在冬季电力巡检工作中的应用
    随着冬季的到来,电力巡检工作变得越来越重要。在这个寒潮天气频发的季节里,电力设备容易受到冰雪、寒风等自然因素的影响,导致故障和安全隐患,影响正常供电。为了确保电力设备的正常运行,电力公司需要加强巡检工作,及时发现和解决问题。在这个背景下,视频监控技术在冬季电力巡检工作中发......
  • 远程视频监控技术EasyCVR可视化监控管理平台在地质灾害场景中的应用
    随着科技的不断发展,视频监控技术已经成为了地质灾害监测与预警的重要手段之一。在地质灾害场景中,视频监控技术可以实时监测灾害的发展过程,及时发现险情,为抢险救援提供准确的信息,保障人民生命财产安全。一、视频监控技术的优势1)实时监测:视频监控技术可以实时监测地质灾害的发展过......
  • 5.2指令执行过程
    指令周期CPU从主存中每取出并执行一条指令所需的全部时间。指令周期常常用若干机器周期来表示,机器周期又叫CPU周期。一个机器周期又包含若干时钟周期(也称为节拍、T周期或CPU时钟周期,它是CPU操作的最基本单位)。每个指令周期内机器周期数可以不等,每个机器周期内的节拍数也可以不......
  • 远程过程调用:门和Sun RPC
    一、门门提供了调用同一台主机上的另外一个进程中某个过程的能力。门是一种特殊类型的IPC,因为客户端和服务器之间以函数参数和返回值形式交换信息。示意图:本想验证书中源码,发现头文件:#include<door.h>都没有,互联网上查了很久,也没有相关的信息。暂且作罢。。。二、SunRPC......
  • git push -f强制冲掉了Github的远程仓库怎么恢复?
    gitpush-f强制冲掉了Github的远程仓库怎么恢复?背景看到有很多教程说,可以本地仓库回退到之前的commit,恢复GitHub的remote仓库的,但是我遇到的情况是,我本地这个仓库是新建的,只有一次commit记录,我是直接push-f把remote的仓库全冲了。。。本地根本没法恢复。于是在网上......