问题:我们的networking上有许多服务器(主要是服务器2003)运行的Cobol应用程序。 许多(如果不是全部)这些应用程序使用环境variables进行设置。
问题:从一台工作站可以从已知服务器列表中收集完整的环境variables列表吗? 最好我想在批处理,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
还没有尝试过,但你可以检查出来。 例子是vbscript,将strComputer更改为您的远程的IP地址,看看它是如何发生的。 对于许多远程主机,请使用for循环。
这里是powershell命令:
gwmi win32_environment -computername dc1.acme.com
如果你想要一个精简的版本:
gwmi win32_environment -computername dc1.acme.com |select name,variablevalue |ft -auto