问题:我们的网络上有很多服务器(主要是服务器2003)运行的Cobol应用程序。许多(如果不是全部)这些应用程序都使用环境变量进行设置。
问题:从一个工作站,您可以从远程已知服务器列表中收集环境变量的完整列表吗?最好我想在Batch,VBS或Powershell中这样做。
答案:在VBS中
GetEnvironment("[RemoteServersName]")
Function GetEnvironment(ServerName)
strComputer = ServerName
Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objSWbemServices = objSWbemLocator.ConnectServer _
(strComputer, "root\cimv2", "[ValidLogonName]", "[PasswordForLogonName]")
objSWbemServices.Security_.ImpersonationLevel = 3
Set colVar = objSWbemServices.ExecQuery( _
"Select * from Win32_Environment")
For Each objVar in colVar
WScript.StdOut.Write("Server Name: " & ServerName & VBNewLine)
WScript.StdOut.Write("Description: " & objVar.Description & VBNewLine)
WScript.StdOut.Write("Name: " & objVar.Name & VBNewLine)
WScript.StdOut.Write("System Variable: " & objVar.SystemVariable & VBNewLine)
WScript.StdOut.Write("User Name: " & objVar.UserName & VBNewLine)
WScript.StdOut.Write("Variable Value: " & objVar.VariableValue & VBNewLine & VBNewLine)
Next
End Function
答案 0 :(得分:7)
这是powershell命令:
gwmi win32_environment -computername dc1.acme.com
如果你想要一个精简版:
gwmi win32_environment -computername dc1.acme.com |select name,variablevalue |ft -auto
答案 1 :(得分:4)
没试过,但你可以查看this。示例是vbscript,将strComputer更改为您的遥控器的IP地址,看看它是如何进行的。对于许多远程主机,请使用for循环。