具有有限权限的WSHShell.ExpandEnvironmentStrings

时间:2013-08-16 19:52:59

标签: shell vbscript environment-variables

我必须在具有有限权限的用户帐户上运行脚本。在脚本中,有一行可以找到指定文件的完整路径,它必须与环境变量一起使用,例如%HOMEDRIVE%。

但是,命令行

objShell.ExpandEnvironmentStrings("%HOMEDRIVE%") 
如果用户不是管理员,

会抛出一个拒绝访问的异常。

如何从具有有限特权的帐户中读取此环境变量?

谢谢!

1 个答案:

答案 0 :(得分:0)

尝试在脚本开头添加以下内容:

Set oShell = CreateObject("WScript.Shell")
strHomeFolder = oShell.ExpandEnvironmentStrings("%USERPROFILE%")
Const ssfPROFILE = &H28
Set oShell = CreateObject("Shell.Application")
strHomeFolder = oShell.NameSpace(ssfPROFILE).Self.Path

然后,当您需要引用用户名时,您可以使用以下内容代替“C:\ Users ... \”,只需输入:

= strHomeFolder & "\...\The Rest Of The Filepath eg.appdata\...\"

这应该允许您访问特定于用户的路径,然后继续查找特定文件。它访问登录主文件夹的用户。如果其他用户打开它,它将访问他/她的家庭文件夹。

我希望这有帮助!