• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:作成したWSHがVistaのUACに阻まれる)

WSHがVistaのUACに阻まれる

このQ&Aのポイント
  • WSHを使用して特定の内容を追記し、バッチファイルをコピーする処理を作成していますが、VistaのUACによってうまく動作しません。
  • VistaのUACが有効な状態でも動作するようにする方法をWebで調査しましたが、解決策が見つかりませんでした。
  • UACを無効化すればファイルのコピーは成功しますが、UACを有効にした状態での動作を実現するにはどうすればよいでしょうか。ご教授いただけると幸いです。

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

  • ベストアンサー
  • SHIMAPEE
  • ベストアンサー率75% (154/203)
回答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" -----

pachi0123
質問者

お礼

しばらくPCが使えなかったのでお礼が遅くなり申し訳ありません。 いただいた回答をヒントにやってみたところできました。 原因はコピー元パスをフルパスで指定していなかったことでした。 コピーするファイルはスクリプトファイルと同じフォルダにあるので、 ファイル名のみ記述していましたが、UACが有効だと管理者権限の 昇格が行われ、その関係でカレントディレクトリが変わるため フルパスでないと認識されなかったようです。 ありがとうございました。

関連するQ&A