WinServer 2012上的WSHShell。ExpandEnvironmentStrings不返回%computername%和%sessionname%变量

时间:2015-04-13 05:56:06

标签: shell environment-variables windows-server-2012 wsh

我正在使用一个应该返回%COMPUTERNAME%和%SESSIONNAME%环境变量的脚本。我在WinServer 2008上运行该脚本,它运行正常。我在WinServer 2012上运行相同的脚本,但它不起作用。它只返回"%COMPUTERNAME%"和"%SESSIONNAME%"而不是这个变量的值。我已经在这个脚本中测试了我在"系统变量"中发现的其他环境变量。选项菜单,它工作得很好。 WinServer 2012中是否存在针对此函数和那些特定变量的一些棘手问题?

P.S。当我制作" echo%COMPUTERNAME%"和" echo%SESSIONNAME%"在cmd中,它返回正确的值。

提前致谢!

1 个答案:

答案 0 :(得分:0)

我在服务器2012 Standart 6.2.9200 N / A Build 9200上运行了以下vbs

Set wshShell = CreateObject( "WScript.Shell" )
WScript.Echo wshShell.ExpandEnvironmentStrings( "%COMPUTERNAME%" )
WScript.Echo wshShell.ExpandEnvironmentStrings( "%SESSIONNAME%" )

我得到了我的服务器/会话的值,我猜这个操作系统不是问题..你是否尝试在命令行中键入SET并查看变量是否使用您期望的值进行初始化他们是?

还有另一种从shell获取ENV VARS的方法

WScript.Echo wshShell.Environment("Process").Item("COMPUTERNAME") 

请注意,在此方法中,您可以并且应该指定environment variable

的范围