2017-03-04 35 views
1

我想隐藏来自域用户的共享文件夹的网络路径。 (Windows Server 2012中)我发现这个脚本的时候,搜索网络驱动器标签:如何在VBScript中获取%username%?

Option Explicit 
Dim objNetwork, strDrive, objShell, objUNC 
Dim strRemotePath, strDriveLetter, strNewName 

strDriveLetter = "H:" 
strRemotePath = "\\servername\sharedfoldername$\" 
strNewName = "Save Your Files Here" 

'Section to map the network drive 
Set objNetwork = CreateObject("WScript.Network") 
objNetwork.MapNetworkDrive strDriveLetter, strRemotePath 

'Section which actually (re)names the Mapped Drive 
Set objShell = CreateObject("Shell.Application") 
objShell.NameSpace(strDriveLetter).Self.Name = strNewName 

WScript.Echo "Check : "& strDriveLetter & " for " & strNewName 
WScript.Quit 

我的网络路径将是象下面这样:

strRemotePath = "\\servername\sharedfoldername1$\%username%" 
strRemotePath = "\\servername\sharedfoldername2$\%username%" 
strRemotePath = "\\servername\sharedfoldername5$\%username%" 
strRemotePath = "\\servername\sharedfoldernameNNN$\%username%" 

当我插入%username%,脚本不运行。

请引导我如何修改该脚本,该脚本将按照我的要求运行。

+1

的[可能的复制我可以拿起vbscript WSH脚本中的环境变量?](http://stackoverflow.com/questions/904739/can-i-pick-up-environment-variables-in-vbscript-wsh-script) – Lankymart

+0

可能重复的[VBScript环境变量](http://stackoverflow.com/q/11620970/692942) – Lankymart

回答

4

您可以expand environment variables在你的路径字符串:

strRemotePath = "\\servername\sharedfoldername1$\%username%" 

Set sh = CreateObject("WScript.Shell") 
WScript.Echo sh.ExpandEnvironmentStrings(strRemotePath) 

,或者你可以build the path从份额和你已经拥有了WshNetworkUserName属性:

share = "\\servername\sharedfoldername1$" 

Set fso = CreateObject("Scripting.FileSystemObject") 
WScript.Echo fso.BuildPath(share, objNetwork.UserName) 
+0

[相似解答](http://stackoverflow.com/a/30811139/692942)你以前给过。 – Lankymart

相关问题