获取远程服务器环境变量

时间:2010-01-15 13:32:20

标签: windows vbscript environment-variables

问题:我们的网络上有很多服务器(主要是服务器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

2 个答案:

答案 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循环。