Powershell小技巧--远程对比服务配置

假如你的PS远程运行在两台服务器上,这里有一个简单的脚本教你怎么从每台服务器上得到所有的服务状态并计算他们之间的差别。

代码如下:

$Server1 = 'myServer1'
$Server2 = 'someOtherServer'
 
$services1 = Invoke-Command { Get-Service } -ComputerName $Server1 |
  Sort-Object -Property Name, Status
 
$services2 = Invoke-Command { Get-Service } -ComputerName $Server2 |
  Sort-Object -Property Name, Status
 
Compare-Object -ReferenceObject $services1 -DifferenceObject $services2 -Property Name, Status -PassThru |
  Sort-Object -Property Name

结果将会输出服务配置的不同之处。

支持PS3.0及以后版本

(0)

相关推荐

  • PowerShell小技巧之启动远程桌面连接

    以Windows Server 2012 R2为例,其实非常简单.先启用远程连接: (gwmi -class win32_terminalservicesetting -namespace "root\cimv2\terminalservices").setallowtsconnections(1) 然后再启用几条防火墙规则即可,用PowerShell(需要管理员权限)更显其威武: PS> Get-NetFirewallRule -Name RemoteDesktop* | se

  • PowerShell小技巧之添加远程防火墙规则

    接着昨天的场景,虽然将Windows Server 2012 Core的默认控制台设置成了PowerShell,还启用了远程桌面,但是对于Core版本的服务器来讲,远程桌面形同鸡肋,所以我想启用PowerShell远程访问,在服务器上以管理员权限运行: Enable-PSRemoting -Force 在尝试建立远程连接时,提示访问被拒绝,此时可能是防火墙问题:我需要使用PowerShell添加PowerShell远程防火墙规则: New-NetFirewallRule -Name powers

  • PowerShell远程安装MSI安装包、EXE可执行程序的方法

    尽管对IT管理员或者开发者来讲,这是一个很常见的任务,但是在网上能找到"远程安装一个msi包或者exe应用程序"的相关文档还是比较少的.甚至有人在一些论坛的评论中写道,这不可能实现.事实上还是可以的.我会在本文提供两段代码,分别负责远程安装MSI包和EXE可执行应用程序. 一.安装MSI包 使用PowerShell调用WMI对象,你可以执行下面的脚本来安装你的MSI安装包: 复制代码 代码如下: $box="deviis01" #this is the name o

  • Powershell小技巧之开启关闭远程连接

    如果你要通过Powershell远程访问电脑.这时你必须在对方电脑(你想要访问的电脑),用管理员权限执行下面代码: 复制代码 代码如下: PS> Enable-PSRemoting -SkipNetworkProfileCheck -Force 一旦你这样执行了代码,你只要拥有目标电脑的本地管理员权限就能从其它窗体访问这台电脑了.当两台电脑在同一个域内你就可以直接指定计算机名而不需要它的IP的地址. 启动交互方式: 复制代码 代码如下: PS> Enter-PSSession -Compute

  • PowerShell入门教程之远程操作运行PowerShell的方法

    PowerShell远程操作是远程管理的基础,它为集中管理分布式系统提供了又一种可靠.高效的方法. 一般来说PowerShell远程操作依赖于远程处理基础结构,但为数不多的几个自身具有远程处理能力的命令除外,如Get-Service.Get-Process.Get-WMIObject.Get-EventLog和Get-WinEvent等.(不难看出,这些命令都是"读取"系统的某些方面的信息,不做更改.它们依赖.Net Framework完成远程操作.) 配置远程基础结构 远程基础结构是

  • Powershell小技巧之非相同域或信任域也能远程

    默认通过Enable-PSRemoting打开PS远程,启动了Kerberos认证.这个方法只适合两台电脑在相同域或信任域内的指定电脑(名字可以带后缀).但它不支持跨域.域外或IP地址. 要让它能正常工作,你需要改变计算机的远程方式.请用管理员权限执行下面命令: 复制代码 代码如下: PS> Set-Item WSMan:\localhost\Client\TrustedHosts -Value * -Force 如果这个路径非法,你可能首先需要在电脑上打开PS远程(使用"Enable-P

  • 使用HTTP api简单的远程执行PowerShell脚本

    可能有些情况下,你不想完全体验通过PSRP(PowerShell远程处理协议)远程管理,或有需要从非Windows系统上执行一些PowerShell脚本.你可能会像我很久之前在这篇文章中写的那样直接基于WS-Man来写代码.但是那样很复杂,并且需要WS-Man和SOAP的一些知识. 我在PowerShell脚本中使用.Net HttpListener类写了个HTTP监听器.你可以非常简单地启动一个监听器的实例(需要提升权限监听网络),现在你可以执行任意的PowerShell命令了,它还可以返回多

  • Powershell小技巧--远程对比服务配置

    假如你的PS远程运行在两台服务器上,这里有一个简单的脚本教你怎么从每台服务器上得到所有的服务状态并计算他们之间的差别. 复制代码 代码如下: $Server1 = 'myServer1' $Server2 = 'someOtherServer'   $services1 = Invoke-Command { Get-Service } -ComputerName $Server1 |   Sort-Object -Property Name, Status   $services2 = Invo

  • Powershell小技巧之保存服务信息

    如果你需要保存一个PS命令结果到磁盘能将它移动到其它电脑上,这里有一个简单的方法: 复制代码 代码如下: $Path = "$env:temp\mylist.xml"   Get-Service |   Add-Member -MemberType NoteProperty -Name ComputerName -Value $env:COMPUTERNAME -PassThru |   Export-Clixml -Depth 1 -Path $Path   explorer.exe

  • Windows Server 2016远程桌面服务配置和授权激活(2个用户)

    Server 2016默认远程桌面连接数是2个用户,如果多余两个用户进行远程桌面连接时,系统就会提示超过连接数,可以通过添加远程桌面授权解决: 1.添加远程桌面授权服务 第一步:服务器管理 - 添加角色和功能打开添加角色和功能向导窗口,选择基于角色或给予功能安装: 第二步:添加远程桌面会话主机和远程桌面授权功能: 以上配置完成后即可使用多于2用户同时登陆,但使用期限为120天,再次登陆会有如下提示: 2.添加远程桌面授权许可 添加之前将时间调至未来的一个时间,用来增加使用期限 打开远程桌面授权管

  • Powershell小技巧之使用WS-Man来调用PowerShell命令

    虽然PowerShell远程管理被构建在 WS-Management的之上,但它是协议中的协议.如果尝试使用 PSRP (PowerShell远程处理协议)直接进行交互,本质上需要在客户端机器上运行一个PowerShell副本.另一种方法是使用一个鲜为人知的远程命令行工具,称为WinRS.WinRS是一个简单的工具,允许远程CMD.EXE,它也是构建在WS-Management之上的.所不同的是WinRS重用了 WS-Transfer中的Create和Delete,并引入了一些新的自定义的SOA

  • PowerShell小技巧之执行SOAP请求

    SOAP的请求在Web Service是无处不在的,像WCF服务和传统ASMX asp.net的web Service.如果要测试SOAP服务是否好用通过web编程来实现就显得太过于复杂了,下面的脚本片段(snippet)将会轻而易举的完成通过powershell测试和调用SOAP服务: 这是一段程序代码. 复制代码 代码如下: function Execute-SOAPRequest (         [Xml]    $SOAPRequest,         [String] $URL

  • PowerShell小技巧之配置机器的静态IP

    家用电脑安装了一台虚拟机,默认没有配置网络,本来是想利用PowerShell启用无线网络,可是安装过程需要在线获取一些文件,所以失败,无奈只能配置静态IP地址了,参考了Ed Wilson的:Use PowerShell to Configure Static IP and DNS Settings $wmi = Get-WmiObject win32_networkadapterconfiguration -filter "ipenabled = 'true'" $wmi.Enable

随机推荐