0

わかりましたので、とてもクールな vbscript/HTA ファイルを作成しています。私がやりたいことは

コンピューター内のすべてのローカル ユーザー名をリスト ボックスに一覧表示し (既に実行できます)、リスト ボックス内のユーザーごとに、デスクトップ、マイドキュメント、ビデオ、写真、音楽を選択した宛先フォルダーにコピーします (たとえば、d :\バックアップ先)

現在、ほとんどのスクリプトは機能しており、&H5& タイプの定数を使用して、上記のログイン ユーザー (スクリプトを実行しているユーザー) 用の特別なフォルダーにアクセスできることもわかっています。

他のユーザーのプロファイル ファイルがどこにあるのかわかりません。c:\users\John (通常の vista/win 7) にある可能性もあれば、ディスク上のどこにある可能性もあります (ジョンがプロファイルを 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

次の 2 つの選択肢があります。

1、登録キー「HKEY_USER\user SID\SOFTWARE\MICROSOFT\Windows\Current Version\Explorer\User shell Folders」からこれらの特別なフォルダーの定義を読み取ります。キーを列挙するには、「winmgmts:\.\root\default:StdRegProv」を使用します。

2、「wscript.shell」オブジェクトの「run」メソッドで「rundll32.exe」を実行します。次に、「LogonUser」API 関数を使用してトークンを取得し (ユーザーのパスワードがわかっている場合)、「ImpersonateLoggedOnUser」関数を使用して別のユーザー プロファイルとして実行できます。彼の特別なフォルダーをすべて取得するには、既存のコードを変更する必要があります。

于 2012-10-02T14:13:45.960 に答える