• ベストアンサー

ログイン時の画面

通常使用しているユーザー名はabcです。そして来客用にユーザー名guestを作っています。デスクトップ画面の壁紙やアイコンなどが違うのですが、起動時に同じにするようにできますか? つまり、普段私が使っている画面を変えたら(壁紙やデスクトップのフォルダなど)いちいちguestでログインして同じように変更しなくても、自動で変えられたらと思います。もしやり方があれば教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • ittochan
  • ベストアンサー率64% (2667/4137)
回答No.4

メモ帳などのテキストエディタを起動して ↓の文章を貼り付けて 拡張子HTAで保存します。 (例: ittochan.hta) 保存したファイルをダブルクリックしてみてください。 <HTML> <HEAD> <meta charset=shift_jis"> <TITLE></TITLE> <SCRIPT LANGUAGE=vbscript> <!-- --> </SCRIPT> <SCRIPT LANGUAGE=vbscript> <!-- const HKU = &H80000003 const HKCU = &H80000001 dim op(10) dim strProfilePath(10) Set objWMIService = GetObject("winmgmts:\\.\root\cimv2") Set colUserAccount = objWMIService.ExecQuery("Select * from Win32_UserAccount") Set WshShell = CreateObject("WScript.Shell") Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv") strKeyPath = "ittochan\Software\Microsoft\Windows\CurrentVersion\Explorer" strv = "ShellState" strSID="" key = "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\" strProfilefolder = WshShell.ExpandEnvironmentStrings("%USERPROFILE%") strDesktopfolder = strProfilefolder & "\デスクトップ" Sub window_onload window.resizeTo 400,300 on error resume next i=0 For Each objItem in colUserAccount strProfilePath(i) = WshShell.RegRead( key & objItem.SID & "\ProfileImagePath" ) If Err.Number=0 Then strName = objItem.FullName If strName = "" Then strName = objItem.Name End If if strName <> WshShell.ExpandEnvironmentStrings("%USERNAME%") then Set op(i) = document.createElement("OPTION") op(i).text = strName op(i).value = strName select1.add op(i) i=i+1 end if End If Err.Clear Next select1.size=i select1.focus End Sub Sub button2_onclick window.close End Sub Sub button1_onclick dim i,j,k,s,strCopyDesktopFolder,strcmd i = select1.selectedIndex k=0 if checkbox1.value="on" then strCopyDesktopFolder = strProfilePath(i) & "\デスクトップ" strcmd = "cmd /c xcopy " & """" & strDesktopfolder & """" & " " & """" & strCopyDesktopFolder & """" & " /Y" WshShell.Run strcmd,0,1 k=1 end if if checkbox3.value="on" or checkbox2.value="on" then 'レジストリハイブをロード WshShell.Run "reg load HKEY_USERS\ittochan " & """" & strProfilePath(i) & "\NTUSER.DAT" & """",0,1 if checkbox3.value = "on" then '壁紙のコピー s = WshShell.RegRead("HKCU\Control Panel\Desktop\Wallpaper") s1 = strProfilePath(i) & "\Local Settings\Application Data\Microsoft\Wallpaper1.bmp" strcmd = "cmd /c xcopy " & """" & s & """" & " " & """" & s1 & """" & " /Y" WshShell.Run strcmd,0,1 '壁紙ファイル名のコピー WshShell.RegWrite "HKEY_USERS\ittochan\Control Panel\Desktop\Wallpaper",s1,"REG_SZ" CopyReg "Control Panel\Desktop\TileWallpaper","REG_DWORD" k=1 end if if checkbox2.value = "on" then 'デスクトップ項目のコピー strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" on error resume next WshShell.RegDelete "HKEY_USERS\ittochan\" & strKeyPath & "\" on error goto 0 oReg.EnumValues HKCU, strKeyPath, arrValueNames, arrValueTypes if IsArray(arrvalueNames) then for i=0 to Ubound(arrValueNames) j = WshShell.RegRead("HKCU\" & strKeyPath & "\" & arrValueNames(i)) WshShell.RegWrite "HKEY_USERS\ittochan\" & strKeyPath & "\" & arrValueNames(i) ,j ,"REG_DWORD" next end if k=1 end if 'レジストリハイブをアンロード WshShell.Run "reg unload HKEY_USERS\ittochan",0,1 end if if k=1 then msgbox "完了しました" else msgbox "何もコピーしませんでした" end if End Sub Sub CopyReg(ByVal s1,ByVal s2) dim s3 s3 = WshShell.RegRead("HKCU\" & s1) WshShell.RegWrite "HKEY_USERS\ittochan\" & s1,s3,s2 end sub --> </SCRIPT> </HEAD> <BODY> <P>コピー先のユーザーを選択<BR> <SELECT id=select1 style="LEFT: 151px; TOP: 80px" name=select1> </SELECT></P> <P><INPUT id=checkbox1 title="" type=checkbox name=checkbox1>デスクトップ項目のコピー<BR> <INPUT id=checkbox2 type=checkbox name=checkbox2>デスクトップのシステムアイコンをコピー<BR> <INPUT id=checkbox3 type=checkbox name=checkbox3>壁紙のコピー</P> <P><INPUT id=button1 type=button value=コピー name=button1>  <INPUT id=button2 type=button value=閉じる name=button2> </P> </BODY> </HTML>

