对于我的工作,我需要从某些服务器检索操作系统信息,并将该信息存储在某个服务器上。我想用powershell做这个并使用wmi来获取信息 所有服务器都安装了powershell,并且两者之间可以建立SSH连接。
最简单的方法可能是执行远程PowerShell命令,但后来我需要在每个服务器上激活远程服务,我想避免这种情况。 另一种方法是在PS中使用命令:“Invoke-Expression”,同时使用plink进行连接 这是我想要使用的方法。我发现了很多关于它的信息,我发现了如何使用它来执行远程shell命令甚至远程powershell命令(同时在命令之前放置“powershell”)。
这有效:
$output = Invoke-Expression 'echo y | & "C:\Program Files\PuTTY\plink.exe" -ssh $username@$hostname -pw $password "powershell gwmi Win32_OperatingSystem"'
但它没有提供我需要的信息。
我不想使用“gwmi Win32_OperatingSystem
”而是想使用“gwmi Win32_OperatingSystem | select-object caption
”,而应该提供我需要的信息。
然而,我坚持使用引号,无论我尝试什么,我都无法使这个工作,我总是得到一个选择对象部分的错误。我试着在网上看这个,但我没找到任何东西。有谁知道如何解决这个问题?
此致
的Matthias