获取远程服务器环境变量

Ran*_*per 4 windows vbscript environment-variables

问题:我们的Cobol应用程序运行在我们网络上的许多服务器(主要是服务器2003)上.许多(如果不是全部)这些应用程序使用环境变量进行设置.

问题:从一个工作站,您可以从远程已知服务器列表中收集环境变量的完整列表吗?最好我想在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
Run Code Online (Sandbox Code Playgroud)

小智 7

这是powershell命令:

gwmi win32_environment -computername dc1.acme.com
Run Code Online (Sandbox Code Playgroud)

如果你想要一个精简版:

gwmi win32_environment -computername dc1.acme.com |select name,variablevalue |ft -auto
Run Code Online (Sandbox Code Playgroud)