WSHShell.expandEnvironment权限有限的字符串

WSHShell.expandEnvironment权限有限的字符串,shell,vbscript,environment-variables,Shell,Vbscript,Environment Variables,我必须以有限的权限在用户帐户上运行脚本。在脚本中,有一行可以找到指定文件的完整路径,它必须使用环境变量,例如%HOMEDRIVE% 但是,命令行 objShell.ExpandEnvironmentStrings("%HOMEDRIVE%") 如果用户不是管理员,则引发拒绝访问异常 如何从权限有限的帐户读取此环境变量 谢谢 尝试在脚本开头添加以下内容: Set oShell = CreateObject("WScript.Shell") strHomeFolder = oShell.Expa

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

但是,命令行

objShell.ExpandEnvironmentStrings("%HOMEDRIVE%") 
如果用户不是管理员,则引发拒绝访问异常

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


谢谢

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

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\...\"
这将允许您访问特定于用户的路径,然后继续查找特定的文件。它访问登录用户的主文件夹的任何用户。如果其他用户打开它,它将访问他/她的主文件夹


我希望这有帮助

请提供更多上下文和确切的错误详细信息(错误号、消息、行号)。您发布的这一行不应引发“拒绝访问”错误。此代码也会在非管理员帐户上的带有“拒绝访问错误”的.ExpandEnvironmentString上中断。看起来标准用户无法访问环境变量。