
はじめまして。
以下の処理を行うWSHを作成しているのですが、うまくいきません。色々Webも調べたのですが解決策が見あたらないためどなたかご教授いただければ幸いです。詳細は以下です。
■作成したいWSHの詳細
1. hostsファイルに特定の内容を追記する
2. 作成済みのバッチファイルを「AllUsersのスタートアップ」フォルダにコピーする
3. Windows2000、XP、Vista で実行して同じ結果が得られるようにする
4. VistaでUACが有効な状態でも動作するようにする
上記の条件1,2,3はクリアできたのですが条件4だけどうしてもクリアできません。下記ページにてスクリプト中に管理者権限に昇格する方法を
見つけ早速実行したところ、hostsファイルの書き換えはできるようになったものの、「AllUsersのスタートアップ」フォルダへのコピーに失敗してしまいます。
◆参考ページ
http://ebi.dyndns.biz/diary/20080813.html
ちなみに「ファイルが見つかりません」というエラーが表示されます。ただ、UACを無効にした状態でVBSファイルを実行するとコピーは成功するので構文は間違っていないと考えております。UACを有効にした状態で、「AllUsersのスタートアップ」フォルダにファイルをコピーするにはどのようにしたらよろしいのでしょうか。どなたか助けていただければ幸いです。よろしくお願いします。
No.1ベストアンサー
- 回答日時:
昇格に興味がありましたので試してみました。
結果として、WSH CopyFileで指定するパスはVistaとXPとで共通化できていませんが、VistaでAll Usersのスタートアップにバッチファイルをコピーすることはできました。下記の三つのファイルを、各ファイル先頭のコメントのファイル名で作成しました。RunAs.vbsを実行してUACを許可すればCopied.batがコピーされます。
VistaのAll Usersのスタートアップのパスは、エクスプローラのShift+右クリックで現れるメニュー[パスとしてコピー]で調べました。UACの有効/無効で変わることはないように思いますが…。
Vista Ultimate SP1 と XP Pro SP3 で確認しました。
-----
rem C:\test\Copied.bat
echo Copied bat
pause
-----
'C:\test\CopyBat.vbs
Set FSO = CreateObject("Scripting.FileSystemObject")
'Vistaで成功
FSO.CopyFile "C:\test\Copied.bat", _
"C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\"
'XPで成功
'FSO.CopyFile "C:\test\Copied.bat", _
' "C:\Documents and Settings\All Users\スタート メニュー\プログラム\'スタートアップ\"
WScript.echo "Copy Done"
-----
'C:\test\RunAs.vbs
Set sha=CreateObject("Shell.Application")
sha.ShellExecute "wscript.exe", "C:\test\CopyBat.vbs vista", "","runas"
-----
しばらくPCが使えなかったのでお礼が遅くなり申し訳ありません。
いただいた回答をヒントにやってみたところできました。
原因はコピー元パスをフルパスで指定していなかったことでした。
コピーするファイルはスクリプトファイルと同じフォルダにあるので、
ファイル名のみ記述していましたが、UACが有効だと管理者権限の
昇格が行われ、その関係でカレントディレクトリが変わるため
フルパスでないと認識されなかったようです。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセス クエリを別のファイ...
-
読み取り専用でファイルを開きたい
-
FTPとファイルコピーの違いにつ...
-
マインクラフトPCをプレイしよ...
-
同じファイル名 上書きしないフ...
-
他PCへのファイルコピー
-
エクセルのファイル名をコピー...
-
パワポでスライドをコピーでき...
-
バッチファイルのコピーで
-
バッチファイル XCOPYで上書き...
-
エクセルで複数のコメントのサ...
-
エクセルのプロパティーでセキ...
-
エクセルvbaでdocuworksprinter...
-
[virtualbox] Windows XP のVHD...
-
VBAを使ってセル内に記述してあ...
-
アクセス 自身のデータベース...
-
ffftpでファイル取得が0バイト...
-
VBA 最新のフォルダ取得
-
エクセルのマクロについて教え...
-
同一フォルダ内の別ブックから...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで複数のコメントのサ...
-
frxファイルの役目
-
ファイルサーバ上のファイルが...
-
Vba初心者です。下記のコード助...
-
エクセルのハイパーリンクがコ...
-
同じファイル名 上書きしないフ...
-
xcopyでのバッチコピー方法でコ...
-
バッチファイル 別ファイルにリ...
-
[エクセル]コピーするとオブジ...
-
vbsでファイルやフォルダのコピ...
-
バッチファイルのコピーで
-
バッチファイル XCOPYで上書き...
-
現在のブックを閉じないで、マ...
-
bat 同名ファイルコピー時にリ...
-
エクセル2010、図が大きすぎま...
-
アクセス クエリを別のファイ...
-
ハイフネーションされている英...
-
特定のエクセルファイルが止ま...
-
マインクラフトPCをプレイしよ...
-
パワポでスライドをコピーでき...
おすすめ情報