0

好的,所以我正在编写一个超酷的 vbscript/HTA 文件。我想做的就是

在列表框中列出计算机中的所有本地用户名称(我已经可以这样做),然后对于列表框中的每个用户,将他们的桌面、我的文档、视频、图片、音乐复制到我选择的目标文件夹(比如 d :\备份目标)

现在大部分脚本都在工作,我也知道我可以使用 &H5& 类型常量来访问我上面提到的 LOGGED-IN 用户(即运行脚本的人)的特殊文件夹。

现在我不知道其他用户的配置文件在哪里,它们可能在 c:\users\John (通常的 vista/win 7)或者它们可能在磁盘上的任何位置(也许 john 将他的配置文件移动到 d:)。

所以我只需要知道如何告诉脚本将计算机上的所有用户配置文件复制到我选择的目的地。

例如下面的代码复制当前登录用户的“我的图片”文件夹,如何修改它以复制所有用户的配置文件?

Const MY_PICTURES = &H27&
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(MY_PICTURES)
Set objFolderItem = objFolder.Self 
Wscript.Echo objFolderItem.Name & ": " & objFolderItem.Path 

任何帮助将不胜感激 !!!!!!!!谢谢。

谢谢。

德顿王子

4

1 回答 1

0

你有两个选择:

1、从注册键“HKEY_USER\user SID\SOFTWARE\MICROSOFT\Windows\Current Version\Explorer\User shell 文件夹”中读取这些特殊文件夹的定义。使用 "winmgmts:\.\root\default:StdRegProv" 枚举键。

2、使用“wscript.shell”对象的“run”方法运行“rundll32.exe”。然后,您可以使用“LogonUser”API 函数获取令牌(如果您知道他的密码)并使用“ImpersonateLoggedOnUser”函​​数作为另一个用户配置文件运行。您确实需要修改现有代码以获取他的所有特殊文件夹。

于 2012-10-02T14:13:45.960 回答