代码之家  ›  专栏  ›  技术社区  ›  Random Developer

获取远程服务器环境变量

  •  4
  • Random Developer  · 技术社区  · 16 年前

    问题: 我们的COBOL应用程序运行在网络上的许多服务器(主要是Server2003)上。如果不是所有这些应用程序都使用环境变量进行设置,那么许多应用程序都使用环境变量。

    问题: 从一个工作站,您可以从远程已知服务器列表中收集环境变量的完整列表吗?最理想的情况是,我希望在批处理、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 回复  |  直到 16 年前
        1
  •  4
  •   ghostdog74    16 年前

    没有试过,但是你可以检查一下 this 出来。示例是vbscript,将strcomputer更改为远程设备的IP地址,然后查看如何进行。对于许多远程主机,使用for循环。

        2
  •  7
  •   eeerahul Stalin Pimentel    14 年前

    以下是powershell命令:

    gwmi win32_environment -computername dc1.acme.com
    

    如果你想要浓缩版:

    gwmi win32_environment -computername dc1.acme.com |select name,variablevalue |ft -auto