我想测试winrm是否在服务器列表上运行。
winrm id -r:servername适用于各个系统,但我想以递归方式测试csv或文本文件中的列表。
输出到文件说“工作”或“不工作”。
我该怎么做?
谢谢大家。
编辑:
我已经传递了一个vm的列表,并且直到我成功将winrm连接输出到文件并在控制台中显示失败。
get-vm | where {$ .powerstate -like“PoweredOn”} | get-vmguest | where {$ .guestfamily -like“windowsGuest”} | foreach {winrm id -r:$ _.hostname} | Out-File c:\ scripts \ winrmtest.txt
在我的文件中,我得到的输出就像 IdentifyResponse ProtocolVersion = http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd ProductVendor = Microsoft Corporation ProductVersion = OS:6.1.7601 SP:1.0 Stack:2.0
为了成功连接并在控制台上我得到以下故障:
错误号:-2144108526 0x80338012 客户端无法连接到请求中指定的目标。验证目标上的服务是否已运行 ning并且正在接受请求。请参阅destinat上运行的WS-Management服务的日志和文档 离子,最常见的是IIS或WinRM。如果目标是WinRM服务,请在目标t上运行以下命令 o分析和配置WinRM服务:“winrm quickconfig”。 WSManFault Message =客户端无法连接到请求中指定的目标。验证dest上的服务 ination正在运行并正在接受请求。查阅运行的WS-Management服务的日志和文档 n目的地,最常见的是IIS或WinRM。如果目标是WinRM服务,请在上面运行以下命令 分析和配置WinRM服务的目标:“winrm quickconfig”。
需要将所有输出都包含在文件中,以及响应所针对的guest虚拟机名称。
答案 0 :(得分:0)
请记住我没有使用过VM cmdlet,但下面是我认为可以帮助您的一些代码。我添加了一个wmi来检查每台机器上的winrm服务,如果服务没有运行,请查看startservice()
的{{1}}方法。如果您不熟悉,请管道win32_service
以查看可用的属性和方法。
但是这里有一些建议:
导出和管理数据非常简单。
“ - 过滤”vs“Where {}”
查看VM cmdlet并查看它们是否支持| gm
您的代码运行得更快。
-filter {property -operator "*filterby*"}
All_VMS_Status = @()
$