mikenekosuki
質問者

お礼

何度も詳しい説明をありがとうございます。たいへん感謝しています。

その他の回答 (3)

  • ittochan
  • ベストアンサー率64% (2667/4137)
回答No.3

>1のAはすぐに出来ました。 >Bはどうやってするのでしょうか? ('◇')ゞラジャ まず、mikenekosuki さんのデスクトップのアイコン設定がどこに保存されているのかを説明します。 mikenekosuki さんのデスクトップの設定で 「マイコンピュータ」、「マイネットワーク」 「マイドキュメント」、「Internet Explorer」 すべて表示させるようにしてください。 次に スタート→「ファイル名を指定して実行」をクリック。 regedit と入力して、「OK」をクリック。 レジストリエディタが起動されます。 以下のように潜っていきます。 マイコンピュータ  +HKEY_CURRENT_USER   +SOFTWARE    +Microsoft     +Windows      +CurrentVersion       +Explorer        +HideDesktopIcons         +NewStartPanel ←クリック 右ウィンドウで 名前__________________ {208D2C60-3AEA-1069-A2D7-08002B30309D}は「マイネットワーク」 {20D04FE0-3AEA-1069-A2D8-08002B30309D}は「マイコンピュータ」 {450D8FBA-AD25-11D0-98A8-0800361B1103}は「マイドキュメント」 {871C5380-42A0-1069-A2EA-08002B30309D}は「Internet Explorer」 を意味しています。 このそれぞれのデータを0x00000001にするか、 項目自体を削除すると デスクトップからそのアイコンが消えます。 レジストリの マイコンピュータ  +HKEY_CURRENT_USER このHKEY_CURRENT_USERキーにぶら下がっている すべての項目は レジストリハイブ(プロファイル) NTUSER.DATとして保存されています。 このファイルの場所は C:\Documents and Settings\ユーザー名 フォルダに 隠しファイルとして存在します。 スクリプトを書かないで手動で、 別のユーザーのプロファイルを編集するには レジストリエディタの 「ファイル」→「ハイブの読み込み」で ユーザーのNTUSER.DATを読み込み↑のデータを変更します。 >また、もしよろしければスクリプトを書いてください。 ('◇')ゞラジャ せっせ。・°°・_〆(・_・;)(;・_・)φ_・°°・。せっせ 暫くお待ちください >それから最後の注意のプロファイルをプライベートにするとは、 >どこでどうすればプライベート設定にできるのでしょうか? スタート→「ファイル名を指定して実行」をクリック %USERPROFILE% と入力して「OK」をクリックします。 すると現在ログオンしているユーザーのプロファイルフォルダが表示されます。 この中に 「マイドキュメント」とか「デスクトップ」とか フォルダがあるでしょ? 試しに「デスクトップ」フォルダを 右クリック→「プロパティ」をクリックしてみてください。 「共有」タブをクリック 「このフォルダをプライベートにする」 にチェックを入れます すると他のユーザーから 「デスクトップ」フォルダの中身を見せなくすることができます。 Geustユーザーさんが 自分の「デスクトップ」にこれをすると mikenekosuki さんが、自分のデスクトップに置いてあるファイルを Guestさんの「デスクトップ」にコピー出来なくなります。

mikenekosuki
質問者

お礼

何度も詳しい説明をありがとうございます。たいへん感謝しています。

  • ittochan
  • ベストアンサー率64% (2667/4137)
回答No.2

>デスクトップ画面の壁紙やアイコンなどが違うのですが、 >起動時に同じにするようにできますか? d(-_☆)ラジャ 可能です。 1.デスクトップのアイコン  A.物理的に存在するアイコンと  B.「マイコンピュータ」とか「Internet Explorer」等、仮想的に存在するアイコンがあります。 A.は単にGuestユーザーのデスクトップフォルダへコピーします。 B.はレジストリハイブを読み込んで編集します。 2.壁紙 これは1.Bの手法を用います。 >自動で変えられたらと思います。 >もしやり方があれば教えてください。 スクリプトを書けば↑の処理を自動化することが可能です。 書きましょうか? 注:ゲストさんがプロファイルフォルダを プライベートにしているとちょっと大変です。

mikenekosuki
質問者

お礼

たいへん感謝しています。ありがとうございました。時間が掛かるお願いをしましたのに丁寧に対応をしていただきまして、ありがとうございます。

mikenekosuki
質問者

補足

返事が遅くなりすみません、大変参考になりました。 ありがとうございます。 1のAはすぐに出来ました。Bはどうやってするのでしょうか?また、もしよろしければスクリプトを書いてください。 それから最後の注意のプロファイルをプライベートにするとは、どこでどうすればプライベート設定にできるのでしょうか? またアドバイスください。

  • papa456
  • ベストアンサー率9% (14/143)
回答No.1

壁紙に設定するではなく 背景に設定したら起動時は変わると思います。

mikenekosuki
質問者

お礼

大変参考になりました。ありがとうございます。

関連するQ&A

専門家に質問してみよう