2013-08-16 136 views
0

我必須在有限權限的用戶帳戶上運行腳本。在腳本中,有一行可以查找指定文件的完整路徑,它必須與環境變量配合使用,例如%HOMEDRIVE%。具有有限權限的WSHShell.ExpandEnvironmentStrings

然而,如果用戶不是管理員在命令行

objShell.ExpandEnvironmentStrings("%HOMEDRIVE%") 

拋出一個接取否認例外。

如何從具有有限權限的帳戶讀取此環境變量?

謝謝!

+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:\用戶\」只是把在:

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

這應該讓你訪問用戶特定的路徑,然後繼續找到一個特定的文件。它訪問哪個用戶登錄的主文件夾。如果其他用戶打開它,它將訪問他/她的homefolder。

我希望這有助於!

+0

此代碼還會在非管理員帳戶上使用「訪問被拒絕錯誤」擴展.ExpandEnvironmentStrings。它看起來像一個標準的用戶不能訪問環境變量。 – Machinegon