Page up▲

Windows7 UAC(ユーザーアカウント制御)対策

胡散臭かったのでVistaすら導入せず、
今まではXPが最終OSであったNaoten。

しかしリビングに設置したハードディスクレコーダーPCは
初めてWindows7を導入したPCとなりました。

使ってみて、便利になったと思う所もありますが、
不便になったと思う所もあります。

その最たる部分がUAC、つまり、
ユーザーアカウント制御機能です。

アプリケーションを起動すると出るこんな画面。
見たことないですかね??

UAC.jpg

んで、
UACを元からOFFれば、出ないのですけど、
これって不正なプログラムが
OSを書き換えるのを監視するシステムじゃないですか。
切るくらいならXP使えば?って思うわけです。

とは言え、特定のアプリケーションのみこのUACを切る事も出来ない。
どうしたもんか、と思って対策を考えてみました。

(以下、追記へ。)
   
ここから先の方法はWindows7上での説明になります。
他のOS上やログインユーザーが管理者で無い場合は
正常に動作しないので注意してください。


特定のプログラムのUAC回避に関しての手順は4つ。

1.プログラム実行スクリプトの作成

2.タスクスケジューラへの登録

3.プログラム個別のスクリプトの作成

4.実行

順に説明していきますが、
まず最初に、タスクスケジューラを介する理由を挙げておきます。

タスクスケジューラに登録されたプログラムは
実行する際に強烈な権限を持たせる事が出来ます。

この権限を使って実行すると、
UAC確認画面が表示されない、と言う仕組みを利用し、
UAC問題を回避しています。


1.プログラム実行スクリプトの作成

テキストエディタで新規ファイルを作ってもらって、
以下のソースを貼り付けるだけです。
(行番号は要りません。)

Option Explicit

Dim objWshShell ' WshShell オブジェクト
Dim objFS
Dim objFilePath

If WScript.Arguments.Count <> 0 Then
Set objWshShell = WScript.CreateObject("WScript.Shell")
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objFilePath = objFS.GetFile(WScript.Arguments(0))

objWshShell.CurrentDirectory = objFS.GetParentFolderName(objFilePath.ShortPath)
objWshShell.Exec(objFilePath.ShortPath)
End if

2012/03/20
      コメント欄でのsootaさんのご提案とスクリプトのご提供を受け、
      アプリケーション実行前のカレントディレクトリの移動と
      ファイルパスをロングネームから8.3形式へ書き換える処理を追加しました。


ファイル名は何でもいいですが拡張子はvbsにしてください。
ここでは暫定的に「NaotenExec.vbs」と命名します。

保存をしてテキストエディタを閉じてください。

出来たファイルを置く場所もどこでもいいです。
好きな場所に設置して下さい。


2.タスクスケジューラへの登録

続いて、1.で作ったNaotenExec.vbsをタスクスケジューラに登録します。

スタートメニューをクリックして、
左下の「プログラムとファイルの検索」ボックスに

taskschd.msc /s



と入力し、エンターを押してください。
タスクスケジューラが起動します。

起動したらメニューの「操作」から「タスクの作成」を選んでください。

こんな画面が出るはずです。

全般s

名前の欄に「UACEscape」と入力してください。

それと必ず赤丸の部分。
「最上位の特権で実行する」にチェックを忘れないで下さい。

それ以外はデフォルトですが、
「場所」に関して「\」である事を確認しておいてください。
(\じゃない場合は覚えておいて下さい。)

続いて上のタブから「操作」を選び、
左下の「新規」ボタンを押してください。

こんな画面が出るはずです。

操作s

参照ボタンから先ほど配置したNaotenExec.vbsを選んでパスを設定してください。

また赤丸の部分に以下の様に入力してください。


$(Arg0)




OKボタンで新しい操作を登録後、
もう一度OKボタンを押して、タスクの登録も完了します。

これでタスクスケジューラの設定は終わりです。


3.プログラム個別のスクリプトの作成

最後は起動させたいプログラムを登録するスクリプトを作成します。
1.と2.は一度だけ行えば終わりですが、
この3.プログラム個別のスクリプトの作成は、
UACを回避したいプログラム毎に作る必要があります。

テキストエディタを起動し、新規ファイルを作成、
ファイル名は何でも構いませんが拡張子はvbsとしてください。

(ファイル名に関しては起動させたいプログラムに関連した名前が良いと思います。
 例としてはメモ帳を起動するスクリプトの場合は「メモ帳.vbs」みたいに。
 まぁ、メモ帳はUAC画面でないのでこれで起動する必要無いですけども。)

で、中身にはこれを書き写してください。(行番号は要りません。)

Option Explicit

Dim objTaskService
Dim objFolder
Dim objTask
Dim strAppPath

'' ===ここにプログラムのフルパスを設定===
strAppPath = "c:\???.exe"

'' タスクサービスオブジェクトの取得
Set objTaskService = CreateObject("Schedule.Service")
'' タスクサービスとの接続
objTaskService.Connect
'' 場所を指定してフォルダオブジェクトの取得
Set objFolder = objTaskService.GetFolder("\")
'' タスク名を指定してタスクオブジェクトを取得
Set objTask = objFolder.GetTask("UACEscape")
'' タスクを実行
objTask.Run """" & strAppPath & """"


上記の「ここにプログラムのフルパスを設定」
となっている下の行の"(ダブルコーテーション)に囲まれている部分、
「c:\???.exe」となっている所を起動したいプログラムのフルパスに書き換えてください。

先ほど2.の際に覚えておいた場所が「\」じゃ無かった場合、
上記プログラム中の
「場所を指定してフォルダオブジェクトの取得」
となっている下の行の"(ダブルコーテーション)に囲まれている部分、
「\」となっている所を覚えておいた場所に書き換えてください。

保存をしてテキストエディタを閉じてください。

4.実行

3.で作成したvbsファイルをダブルクリック。
お疲れさまでした。
UAC確認は回避されたと思います。




Naotenの場合、スタートアップで起動したいプログラムに
UAC確認画面が出てしまって困っていたので、
(自動で再起動とかした場合に、特定のプログラムが起動されない&煩わしい)
3.で作成したvbsファイルをスタートアップに登録し、
UACそのものを切ること無く問題を回避しました。

需要あるか解りませんけど、
ご参考になれば幸いです!


2012/03/20追記
この記事の内容でアプリケーションを起動した際に、
プロセスの優先度が低くて困る場合は記事中の
1.プログラム実行スクリプトの作成
で作成するvbsファイル(NaotenExec.vbs)を以下の様にして変更してみて下さい。
問題が解消される可能性があります。

プロセス優先度を通常で起動したい場合。


プロセス優先度を高いで起動したい場合。


ただしこれにより、
必ずプロセス優先度が意図したものになるとは限らない様です。
この記事はUAC回避が主題となりますので、
それらの問題に関しては別途、調査してみて下さいませ。

2012/08/15追記

maoyamaさんからのご要望にヒントを得て、
Drag&Dropに対応した子スクリプトを作りました。

テキストエディタで以下のソースを入力、
名前は記事上は暫定的にDragDrop.vbsとしデスクトップあたりに保存。

Drag&Drop対応版


完成したこのDragDrop.vbsのアイコンの上にexeファイルやショートカットをドラッグすると、
そのプログラムが起動します。

スクリプトを起動したいプログラム分作るのは面倒な方は、こちらをお試しください(^^

2012/08/16追記

やはりエラー状況が解った方が対応しやすい、
と言う事で、sootaさんのご指摘に応じて
各スクリプト中から「On Error Resume Next」を削除しました。



2012/08/31追記

ItaRinさんのご要望を受けて、
NaotenExec.vbsにプログラムに引数を渡して起動する処理を追加しました。

NaotenExec.vbs



上記に更新後は、
個別スクリプトのファイルパス設定の際にカンマ区切りで起動引数を設定出来ます。
またこのスクリプトに更新しても、起動引数が無くても従来通り起動します。

以下、メモ帳にパスを起動引数として渡し起動するサンプルです。

メモ帳に起動引数を渡すサンプル



起動引数の数がいくつもあったとしても、カンマの数は1回にしてください。

例:
起動引数が無い場合
strAppPath = "%windir%\notepad.exe"

起動引数が1つの場合
strAppPath = "%windir%\notepad.exe,C:\test.txt"

起動引数が2つ以上の場合
strAppPath = "%windir%\notepad.exe,/A C:\test.txt"

起動引数に,(半角カンマ)を使用したい場合、
このままでは不適切なので、
NaotenExec.vbsと個別スクリプト内の区切り文字を別の文字に変更して下さい。



  

Page up▲

LOGO1

Post a Comment

comments

Date2011/10/30 11:38 [Edit]
NameZeqoo Zeqoo's Mail AddressZeqoo's URL

GJです!

Date2011/10/31 10:21 [Edit]
NameNaoten(ナオテン) <span class=Naoten(ナオテン)'s Mail Address" /><span class=Naoten(ナオテン)'s URL" />

○Zeqooサン

> GJです!

解りづらい説明文で失礼しましたヽ(;´д`)ノ
お役に立てたなら光栄です!(^^

Date2011/12/23 22:25 [Edit]
Nameるる るる's Mail Addressるる's URL

Naotenさん、こんにちは。
「Win7 UACを回避する方法」で検索してましたら、Naotenさんのブログに辿り着きました。

私は少し前までVistaPCを愛用してまして、そのときは煩わしいUAC制御を
シマンテック社の「Norton UAC Tool」という超便利なフリーソフトで個別オンorオフ
設定していたのですが、Win7ではレベルこそユーザーが調整できますが、相変わらず
OSレベルでは個別設定できませんし、対応する「Norton UAC Tool」もありません><

Win7を自分流に設定していて、最後の最後に残念だったのがUAC個別オンorオフ設定
だったのですが、Naotenさんのご指南で見事解決してしまいました!

最初はユーザーフォルダ内にタスク登録のスクリプトとソフト実行スクリプトをそのまま
置いてしまいエラーが出てしまいましたが、「UAC回避スクリプト」と命名したフォルダに
ソフト実行スクリプトを置くことで無事UAC回避を実行できました♪
で、フォルダ内でショートカットを作成して対象ソフトのアイコンを適応してスタートメニュー
等に登録しています。

すっごくすっごく便利です^^ ありがとうございます!

Date2011/12/24 00:48 [Edit]
NameNaoten(ナオテン) <span class=Naoten(ナオテン)'s Mail Address" /><span class=Naoten(ナオテン)'s URL" />

○るるサン

> Naotenさん、こんにちは。
> 「Win7 UACを回避する方法」で検索してましたら、Naotenさんのブログに辿り着きました。

意外と需要が有るようで、
スクリプトを作成、記事を書いた甲斐がありました。


> 私は少し前までVistaPCを愛用してまして、そのときは煩わしいUAC制御を
> シマンテック社の「Norton UAC Tool」という超便利なフリーソフトで個別オンorオフ
> 設定していたのですが、Win7ではレベルこそユーザーが調整できますが、相変わらず
> OSレベルでは個別設定できませんし、対応する「Norton UAC Tool」もありません><

ほー!そんなソフトがあったのですなー!
確かにそう言ったフリーソフトがあれば、みんな苦労せずに済みましたねヽ(;´д`)ノ
なんでWin7でSymantecは同じの出さないのだろう??
(UACに関してOS側での何かしらの仕様変更でもあったんでしょうかね。)

> Win7を自分流に設定していて、最後の最後に残念だったのがUAC個別オンorオフ設定
> だったのですが、Naotenさんのご指南で見事解決してしまいました!
>
> 最初はユーザーフォルダ内にタスク登録のスクリプトとソフト実行スクリプトをそのまま
> 置いてしまいエラーが出てしまいましたが、「UAC回避スクリプト」と命名したフォルダに
> ソフト実行スクリプトを置くことで無事UAC回避を実行できました♪
> で、フォルダ内でショートカットを作成して対象ソフトのアイコンを適応してスタートメニュー
> 等に登録しています。

ちょっと試しに、タスク登録スクリプトと、ソフト実行スクリプトを、
同一フォルダ下において実行したのですが、特にエラーは起きませんでした。
とすると、るるさんのおっしゃる「ユーザーフォルダ」に、
何がしかのセキュリティ上の対策があった、と言う事なんでしょうかね。
エラーの原因は特定出来ませんでしたが、
今後の為にそう言う事例もあると、記憶にとどめておきます(^^

> すっごくすっごく便利です^^ ありがとうございます!

こちらこそ、お役に立てて光栄です!
お互い、よりよいPCライフを送りましょう!(^^

Date2011/12/24 14:19 [Edit]
Nameるる るる's Mail Addressるる's URL

試しにもう一度ソフト実行スクリプトをユーザーフォルダ内(タスク登録スクリプト有)に
コピーペーストして実行してみたら、今度はエラーは出ませんでした。
たぶんあの後構文を1行ずつペーストし直したので、どこか抜けていたのだと思います。

Date2011/12/25 12:50 [Edit]
NameNaoten(ナオテン) <span class=Naoten(ナオテン)'s Mail Address" /><span class=Naoten(ナオテン)'s URL" />

○るるサン

> 試しにもう一度ソフト実行スクリプトをユーザーフォルダ内(タスク登録スクリプト有)に
> コピーペーストして実行してみたら、今度はエラーは出ませんでした。
> たぶんあの後構文を1行ずつペーストし直したので、どこか抜けていたのだと思います。

おぉ~そうでしたか!
とりあえず問題が解明されてすっきりしました(^^

また何かあったら教えて下さい。
それではでは!

Date2012/03/04 21:39 [Edit]
Nameツー ツー's Mail Addressツー's URL

この方法を試してみましたが、UAC回避できませんでした。他の方法はありませんか?

Date2012/03/05 09:57 [Edit]
NameNaoten(ナオテン) <span class=Naoten(ナオテン)'s Mail Address" /><span class=Naoten(ナオテン)'s URL" />

○ツーさん

お初にお目にかかります、ツーさん!

> この方法を試してみましたが、UAC回避できませんでした。他の方法はありませんか?

すいません、この方法以外に、UACを回避する手段を私は知りません。

ところで、UACを回避できない、と言うお話ですが、
具体的には以下のどれに当てはまるのでしょうか。


記事中の手順3.で作成したvbsファイルを起動した後、

ア.何もおこらない。
イ.UAC確認画面が出てしまう。


アの場合、手順に抜けか、漏れががある可能性がございます、
イの場合に特に注意いただきたいのは、
タスク作成の際の「最上位の特権で実行する」にチェックを入れる事です。
ここで抜けがありますと、UACは回避できません。

今一度ご確認頂ければ幸いです。m(_ _)m

Date2012/03/05 21:17 [Edit]
Nameツー ツー's Mail Addressツー's URL

「ア」の方です。vbsファイルを開くことができないんです。一度チェックしてみます。

Date2012/03/05 21:31 [Edit]
Nameツー ツー's Mail Addressツー's URL

ここから先の方法はWindows7上での説明になります。
他のOS上やログインユーザーが管理者で無い場合は
正常に動作しない可能性がありますので注意してください。
とありますが、標準ユーザーがこの作業をやってもダメってことですか?
管理者としてログオンして最初からやればできますか?

Date2012/03/05 21:46 [Edit]
NameNaoten(ナオテン) <span class=Naoten(ナオテン)'s Mail Address" /><span class=Naoten(ナオテン)'s URL" />

○ツーさん

こんばんわ!Naotenです。


> ここから先の方法はWindows7上での説明になります。
> 他のOS上やログインユーザーが管理者で無い場合は
> 正常に動作しない可能性がありますので注意してください。
> とありますが、標準ユーザーがこの作業をやってもダメってことですか?
> 管理者としてログオンして最初からやればできますか?

標準ユーザーでの動作検証はしていない為、
「可能性」と書いております。

タスクスケジューラの設定で
「最上位の特権で実行する」にチェックが出来る状態であれば、
問題ないかも知れません。(曖昧ですいません。)

それと、ちょっと気になったので、
この記事で書いているファイルを2つ作成し、
アップロードしました。

URLは以下となります。

http://cyfis.system.cx/blog/NaotenExec.lzh

これをダウンロードして頂き、
NaotenExec.vbsをタスクに登録、
Memo.vbsを直接起動いただき、
メモ帳が起動されるか確認してみてください。

もし、メモ帳が起動しましたらそのままMemo.vbsをメモ帳で開いて頂き、

'' ===ここにプログラムのフルパスを設定===
と書かれている下の行のファイルパスを
ツーさんが起動したい実行ファイルのパスに書き換えてみて下さい。
(c:\test.exe 等)

タスクに正常に登録されていましたらこれで動作するはずです。
一度それで状況を教えてもらってもよいですか?

お知らせいただきたい事。

1.Memo.vbsを実行した時、メモ帳が起動するか否か。
2.メモ帳が起動した後、パスを書き換えた結果、ツーさんの動作させたいプログラムが起動したか否か。


 

Date2012/03/08 08:31 [Edit]
Nameツー ツー's Mail Addressツー's URL

メモ帳は起動しましたが、パスを書き換えても、プログラムは起動しませんでした。

Date2012/03/08 10:20 [Edit]
NameNaoten(ナオテン) <span class=Naoten(ナオテン)'s Mail Address" /><span class=Naoten(ナオテン)'s URL" />

○ツーさん

> メモ帳は起動しましたが、パスを書き換えても、プログラムは起動しませんでした。

何度も試して頂きすいません。

メモ帳はUACが出ないプログラムとなっており、
問題なく動作したものと予想します。

ここまで来ましたら、あと疑うべきはパスの正当性と、
管理者ユーザーではない為の権限不足による起動キャンセルくらいでしょうか。

前者に関してはフルパスで指定していただいていると思いますが、
ツーさんが書かれた以下のようなパスが
 C:\Program Files\Test\AAAシステム.exe

実際に正しく指定されているか確認する為に
インターネットエクスプローラを起動して頂き、
URLを書く欄に、ツーさんの指定したパスを
コピペしてエンターを押してみてください。

http://blog-imgs-42.fc2.com/n/a/o/naotendo/20120308101053443.jpg
この様な画面が表示されましたら、
パスは正常に指定されている、と言う事になります。

もし以下の様な画面が表示されましたら、
パスが正常に設定されていない可能性がありますので、
もう一度見なおしてみて下さい。

http://blog-imgs-42.fc2.com/n/a/o/naotendo/201203081017104c3.jpg

もし、パスが正常なのにもかかわらず起動しない場合、
ツーさんがおっしゃられていた様に、
「管理者権限ユーザー」でのログインが必要なのかも知れません。
大変恐縮ですが管理者権限ユーザーでログインしなおして頂き、
今一度、ご確認下さい。

Date2012/03/08 19:09 [Edit]
Nameツー ツー's Mail Addressツー's URL

後者の画面が出ます。ファイルのプロパティの詳細ページに書いてあるパスではダメなのですか?
ほんとに初心者でわかりません。

Date2012/03/09 01:37 [Edit]
NameNaoten(ナオテン) <span class=Naoten(ナオテン)'s Mail Address" /><span class=Naoten(ナオテン)'s URL" />

○ツーさん

> 後者の画面が出ます。ファイルのプロパティの詳細ページに書いてあるパスではダメなのですか?
> ほんとに初心者でわかりません。

ふむふむ。
では、以下の手順を確認しつつ、
パスを調べてみましょう。

まず、起動させたいプログラムのアイコンに、
こんなマークはついていますか?

http://blog-imgs-42.fc2.com/n/a/o/naotendo/20120309012018d0a.jpg

この矢印マークが
ついている場合とついていない場合でパスの導き出し方が変わります。

矢印マークがついている場合

このファイルはショートカットファイルと言って、
他のファイルの場所を指し示しています。

実際にダブルクリックなどで実行した場合、
このファイルそのものが起動する訳ではなく、
その指し示している先のファイルが起動する訳です。

で、このファイルのプロパティから、
以下の「ショートカット」と書かれているページを開きます。
(このページの事をタブ、と呼びます。つまりショートカットタブ。)

http://blog-imgs-42.fc2.com/n/a/o/naotendo/201203090125095a7.jpg

ここの「リンク先」となっている場所が、
vbsファイルに設定すべきパスです。
画面の例の場合では(ちょっと切れてますが)

"C:\Program Files\radiko_player_air\radiko_player_air.exe"

と言うのがそれにあたります。

ですのでこの場合、
vbsファイルに以下のように記載して下さい。

'' ===ここにプログラムのフルパスを設定===
strAppPath = "C:\Program Files\radiko_player_air\radiko_player_air.exe"


矢印マークがついていない場合

逆に、矢印マークがついていない場合は
少々、工夫が必要です。
以下のプロパティ画面の全般タブを開いて頂き、

http://blog-imgs-42.fc2.com/n/a/o/naotendo/20120309013053569.jpg


場所と書かれている所からパスを、

C:\Program Files\radiko_player_air

一番上のテキストボックスからファイル名を取得します。

radiko_player_air.exe


で、この2つを円マークで連結したものがフルパスとなり、
設定して頂きたいパスとなります。

場所 + \(円マーク) + ファイル名


'' ===ここにプログラムのフルパスを設定===
strAppPath = "C:\Program Files\radiko_player_air\radiko_player_air.exe"

HTMLの表示上の都合で円マークが/(スラッシュ)と
表示されているかも知れませんが、
その場合、円マークと置き換えて考えて下さい。

是非、経過をお知らせ下さいませ(^^
それではまたー!

Date2012/03/09 17:15 [Edit]
Nameツー ツー's Mail Addressツー's URL

ショートカットタブに書かれているパスでやってもできませんでした。また、そのパスを検索しても×
××は見つかりませんと出て、どちらのウィンドウも開きません。

Date2012/03/09 19:32 [Edit]
NameNaoten(ナオテン) <span class=Naoten(ナオテン)'s Mail Address" /><span class=Naoten(ナオテン)'s URL" />

○ツーさん

> ショートカットタブに書かれているパスでやってもできませんでした。また、そのパスを検索しても×
> ××は見つかりませんと出て、どちらのウィンドウも開きません。

ちょっと事態は混迷を極めて参りましたね(^^;

いくつか確認させて下さい。

・ショートカットタブに書かれているパスは "(ダブルコーテーション)で囲まれていますが、
 IEで試される場合、これは削除して確認なされておりますでしょうか?

 例)
  "C:\test.exe"
     ↓
   C:\test.exe

・ショートカットタブ上には「ファイルの場所を開く(F)」と言うボタンがありますが、
 それを押していただくと、実際のリンク先のフォルダが開くはずです。

 まずフォルダが開かれますでしょうか。
 そして、開かれたフォルダ内に、該当のファイルは存在するでしょうか。

・VBSファイルに記載しますパスは一回だけダブルコーテーションで囲まれている必要があります。


 strAppPath = c:\test.exe
 もダメですし、

 strAppPath = ""c:\test.exe""
 もダメです。

 strAppPath = "c:\test.exe"
 となっているかご確認下さい。


どうでしょう??

Date2012/03/09 20:59 [Edit]
Nameジョン・ドゥ ジョン・ドゥ's Mail Addressジョン・ドゥ's URL

フルパス記載時にプロパティからコピー&ペーストしたとすると、
” ” 部分までもコピー&ペーストしちゃってるとかが怪しくないですかねえ。

って、上記に書いてありましたか・・・
まあ、後はUACを根本から無効化するとかの方が迷わないのかもしれません(これは本末転倒というか、この記事の最初で否定されている状況ですが・・・)

Date2012/03/10 07:18 [Edit]
Nameツー ツー's Mail Addressツー's URL

Naotenさん・ジョン・ドゥさん

確認してみても、ちゃんと一回だけダブルコーテーションに囲まれた状態でした。
なぜできないのでしょうv-236

Date2012/03/10 12:03 [Edit]
NameNaoten(ナオテン) <span class=Naoten(ナオテン)'s Mail Address" /><span class=Naoten(ナオテン)'s URL" />

○ジョン・ドゥさん

 そうですね、UACの根本的な無効化も、
 特に問題なければ選択肢かも知れませんね。


○ツーさん


> Naotenさん・ジョン・ドゥさん
>
> 確認してみても、ちゃんと一回だけダブルコーテーションに囲まれた状態でした。
> なぜできないのでしょうv-236

 ちなみに
 こちらに関してはどうだったでしょうか?

・ショートカットタブに書かれているパスは "(ダブルコーテーション)で囲まれていますが、
 IEで試される場合、これは削除して確認なされておりますでしょうか?

 例)
  "C:\test.exe"
     ↓
   C:\test.exe

・ショートカットタブ上には「ファイルの場所を開く(F)」と言うボタンがありますが、
 それを押していただくと、実際のリンク先のフォルダが開くはずです。

 まずフォルダが開かれますでしょうか。
 そして、開かれたフォルダ内に、該当のファイルは存在するでしょうか。

Date2012/03/11 21:19 [Edit]
Nameツー ツー's Mail Addressツー's URL

はい、どちらも大丈夫です。

Date2012/03/12 06:05 [Edit]
NameNaoten(ナオテン) <span class=Naoten(ナオテン)'s Mail Address" /><span class=Naoten(ナオテン)'s URL" />

○ツーさん

> はい、どちらも大丈夫です。

・ファイルは存在する。
・この記事で紹介したスクリプト自体は問題なく設定されている。
・IEからは起動しない。
・管理者権限ユーザーでログインはしていない。

今までの結果を上記の様にまとめますと
可能性はだいぶ絞られたと思います。

可能性1

 記事中にあるとおり、
 管理者権限があるユーザーでログインしていない為、
 起動しない可能性。


可能性2

 ツーさんが起動したいプログラムが、
 他のプロセスからの起動を許可しないプログラムである可能性。



1を解決するため、
管理者権限があるユーザーでログインしなおして頂き、
同様の設定を行なって頂き、動作するかご確認下さい。

それでも動作しない場合は2が原因の可能性があり、
この場合、この記事の方法ではUACは回避できないと思います。
(私自身、実際、こう言ったプログラムを所持しています。)

最後の手段として、この記事自体の趣旨には反しますが、
ジョン・ドゥさんがおっしゃられていたような、
「Win7そのもののUAC設定をOFF」にする方法もあります。

ただしこちらはセキュリティレベルが低下する恐れがありますので、
設定を実際にOFFにするかは十分にご検討下さい。

こちらの方法も管理者権限ユーザーでのログインが必須です。
詳細は以下、他サイト様をご参照下さい。

Windowsのユーザー・アカウント制御(UAC)を一時的に無効にする
http://www.atmarkit.co.jp/fwin2k/win2ktips/859disuac/disuac.html

なお、上記他サイト様の記事の内容に関しましては、
一切、コメント出来ませんので予め御了承くださいませ!

Date2012/03/12 18:54 [Edit]
Nameツー ツー's Mail Addressツー's URL

管理者権限でログオンしたらできました!今まで何回も本当にありがとうございました。

Date2012/03/13 09:58 [Edit]
NameNaoten(ナオテン) <span class=Naoten(ナオテン)'s Mail Address" /><span class=Naoten(ナオテン)'s URL" />

○ツーさん

> 管理者権限でログオンしたらできました!今まで何回も本当にありがとうございました。

こちらこそ、回りくどい確認をさせてしまい、申し訳ありませんでした。
ただ、状況を確認する事が出来て良かったと思います。

記事中の

ここから先の方法はWindows7上での説明になります。
他のOS上やログインユーザーが管理者で無い場合は
正常に動作しない可能性がありますので注意してください。


と言う表記中の

正常に動作しない可能性がありますので注意してください。

と言う表現に関しまして、
私自身は試していなかったので「可能性」と書きましたが、
ツーさんに試して頂き、確実になりましたので、


正常に動作しないので注意してください。

に訂正いたしました。

情報、ありがとうございました!

Date2012/03/18 13:12 [Edit]
Namesoota soota's Mail Addresssoota's URL

はじめまして。

ここの記事通りに試させて頂きました。
確かにUACは回避できますが、
回避して呼び出したプログラムのプロセスの「優先度の設定」が「通常以下」になってしまいます。

↓こちらで紹介されているのと同様の状態ですね
http://www.gigafree.net/security/process/uactrustshortcut.html

優先度が下がってしまうのはちょっと困るアプリがあるので、
私はおとなしくUAC権限ダイアログと付き合うことにします><

Date2012/03/18 15:19 [Edit]
NameNaoten(ナオテン) <span class=Naoten(ナオテン)'s Mail Address" /><span class=Naoten(ナオテン)'s URL" />

○sootaさん

はじめまして!sootaさん!

> 確かにUACは回避できますが、
> 回避して呼び出したプログラムのプロセスの「優先度の設定」が「通常以下」になってしまいます。

なるほど、そんな問題があったんですね、
気づきませんでした。(ーー;

このスクリプトでは最終的にコマンドラインでプログラムを起動していまして、
その起動する部分、記事中ですとNaotenExec.vbsの8行目の以下の処理を

objWshShell.Exec(WScript.Arguments(0))

以下に書き換え、

objWshShell.Exec("cmd.exe /c start /high " & WScript.Arguments(0))

実際に起動したいプログラムのvbs内のパスを以下(あくまで例です)から

strAppPath = "C:\Program Files\Fraps\fraps.exe"

以下に書き換えますと

strAppPath = "C:\Progra~1\Fraps\fraps.exe"

(パスに空白を含めたくないのでこうしました。いわゆる8.3形式)

一応、コマンドライン上はプロセス優先度を高で起動した設定にする事はできます。

しかし、この方法を用いてもプロセスが高になるプログラム(メモ帳で確認)と、
ならないプログラム(例で挙げているFraps)がありました。
この方法でsootaさんの起動したいプログラムの優先度が変われば御の字ですが、
どうでしょうか?
(実際、私も優先度が変わらないプログラムがあったので、
 なんとなく望み薄い気がしています(ーー;;)

UACの回避と
コマンドラインからのプログラム起動でプロセスの優先度が変えられないのは
また別の話の様ですが、引き続き少し調べてみます。

参考URL
http://www.atmarkit.co.jp/fwin2k/win2ktips/112changepriority/112changepriority_02.html

Date2012/03/18 18:31 [Edit]
Namesoota soota's Mail Addresssoota's URL

早速の返信、ありがとうございます。

私の環境・・・の件ですが、優先度以外に、
管理者権限で実行する必要が出てきてしまったため、
「プロパティ→互換性→管理者としてこのプログラムを実行する」に
チェックを入れる必要が出てしまいました。

このため、いずれにせよUACに引っかかると判断し、
おとなしく関連するプログラム群のプロパティを変更しました><

お手数をおかけしてすみません。

Date2012/03/18 20:44 [Edit]
Namesoota soota's Mail Addresssoota's URL

優先度以外に管理者権限でって・・・自分で言っておいてなんですが、
根本的に「管理者権限に昇格するときのダイアログ抑制」がメインでしたね
大変失礼しました

レスでご教示いただいた方法で試してみようと思います
ありがとうございました

Date2012/03/19 00:36 [Edit]
Namesoota soota's Mail Addresssoota's URL

おせわになります。

当方の環境におきまして、11個のプログラムをvbaで起動するようにしてみたところ、
優先度の設定が「高」になるプログラム、「高」に設定できないためか「通常」になっており、
「通常以下」はみあたりませんでした。

ただ、1つのプログラムにおいて、カレントフォルダのファイルを参照していたため、
タスクスケジューラより呼び出されるvbsを以下のように修正し、
正常動作を確認しましたので、ご報告いたします。

--------
Option Explicit

Dim objWshShell ' WshShell オブジェクト
Dim objFS

Set objFS = CreateObject("Scripting.FileSystemObject")

If WScript.Arguments.Count <> 0 Then
Set objWshShell = WScript.CreateObject("WScript.Shell")
objWshShell.CurrentDirectory = objFS.GetParentFolderName(WScript.Arguments(0))
objWshShell.Exec("cmd.exe /c start /high " & WScript.Arguments(0))
End if

Date2012/03/19 02:11 [Edit]
NameNaoten(ナオテン) <span class=Naoten(ナオテン)'s Mail Address" /><span class=Naoten(ナオテン)'s URL" />

○sootaさん

> 当方の環境におきまして、11個のプログラムをvbaで起動するようにしてみたところ、
> 優先度の設定が「高」になるプログラム、「高」に設定できないためか「通常」になっており、
> 「通常以下」はみあたりませんでした。

ふむふむ、通常以下にならなければとりあえず良い、
と言う解釈で良かったのですかね?


> ただ、1つのプログラムにおいて、カレントフォルダのファイルを参照していたため、
> タスクスケジューラより呼び出されるvbsを以下のように修正し、
> 正常動作を確認しましたので、ご報告いたします。
>
> --------
> Option Explicit
>
> Dim objWshShell ' WshShell オブジェクト
> Dim objFS
>
> Set objFS = CreateObject("Scripting.FileSystemObject")
>
> If WScript.Arguments.Count <> 0 Then
> Set objWshShell = WScript.CreateObject("WScript.Shell")
> objWshShell.CurrentDirectory = objFS.GetParentFolderName(WScript.Arguments(0))
> objWshShell.Exec("cmd.exe /c start /high " & WScript.Arguments(0))
> End if

むむ、これは以前、こちらのコメント欄で
るるさんがおっしゃってた現象かも知れません。

テコ入れ感謝です!

明日(正確に言うと今日)は終日出かけているので、
明後日以降、
動作確認して問題なければ
ブログ記事中のソースを更新しておこうと思います!

色々試して頂いて感謝です(^^

Date2012/03/19 02:52 [Edit]
Namesoota soota's Mail Addresssoota's URL

おせわになります。

おっしゃるとおり、普通に起動した時と同じ「通常以上」ならOKと考えてます。

で、更に修正いたしました。
呼び出す側のファイルパスに、8.3形式じゃなく、ロングネーム形式に対応しました。
(タスクマネージャにはスペースありで渡されても$arg0で取れるため、
 タスクスケジューラより呼び出されるvbsで8.3形式を算出し実行するようにしました)

オンラインゲームのギルドメンバーに情報を公開したいので、
転載させていただいてもよろしいでしょうか?
vbsファイルそのままupしてDLしてもらうようにしてしまったほうが説明が楽なもので^^;

--------
Option Explicit

Dim objWshShell ' WshShell オブジェクト
Dim objFS
Dim objFilePath

Set objFS = CreateObject("Scripting.FileSystemObject")
set objFilePath = objFS.GetFile(WScript.Arguments(0))

If WScript.Arguments.Count <> 0 Then
Set objWshShell = WScript.CreateObject("WScript.Shell")
objWshShell.CurrentDirectory = objFS.GetParentFolderName(objFilePath.ShortPath)
objWshShell.Exec("cmd.exe /c start /high " & objFilePath.ShortPath)
End if

Date2012/03/19 16:01 [Edit]
Namesoota soota's Mail Addresssoota's URL

おせわになります。連投すみません><

更に修正いたしました。

objWshShell.Exec("cmd.exe /c start /high " & objFilePath.ShortPath)

objWshShell.Exec("cmd.exe /c start /NORMAL " & WScript.Arguments(0))

『「優先度の設定」が下がらなければ良い<>「優先度の設定」が高いほうがいい』
という意味合いで、不必要に「優先度の設定」が高くなることで弊害が発生するかもしれないので、
「優先度の設定」を「通常」にするように変更しました。

Date2012/03/20 18:05 [Edit]
NameNaoten(ナオテン) <span class=Naoten(ナオテン)'s Mail Address" /><span class=Naoten(ナオテン)'s URL" />

○sootaさん

こんばんは、Naotenです。
御返事遅くなり申し訳ありません!

> 呼び出す側のファイルパスに、8.3形式じゃなく、ロングネーム形式に対応しました。
> (タスクマネージャにはスペースありで渡されても$arg0で取れるため、
>  タスクスケジューラより呼び出されるvbsで8.3形式を算出し実行するようにしました)

これはこの記事の内容の一部不具合部分の修正も併せておりますので、
記事中に反映させて頂きました。
ありがとうございました(^^


> オンラインゲームのギルドメンバーに情報を公開したいので、
> 転載させていただいてもよろしいでしょうか?
> vbsファイルそのままupしてDLしてもらうようにしてしまったほうが説明が楽なもので^^;

公開なされる記事の隅っこにでも転載元としてこちらの記事のURLを貼ってもらえれば
それで自由に文章の転載、スクリプトの改造、
ファイルをダウンロード出来る様にしてもらって構いません。


同じオンラインゲーマーとして良いネットライフを送りましょう!

それではまた(^^

 

Date2012/03/20 19:24 [Edit]
Namesoota soota's Mail Addresssoota's URL

おせわになります。

ソース修正確認しました。
できれば私の名前をちょろっと書いておいてもらえると幸いです。
元開発者なので自己主張すみません^^;

あと、「On Error Resume Next」この行は無くしておくと、
正常に動かない場合にメッセージが表示されるため、
「うごきません」と相談してくる人にどのようなメッセージがでるか
聞けるようになりますのでお勧めです。


話はもどりまして
情報の参考にさせていただいたURLとして明記させていただくつもりです。
該当ページ:http://www44.atwiki.jp/a2z_izm/pages/38.html

実際の記事の記入は体調が戻り次第ということで、
取り急ぎ「参考url」としてリンクを貼らせて頂きました。
よろしければご確認ください。

Date2012/03/20 20:09 [Edit]
NameNaoten(ナオテン) <span class=Naoten(ナオテン)'s Mail Address" /><span class=Naoten(ナオテン)'s URL" />

○sootaさん

> おせわになります。
>
> ソース修正確認しました。
> できれば私の名前をちょろっと書いておいてもらえると幸いです。
> 元開発者なので自己主張すみません^^;

失礼しました、ソース中ではなくて申し訳ありませんが、
記事中にお名前を書かせて頂きました。
(ソース中には私の名前すら書いてないのでご了承ください。)


> あと、「On Error Resume Next」この行は無くしておくと、
> 正常に動かない場合にメッセージが表示されるため、
> 「うごきません」と相談してくる人にどのようなメッセージがでるか
> 聞けるようになりますのでお勧めです。

On Error Resume Nextに関してはむしろ、
ご相談を受けないためにあえて書いたフシもあるのですが、
その実、結構、ご相談を受けてるのでどうしようかな、と言う感じです。

> 話はもどりまして
> 情報の参考にさせていただいたURLとして明記させていただくつもりです。
> 該当ページ:http://www44.atwiki.jp/a2z_izm/pages/38.html
>
> 実際の記事の記入は体調が戻り次第ということで、
> 取り急ぎ「参考url」としてリンクを貼らせて頂きました。
> よろしければご確認ください。

うお!?(UOとかけてる)

実は私も1998年頃から2年間、UO(hokutoサーバー)で遊んでいました。
懐かしいです。

ページは了解いたしました。
ご連絡ありがとうございました(^^

Date2012/03/20 20:30 [Edit]
Namesoota soota's Mail Addresssoota's URL

おせわになります。

名前の件、ありがとうございます^^

ホコツ・・・もとい北斗の住人だったんですか!
1998-2000といえば、まだフェルッカしかなかった時代ですね~
UOは今、人をふやそうと、トライアルアカウント(15日間無料)ができましたよ~
もちろんソフトもダウンロード可能です。
http://ultimaonline.jp/trial/account/
もしよろしければ、今の北斗を散歩されてみてはいかがでしょうか?^^
北斗はバシネットマニアが多いことでで有名ですよ~

ちなみに私もMHFでごりごり遊んでた時期がありましたよ~w

2010-12-09のnProtect GameGuard更新で、
アンチウィルスソフトのAVG、
日本語入力支援のImeBig2(入力中文字を大きく表示してくれます)、
そしてgoogle chromeとの相性がわるく、
サポートと延々問い合わせた結果、
上の3つのプログラムを削除してくださいとかいわれたので、
やってられるかーヽ(`Д´)ノウワァァァン!!
って引退した覚えがありますw
まだダレットに課金残ってるんですけどね^^;

と、話がそれてしまいました。

いろいろと有難うございました。

Date2012/03/21 09:39 [Edit]
NameNaoten(ナオテン) <span class=Naoten(ナオテン)'s Mail Address" /><span class=Naoten(ナオテン)'s URL" />

○sootaさん

おはようございます、Naotenです!

> 名前の件、ありがとうございます^^

こちらからも、重ねて、お礼を申し上げます、
色々とありがとうございました!

ホコツ・・・もとい北斗の住人だったんですか!
> 1998-2000といえば、まだフェルッカしかなかった時代ですね~
> UOは今、人をふやそうと、トライアルアカウント(15日間無料)ができましたよ~
> もちろんソフトもダウンロード可能です。
> →http://ultimaonline.jp/trial/account/
> もしよろしければ、今の北斗を散歩されてみてはいかがでしょうか?^^
> 北斗はバシネットマニアが多いことでで有名ですよ~

そうです、トランメルがちょうど出来る頃にブリタニアを去りました。
ゲームを始めた初期はローマ字しか打てなくて、日本人プレイヤーと
「konnitiha!iitenkidesune!」
とかしゃべっていた事を思い出します。(^^

フィールドに時たま流れるいくつかの音楽が、
今でも思い出せるくらい良い音楽だったと記憶しています。

また、少し仕事が暇になったら、
そんな音楽を聞きに少し散歩してみようと思います(^^
(もう10年以上前なので音楽とか変わってるかも知れませんが…。)

> ちなみに私もMHFでごりごり遊んでた時期がありましたよ~w
>
> 2010-12-09のnProtect GameGuard更新で、
> アンチウィルスソフトのAVG、
> 日本語入力支援のImeBig2(入力中文字を大きく表示してくれます)、
> そしてgoogle chromeとの相性がわるく、
> サポートと延々問い合わせた結果、
> 上の3つのプログラムを削除してくださいとかいわれたので、
> やってられるかーヽ(`Д´)ノウワァァァン!!
> って引退した覚えがありますw
> まだダレットに課金残ってるんですけどね^^;
>
> と、話がそれてしまいました。

なんと、生粋のオンゲーマーさんでしたか!
nProtect GameGuardは色々とガンです、
この記事の方法でUAC回避を行なっても、
正常にMHF.exeを起動できませんでした。

起動時の詳細は忘れてしまいましたが
nProtect GameGuardがエラーを吐いていたので、
他プロセスからの起動を禁止しているのかも知れません。
(実はプロセスの優先度の問題で、今回の対応で起動できちゃうかも知れませんが。)

> いろいろと有難うございました。

こちらこそ、ありがとうございました!

Date2012/08/14 09:27 [Edit]
Namemaoyama maoyama's Mail Addressmaoyama's URL

Naotenさん。
はじめまして。
色々探してここにたどり着き、便利に利用させていただいております。
御世話になりついでといっては変ですが教えていただきたいのですが、この方法で登録したアプリを起動した時に一瞬のみ開くDOS窓を抑制する方法はありませんか?
よろしくご教示下さい。

Date2012/08/14 14:04 [Edit]
NameNaoten(ナオテン) Naoten(ナオテン)'s Mail AddressNaoten(ナオテン)'s URL

○maoyamaさん

> Naotenさん。
> はじめまして。

 こちらこそ初めまして!

> この方法で登録したアプリを起動した時に
> 一瞬のみ開くDOS窓を抑制する方法はありませんか?

 そうですね、確かに一瞬、ちらつくDOS窓は気持ち悪いですよね(^^;
 以下の方法を試してみて下さい。

 1.記事中で「NaotenExec.vbs」と便宜上呼んでいるファイルをテキストエディタ等で開く。
 2.ファイルの14行目、以下の行を
        objWshShell.Exec(objFilePath.ShortPath)
   以下と書き換える。
        objWshShell.Run(objFilePath.ShortPath, 0, False)

 優先度が高いの場合こちらをお試しください。
   以下の行を
        objWshShell.Exec("cmd.exe /c start /HIGH " & objFilePath.ShortPath)
   以下と書き換える。
        objWshShell.Run("cmd.exe /c start /HIGH " & objFilePath.ShortPath, 0, False)

 3.動作を確かめる。

 *注意点 スペースは必ず半角で入力して下さい。

 私の環境ではこれでDOS窓は表示されなくなりました。
 maoyamaさんや他の方の環境で同じように動作するかはちょっと判らないので、
 是非、試してもらって、結果を教えて貰えたら嬉しいです(^^

Date2012/08/14 17:46 [Edit]
Namemaoyama maoyama's Mail Addressmaoyama's URL

御世話になります。
早速のお返事ありがとうございました。
14行目を書換えて実行してみましたが、
行:14
文字:84
エラー:Subプロシージャを呼び出すときに、かっこを使うことはできません。
コード:800A0414
と表示されてうまくいきません。

この書き足した ,0 ,False の部分は要するにvbHideを指定していると思うのですが、どうもうまく働いてくれません。
よろしくお願いいたします。

Date2012/08/14 17:57 [Edit]
Namemaoyama maoyama's Mail Addressmaoyama's URL

追加情報です。
14行目
objWshShell.Run("cmd.exe /c start /HIGH " & objFilePath.ShortPath, 0, False)

objWshShell.Run "cmd.exe /c start /HIGH " & objFilePath.ShortPath, 0, False
にしたら動きました。
Runの後ろにかっこは使えないようです。
ありがとうございました。

Date2012/08/14 19:39 [Edit]
Namemaoyama maoyama's Mail Addressmaoyama's URL

解決ついでにもう一つ質問させて下さい。
このスクリプトで起動したプログラムに対してデスクトップからのDrug&Dropを有効にしたい場合の対策はありますでしょうか。
よろしくご教示下さい。

Date2012/08/15 00:31 [Edit]
NameNaoten(ナオテン) Naoten(ナオテン)'s Mail AddressNaoten(ナオテン)'s URL

○maoyamaさん

 すいません、自分は()は除去せず、文頭にCallをつけてました。

 つまりこういう感じに。

    Call objWshShell.Run(objFilePath.ShortPath, 0, False)

 Call付けずコメントに返信してしまいました申し訳ありません(;´д⊂)

 ()を除去でも、Call付与でもどちらの方法でも構いませんので、
 お好きな方でお試しください。

> 解決ついでにもう一つ質問させて下さい。
> このスクリプトで起動したプログラムに対してデスクトップからのDrug&Dropを有効にしたい場合の対策はありますでしょうか。
> よろしくご教示下さい。

 もしかして当てがはずれた回答をしているかも知れませんが、
 記事中の最後に新しいソースを記述しました。

 maoさんがおっしゃりたいのはこう言う事ですよね??

Date2012/08/15 13:29 [Edit]
Namemaoyama maoyama's Mail Addressmaoyama's URL

ありがとうございました。
Call objWshShell.Run(objFilePath.ShortPath, 0, False)
動作確認しました。
ドラッグ&ドロップの件は確かに便利ですが、実は少し内容が異なりまして。
batファイルを管理者権限で実行してもデスクトップからのドラッグ&ドロップが不可能なのですが、explorer.exeを管理者権限で再起動すれば問題ないですよね。
このUACEscapeで起動したアプリの中にドラッグ&ドロップをうけつけないのがありまして。
explorer.exeを管理者権限で再起動すれば問題ないのですが、毎回行うのも本末転倒なので。
あらためて、質問内容はこのような状態の解除方法は無いでしょうか。
よろしくご教示下さい。

Date2012/08/16 05:15 [Edit]
NameNaoten(ナオテン) Naoten(ナオテン)'s Mail AddressNaoten(ナオテン)'s URL

○maoyamaさん

> このUACEscapeで起動したアプリの中にドラッグ&ドロップをうけつけないのがありまして。
> explorer.exeを管理者権限で再起動すれば問題ないのですが、毎回行うのも本末転倒なので。

 やっと意味を理解しました、文盲ですいません(;´д⊂)

 結論から申し上げますと、対応策は見つかりませんでした。

 このドラッグ&ドロップ(以下D&D)を受け付けない状況というのは、
 UAC(User Account Control ユーザーアカウント制御)
 そのものの問題と言うよりは
 UIPI(User Interface Privilege Isolation ユーザインタフェース特権分離)
 の問題に起因している様です。
 (UACをOFFにするとUIPIもOFFになるので一見、UACそのものだと感じますが。)

 UIPIと言うのは下位IL(Integrity Level)のプロセスから
 上位ILのプロセスに対して通信(例えばD&D)を制限する機能で、
 下位IL同士、上位IL同士、上位IL→下位ILへの通信は可能ですが、
 下位IL→上位ILの通信は不可能となっている様です。
 (これも一種のセキュリティ対策との事です。)

 UACEscapeがアプリケーションを上位IL化してUACを回避する方法を取っている以上、
 explorerのプロセスを上位IL化(管理者権限化)しなければ
 D&Dが有効にならないのはその為なのだと思います。

 ではワンクリック程度の簡単な操作(つまりスクリプト等)で
 explorerのプロセス自体を特権で再起動出来ないか試行錯誤してみましたが、
 スクリプトからの起動時に自動的に権限を引き下げられてしまう様で、
 実現には至りませんでした。

 っと、さんざん言い訳を並べていますが、
 力及ばず本当に申し訳ありませんでした(;´д⊂)

 関連URL
 http://msdn.microsoft.com/ja-jp/windows/desktop/dd871146

Date2012/08/16 10:50 [Edit]
Namemaoyama maoyama's Mail Addressmaoyama's URL

ありがとうございました。
>UACEscapeがアプリケーションを上位IL化してUACを回避する方法を取っている以上、
>explorerのプロセスを上位IL化(管理者権限化)しなければ
>D&Dが有効にならないのはその為なのだと思います。
>
>ではワンクリック程度の簡単な操作(つまりスクリプト等)で
>explorerのプロセス自体を特権で再起動出来ないか試行錯誤してみましたが、
>スクリプトからの起動時に自動的に権限を引き下げられてしまう様で、
>実現には至りませんでした。

何となく理解できたような気がします。ドラッグ&ドロップの問題があるのは1種のアプリのみで、しかも特定業種用なので割り切ってUACとつきあいます。
ありがとうございました。

Date2012/08/17 14:52 [Edit]
Namemaoyama maoyama's Mail Addressmaoyama's URL

御世話になっております。

>ではワンクリック程度の簡単な操作(つまりスクリプト等)で
>explorerのプロセス自体を特権で再起動出来ないか試行錯誤してみましたが、

この一文に刺激され、何となくtaskkillとstartを使ったバッチファイルを作って、タスクスケジューラから呼ぶようにしてみました。
この時に最上位の特権にチェックを入れておけばタスクをscriptかbatで呼ぶだけでUIPIの問題を回避できました。もちろん課題のD&Dも問題ありませんでした。
とりあえず本文とは関係有りませんがご報告させていただきます。

Date2012/08/17 15:37 [Edit]
NameNaoten(ナオテン) Naoten(ナオテン)'s Mail AddressNaoten(ナオテン)'s URL

○maoyamaさん

> この一文に刺激され、何となくtaskkillとstartを使ったバッチファイルを作って、
> タスクスケジューラから呼ぶようにしてみました。
> UIPIの問題を回避できました。もちろん課題のD&Dも問題ありませんでした。

 おぉ!?おめでとうございます!

 explorerを特権で再起動出来るスクリプトやバッチファイルが作成出来れば、
 それをタスクスケジューラやスタートアップで処理するだけですから、
 まさに私がやりたかった事はそれだったのです。

 しかし何故か私が作ったスクリプトでは特権再起動が上手く動作しませんでした。
 修行が足りなかった様です。

 何にせよ解決に至った様で安心しております(^^

Date2012/08/31 19:32 [Edit]
NameItaRin ItaRin's Mail AddressItaRin's URL

お世話になっております。

引数付きで実行したい場合には、どちらのVBSのどこを修正すればよいのでしょうか?

宜しくお願いします。

Date2012/08/31 21:19 [Edit]
NameNaoten(ナオテン) Naoten(ナオテン)'s Mail AddressNaoten(ナオテン)'s URL

○ItaRinさん

> お世話になっております。

 こんばんは!

> 引数付きで実行したい場合には、どちらのVBSのどこを修正すればよいのでしょうか?

 記事の最後に、引数を設定できるバージョンのNaotenExec.vbsと
 呼び出し元の個別.vbsのサンプルを追加しました。

 どうでしょうか。
 動きますでしょうか??

Date2012/09/01 07:48 [Edit]
NameItaRin ItaRin's Mail AddressItaRin's URL

お世話になっております。

> 記事の最後に、引数を設定できるバージョンのNaotenExec.vbsと
> 呼び出し元の個別.vbsのサンプルを追加しました。

見事です。完璧に動きました。

ありがとうございました。

Date2012/09/03 10:53 [Edit]
NameNaoten(ナオテン) Naoten(ナオテン)'s Mail AddressNaoten(ナオテン)'s URL

○ItaRinさん

> 見事です。完璧に動きました。
>
> ありがとうございました。

 おぉ!それは良かったです(^^

 元々初期のNaotenExec.vbsでは起動引数付きでファイルパスを指定出来て居たのですが、
 ショート形式のファイルパスに対応して以降、
 引数を渡すと動かなくなっていた様です。

 また何かあったらお気軽にどうぞ(^^

っと、ここからはひとりごとですが。
沢山の方のご意見やご要望に答えた結果、
本文記事が追記追記で大変見づらい状況になっておりますね。
今度、解りやすく記事やソースを書き直します。

Date2012/09/04 12:43 [Edit]
Namesoota soota's Mail Addresssoota's URL

パラメータ渡したいな~と思ってふらっと寄ってみたら、流石です。
早速参考にさせて頂き、アレンジさせてもらいました。
DOSウィンドウが開かないのもGJです!

Date2012/09/04 13:11 [Edit]
Namesoota soota's Mail Addresssoota's URL

きゃ~
> 元々初期のNaotenExec.vbsでは起動引数付きでファイルパスを指定出来て居たのですが、
> ショート形式のファイルパスに対応して以降、
> 引数を渡すと動かなくなっていた様です。

私のデグレですね。すみませんでしたっ(汗

Date2012/09/05 09:26 [Edit]
NameNaoten(ナオテン) Naoten(ナオテン)'s Mail AddressNaoten(ナオテン)'s URL

○sootaさん

> パラメータ渡したいな~と思ってふらっと寄ってみたら、流石です。
> 早速参考にさせて頂き、アレンジさせてもらいました。
> DOSウィンドウが開かないのもGJです!

 使う人の立場にならないと解らない事がいっぱいありまして、
 色々と勉強になりました(^^

> 私のデグレですね。すみませんでしたっ(汗

 いやいやいや!お気になさらずに!
 私の脳裏からも完全に抜け落ちていましたので(^^;;;

 また何かあったらよろしくです!

Date2012/10/25 00:23 [Edit]
Name 爺's Mail Address爺's URL

はじめまして。

先日からWindows 7を使い始め、UACを個別設定できず困っていたため、大変役立つ情報でした。
ありがとうございました。

ところで、「メモ帳に起動引数を渡すサンプル」ですが、これだと決まった引数しか渡すことができません。
当方はファイラを使っていることもあり、動的に引数を渡せないかと思いちょっと処理を変更してみました。
プログラム実行スクリプトに引数を渡し、その引数をそのまま実行するプログラムに渡します。

(前略)
'' ===ここにプログラムのフルパスを設定===
''strAppPath = "%windir%\notepad.exe,C:\test.txt"
strAppPath = "%windir%\notepad.exe" '' ここでは引数を指定しない

'' --- 引数を追加する処理 開始
Dim objParam
Dim strParam
Set objParam = WScript.Arguments
strParam = ""
Dim idx
For idx = 0 To objParam.Count - 1
strParam = strParam & " " & objParam(idx)
Next
If strParam <> "" Then
strParam = "," & strParam
End If
strAppPath = strAppPath & strParam
'' --- 引数を追加する処理 終了

'' タスクサービスオブジェクトの取得
Set objTaskService = CreateObject("Schedule.Service")
(後略)

いきなりの長文に加え、勝手な変更コードの書き込みで申し訳ありません。
プログラム実行スクリプトにはとても感謝しています。

それでは失礼いたします。

Date2012/10/25 15:40 [Edit]
NameNaoten(ナオテン) <span class=Naoten(ナオテン)'s Mail Address" /><span class=Naoten(ナオテン)'s URL" />

○爺さん

> はじめまして。

 はじめまして!

> 先日からWindows 7を使い始め、UACを個別設定できず困っていたため、大変役立つ情報でした。
> ありがとうございました。

 困っている人の潜在的な人口の割に、意外と情報が少ないんですよねコレ(;´д⊂)

> 当方はファイラを使っていることもあり、動的に引数を渡せないかと思いちょっと処理を変更してみました。
> プログラム実行スクリプトに引数を渡し、その引数をそのまま実行するプログラムに渡します。

 なるほど。
 色々な方法でWindows7を使っている方がいるのですね。
 参考になります。


> いきなりの長文に加え、勝手な変更コードの書き込みで申し訳ありません。

 いえいえ、前述のとおり色々な方が色々なケースでUACの壁に立ちふさがれ、
 このブログを訪れると思いますので、
 爺さんの書き込みは、また誰かの助けになると思います。歓迎です!


> プログラム実行スクリプトにはとても感謝しています。
> それでは失礼いたします。

 また何か有りましたらごゆるりと(^^
 それではまたです!

 

Date2012/12/09 22:22 [Edit]
Nametaka taka's Mail Addresstaka's URL

今まで、Windows7Home32bitを使っていました。
確かにVistaの頃にUACに悩まされたことがあったのですが、なぜか私のWin7Home32bitでは、UACがでませんでした。

昨日、Windows7Pro64bit(何と、世の中はWindows8ですが・・・(^_^;))に乗り換えたところまた、UACに悩まされるようになりました。
一番のネックが「スタートアップに登録できないアプリがある」ということです。

検索の結果、NaotenさんのHPにたどり着きました。
VB6の頃から遠ざかっていたVBです・・・(歳を感じます)。
このスクリプトはすごいです、どうもありがとうございました。

Date2012/12/10 23:52 [Edit]
NameNaoten(ナオテン) <span class=Naoten(ナオテン)'s Mail Address" /><span class=Naoten(ナオテン)'s URL" />

○takaさん

 takaさん、はじめまして!!

> 今まで、Windows7Home32bitを使っていました。
> 確かにVistaの頃にUACに悩まされたことがあったのですが、
> なぜか私のWin7Home32bitでは、UACがでませんでした。

 もしかしたら大元からUACそのものが出ない設定になっていたのかも知れませんね。
 
> 一番のネックが「スタートアップに登録できないアプリがある」ということです。

 インストーラーを使わないソフトの多くは、
 常駐するためにスタートアップにショートカットを配置、
 なんてのが昔からの知恵でしたものね。
 それが出来ないのは煩わしいです、ほんとに。

> 検索の結果、NaotenさんのHPにたどり着きました。
> VB6の頃から遠ざかっていたVBです・・・(歳を感じます)。

 私もプログラムを始めた頃はVB5とか6でした(^^;
 あの頃の手作り感がWSH(Windows Script Host)にはありますよね。

> このスクリプトはすごいです、どうもありがとうございました。

 お褒めに預かり光栄です。
 お役にたてそうで良かったです!

 大勢の方のお力添えもあり、色々なバリエーションも生まれまして、
 私自身、皆さんに感謝をしております。
 
 お互いによきPCライフを送りましょう!!(^^

Date2013/02/10 12:07 [Edit]
Name初心者 初心者's Mail Address初心者's URL

あのー
かなり遅い感じもしますが・・・・
最上位の権限で実行するにチェックを入れて、新規から引数を$(Arg0)にしてからOK押すのですよね?
そのOKをおすとユーザー名とパスワードを聞いてきます。
思い当たるパスワードを入れてみたのですが、ちがうと言ってきます。
ユーザー名のところは自分のやつと変な奴しかないです。(自分は権限ありません)
なのでOKを押すと聞いてくるパスワードは何ですか?教えてください!

画像の乗せ方がわからないのでブログに載せました
http://ameblo.jp/masafumi-h/entry-11467504511.html
題名は「カステラさんこちらです」です
よろしくおねがいします!

Date2013/02/11 15:13 [Edit]
NameNaoten(ナオテン) <span class=Naoten(ナオテン)'s Mail Address" /><span class=Naoten(ナオテン)'s URL" />

○初心者さん

 こんにちは!ブログ記事、拝見させて頂きました。
 
> ユーザー名のところは自分のやつと変な奴しかないです。(自分は権限ありません)
> なのでOKを押すと聞いてくるパスワードは何ですか?教えてください!

 「変な奴」と言うのは、ブログ記事にあった「APNS certificate」の事ですよね?
 私もあまり詳しくないのですが、これはiOSとかiPhoneとかを操作する為のユーザーっぽいです。
 ですのでこれは気にしなくて良いと思います。

 それでそもそも、ユーザー名とパスワードを聞かれると言うのは恐らく、
 初心者さんがログインしているアカウントに、
 管理者権限が無いために起きている現象だと思います。

 本記事の内容は前提として、
 ログインユーザーに管理者権限が存在していないと実行できない為、
 まずは初心者さんのログインアカウントに管理者権限を付与してみてお試し下さいませ。
 (管理者権限の付与に成功すると、パスワードの入力画面は出てこなくなります。)

 方法に関しては当記事では専門外なので詳しくは書きませんが、
 以下のURLやGoogleの検索結果等を参考にしてみて下さい。

 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1068492150
 ↑でダメだった場合、↓のベストアンサーをお試し下さい。
 http://oshiete.goo.ne.jp/qa/5620138.html

 上手く行けば良いのですが…。
 それではまた!

Date2013/02/11 22:23 [Edit]
Name- -'s Mail Address-'s URL

このコメントは管理人のみ閲覧できます

Date2013/02/14 23:02 [Edit]
Name初心者 初心者's Mail Address初心者's URL

もしかして、管理者権限を付与して、そのタスクスケジュールを作って、管理者権限とれば動きますか?
そういえば権限って剥奪できるんでしょうか?

Date2013/02/15 17:43 [Edit]
NameNaoten(ナオテン) <span class=Naoten(ナオテン)'s Mail Address" /><span class=Naoten(ナオテン)'s URL" />

○初心者さん

> もしかして、管理者権限を付与して、そのタスクスケジュールを作って、管理者権限とれば動きますか?

 このタスクスケジュールを登録する際にもスクリプトを実行する際にも
 管理者権限は必要になると思います。
 ですので、初心者さんが普段ログインしているアカウントに管理者権限を付与するか、
 管理者アカウントそのものでログインすれば、
 私の知らない特殊な事情がなければ記事通りにすれば動くはずです。

> そういえば権限って剥奪できるんでしょうか?

 ちょっと剥奪と言う言い方が物騒ですが(^^;

 剥奪、と言うのが額面通りの意味であるならば、
 「出来るでしょうけどもこのサイトでお教え出来る事はありませぬ。」
 と言うのが回答です。

 そもそもこのUACというのは、
 特定のアプリケーションがユーザーの意思に反して起動し、
 システムに勝手に変更を入れてしまう事を防ぐ為に導入されている安全装置です。

 このUACをON、OFFするのに管理者権限やユーザーの操作が不要なのであれば、
 UACの存在意義が問われる話となります。

 ですので、このスクリプトを動かすには管理者権限がある事は大前提です。

 記事名には「対策」なんて書いちゃってますが、
 ここのスクリプトはUACと戦うのではなく、
 どちらかと言えばUACと共存する方向性となっておりますので、
 その辺りをお察し頂ければ幸いでございますヽ(;´д`)ノ

Date2013/02/16 16:41 [Edit]
Name初心者 初心者's Mail Address初心者's URL

UACはいいやつなんですね。
ずっとUACと戦ってきましたが(2週間www)

共存ですか。

たしかにそれがいいのかもしれません。

これからはUACと共にウィルスと戦っていきたいです。

ありがとうございました!

Date2013/02/19 18:46 [Edit]
NameNaoten(ナオテン) <span class=Naoten(ナオテン)'s Mail Address" /><span class=Naoten(ナオテン)'s URL" />

○初心者さん

 > UACはいいやつなんですね。

 管理者権限さえあれば完全にUACを表示しない設定にも出来るのですが、
 この記事ではそれは行なっていません。
 あくまで特定のアプリケーションの起動のみに的を絞って、
 UACを表示させないようにしています。(そう言った意味で、共存なのです。)

 管理者権限を自身のログインアカウントに付与出来ないと言う事は
 恐らく初心者さんの所持するPCではないんですよね。
 (職場や学校、親兄弟のPCなのでしょうかね。)

 その辺りが解消しましたら、また当記事を参考にしてくださいませ!

Date2013/03/26 23:09 [Edit]
Name通りすがり 通りすがり's Mail Address通りすがり's URL

会社の先輩から振られたメンドクセー相談(XPでサポート終了してるソフトを7で使いたい)が、こちらの記事で解決しました。

大変助かりました。これからも楽しみに読ませて貰います。

Date2013/03/27 11:24 [Edit]
NameNaoten(ナオテン) <span class=Naoten(ナオテン)'s Mail Address" /><span class=Naoten(ナオテン)'s URL" />

○通りすがりさん

 > 会社の先輩から振られたメンドクセー相談(XPでサポート終了してるソフトを7で使いたい)が、こちらの記事で解決しました。

 通りすがりさん、こんにちは!

 簡単に解決できる、と踏んで先輩さんは言ったのでしょうけど、
 得てしてこう言う些細な事の方が解決は面倒だったり、難しかったりするんですよね。

 でも、問題が解決したようで良かったです!

 > 大変助かりました。これからも楽しみに読ませて貰います。

 技術関係の投稿は少ないですが、
 またいらしてくださいませ!(^^

Date2013/04/07 11:43 [Edit]
Nameささら ささら's Mail Addressささら's URL

大変有用な記事をありがとうございます。
お陰様で7のストレスから少し開放されました。

ところで、実行時にウィンドウを最小化して起動したい場合は、どのようにすれば良いのでしょうか?
よろしくご教示の程お願いいたします。

Date2013/04/07 15:45 [Edit]
NameNaoten(ナオテン) <span class=Naoten(ナオテン)'s Mail Address" /><span class=Naoten(ナオテン)'s URL" />

○ささらさん

 初めましてささらさん!
 お役に立てた様で何よりです!

 > ところで、実行時にウィンドウを最小化して起動したい場合は、どのようにすれば良いのでしょうか?
 > よろしくご教示の程お願いいたします。

 方法はいくつかあると思いますが、ここでは簡単な方法を一つご紹介します。 

 まず起動させたいアプリケーションのショートカットファイルを作成して何処かに配置して下さい。
 どこに配置していただいても構いませんが間違って消さない所に配置して下さい。

 続いてショートカットファイルを右クリックして「プロパティ」を選択して下さい。
 そこで以下の様な画面が開くと思うので、
 赤枠で囲んだ部分を「最小化」に変更して適用、もしくはOKボタンを押して下さい。

 http://blog-imgs-42.fc2.com/n/a/o/naotendo/20130407153341dcf.jpg

 後は、本文中で紹介している「プログラム個別のスクリプト」でアプリケーションのパスに
 今回作成したショートカットファイルのパスを指定します。
 これでささらさんのご希望する最小化での起動が成功するはずです。

 注意点としては
 例えばショートカットファイルを「fraps」と名付け、
 Cドライブの直下に配置した場合、パスは

 strAppPath = "C:\fraps"

 ではなく

 strAppPath = "C:\fraps.lnk"

 と指定する事が必要です。

 windowsでは表向き、ショートカットファイルの拡張子を表示しませんが、
 実際は .lnk の拡張子を持つ為です。

 この拙い文章で、上手くお伝え出来てれば良いのですが…。
 朗報をお待ちしております(^^

 

Date2013/04/09 19:34 [Edit]
Nameささら ささら's Mail Addressささら's URL

早速の回答ありがとうございます。

教えていただいた方法でやってみたのですけれど、
「xxx.lnk は、有効なWin32アプリケーションではありません。」とダイアログボックスが出てきます。
ショートカット単体では、UACが文句を言うものの普通に最小化で起動しています。
コマンドプロンプトからの実行でもUACが文句を言うものの起動します。

ソースを添付します。
よろしくお願いいたします。

-------------------------------------------
Option Explicit

Dim objTaskService
Dim objFolder
Dim objTask
Dim strAppPath

'' ===ここにプログラムのフルパスを設定===
strAppPath = "c:\CoreTemp.lnk"

'' タスクサービスオブジェクトの取得
Set objTaskService = CreateObject("Schedule.Service")
'' タスクサービスとの接続
objTaskService.Connect
'' 場所を指定してフォルダオブジェクトの取得
Set objFolder = objTaskService.GetFolder("\")
'' タスク名を指定してタスクオブジェクトを取得
Set objTask = objFolder.GetTask("UACEscape")
'' タスクを実行
objTask.Run """" & strAppPath & """"

Date2013/04/09 19:36 [Edit]
Nameささら ささら's Mail Addressささら's URL

環境を追記します。

Windows7 Home Premium/SP1/64bit

Date2013/04/10 01:39 [Edit]
NameNaoten(ナオテン) <span class=Naoten(ナオテン)'s Mail Address" /><span class=Naoten(ナオテン)'s URL" />

○ささらさん

 こんばんは!ささらさん!

 > 環境を追記します。
 >
 > Windows7 Home Premium/SP1/64bit

 同じエラーが出ないので、むしろ同じエラーが出る方法は無いかと
 ありとあらゆる悪手を試してみましたが、
 大体、普通に起動できてしまう為、現象を確認できませんでした。

 唯一の違いといえば、こちらには64bit環境が無い事です。
 もしかしたら32bit/64bitの違いによる問題かも知れません。
 現象が確認できないと解決方法も見いだせないので、この方法は諦めます。

 次の方法を取りたいと思います!
 一度、ショートカット経由の起動は忘れて頂いて、
 本記事中のプログラム直接指定の方法に戻して下さい。

 ささらさんの書いてくださったアプリケーションに心当たりがあったので
 インストールしてみました。

 それでメニューのオプション→設定から設定ダイアログを開いて頂いて、
 以下の赤字の項目を設定してみて下さい。

http://blog-imgs-42.fc2.com/n/a/o/naotendo/CoreTemp.jpg

 一瞬、通常起動しますがすぐに最小化されるはずです。
 この実現方法で問題なければ良いのですが…。

 いかがでしょうか?

Date2013/04/19 02:04 [Edit]
Name- -'s Mail Address-'s URL

このコメントは管理人のみ閲覧できます

Date2013/04/22 16:04 [Edit]
Namenii nii's Mail Addressnii's URL

初めて投稿するものです
特定プログラムのみ管理者権限で立ち上げる方法を
探していたところこちらの内容を見つけうまく対応できました
ありがとうございます
起動引数の指定で教えていただきたいことがあります
特定プログラムの起動で必要な引数をすでに例を
あげていただいている方法で入力して通常は問題なく
起動するのですが引数にスペースがあった時の
指定方法がわかりません
VBSはスペースで区切りを判断するからうまく起動できないのです
引数指定の例では
strAppPath = "%windir%\notepad.exe,/A C:\test.txt"
がありましたが
たとえば C:\test.txt が C:\A B\test.txt の時(AスペースBにtest.txtがある)
どの様に指定すればよいのでしょうか
過去の経験でシングルコーテーションでかこんだり 'C:\A B\test.txt'
Chr(34) & "C:\A B\test.txt" & Chr(34) など試しましたが
スペースを区切りとして判断しているみたいでうまく起動できません
ご教授をお願いいたします
(OSはWindows7pro32ビット版です)





Date2013/04/22 17:23 [Edit]
NameNaoten(ナオテン) <span class=Naoten(ナオテン)'s Mail Address" /><span class=Naoten(ナオテン)'s URL" />

○名無しさん

 管理者のみ閲覧の記事はブログの最新コメントに表示されない様で、
 気づくのが遅くなりました、すいません(;´д⊂)

 遅い時間まで頑張っていただいたみたいでお疲れ様でした!
 でも無事、動いたとの事で良かったです!

 また遊びに来て下さいませ(^^

○niiさん

 > 初めて投稿するものです

 初めましてniiさん!
 なるほど、そう言った問題もあるのですね。

 本文記事中の「起動引数を指定する場合のNaotenExec.vbs」を修正してみました。

 具体的には21行目のstartの手前に"(ダブルコーテーション)を2個、
 strParamの後に &(アンパーサンド)で連結し "(ダブルコーテーション)を4個追加しました。

 私の環境もWindows7Pro 32bitなのですが、
 試しに以下のコードを走らせても問題なく動いてしまいました。

 strAppPath = "%windir%\notepad.exe,/A C:\A B\test.txt"

 ですので、大変無責任な話ですが
 今回の修正が確実に動作するかも確認できない状況となっております。

 動作確認出来ましたら是非、ご一報下さいませ!

Date2013/04/22 17:31 [Edit]
NameNaoten(ナオテン) <span class=Naoten(ナオテン)'s Mail Address" /><span class=Naoten(ナオテン)'s URL" />

○niiさん

 追記です。

 もし、新しいNaotenExec.vbsでも動かない場合、
 実際にstrAppPathに渡しているコードを提示していただいてもよろしいでしょうか?
 (起動しているプログラム名を知られたくない場合はexe名やフォルダ名を○○等と置き換えて下さい。)

 よろしくお願いいたしますm(_ _)m

Date2013/04/22 19:45 [Edit]
Namenii nii's Mail Addressnii's URL

早速の回答ありがとうございます

テストしましたところ、当方の起動したいプログラム(IBMの市販プログラムです)では
この例ではエラーとなりメッセージは「C:\A がありません」でした

試しに notepad.exeでテキストファイルを開くとフォルダにスペースがあっても
正しく処理されました
さらに修正していただいく前のVBスクリプトでもnotepadの場合正しく処理されました

この結果から当方で起動しようとしているプログラム自体がスペースで区切りを
判断し引数を得ていると思われます
(プログラムの方は上位フォルダにスペースがあっても正しく認識しています)
お手間をかけていただき申し訳ございませんでした

実際の現在のショートカットは下記の通りです(前がプログラム、後ろが引数)
"C:\Program Files\IBM\Personal Communications\pcsws.exe" "C:\Program Files\IBM\Personal Communications\Private\DSP9931B.ws"

strAppPath = "C:\Program Files\IBM\Personal communications\pcsws.exe,Private\DSPB3306.ws"
とすると正しく起動しますが
strAppPath = "C:\Program Files\IBM\Personal communications\pcsws.exe,C:\Program Files\IBM\Personal Communications\Private\DSP9931B.ws"
としますとC:\Program がありませんのエラーとなります
, 以降のC:\Program でとまっていると想定しています

ショートカットのリンク先をスペースのあるフォルダに変更し
そのフォルダに引数で指定しているDSP3306.wsをコピーして
ショートカットから起動しますと正しく起動しますので
方法があるかもしれません
もう少し色々なパターンを試してみます

Date2013/04/22 20:11 [Edit]
NameNaoten(ナオテン) <span class=Naoten(ナオテン)'s Mail Address" /><span class=Naoten(ナオテン)'s URL" />

○niiさん

 こんばんはniiさん!

 ちなみに以下の引数部分を

 > strAppPath = "C:\Program Files\IBM\Personal communications\pcsws.exe,C:\Program Files\IBM\Personal Communications\Private\DSP9931B.ws"

 以下の様な「MS-DOS8.3形式」のパスに変更するとどうなりますでしょうか?

 strAppPath = "C:\Program Files\IBM\Personal communications\pcsws.exe,C:\PROGRA~1\IBM\PERSON~1\Private\DSP9931B.ws"

Date2013/04/23 12:43 [Edit]
Namenii nii's Mail Addressnii's URL

返信が遅くなり申し訳ございません

MS-DOS8.3形式で引数を設定して
起動しましたところ正しく起動いたしました
ありがとうございました

今後も自分で解決できない事象が出た時
お世話になるかもしれませんのでその際も
よろしくお願いいたします
本当にありがとうございました


Date2013/04/23 15:56 [Edit]
NameNaoten(ナオテン) <span class=Naoten(ナオテン)'s Mail Address" /><span class=Naoten(ナオテン)'s URL" />

○niiさん

 > 返信が遅くなり申し訳ございません

 お返事頂けるだけで嬉しいです。
 お気にせず(^^

 > MS-DOS8.3形式で引数を設定して
 > 起動しましたところ正しく起動いたしました
 > ありがとうございました

 おぉ!!良かった!!
 アプリケーションそのもののパスにはMS-DOS8.3形式に変換する処理を入れていたのですが、
 (本記事コメント中にsootaさんという方が提案してくださいました。)
 引数に関しては勝手に変換する事そのものの良し悪しが解らないので
 そう言った処理は入れていなかったのです。

 一つのケースとして、このコメントは重要だと思います。
 書き込み、ありがとうございました。
 本文中の"(ダブルコーテーション)部分は一度、前の状態に戻してしまいますね。

 > 今後も自分で解決できない事象が出た時
 > お世話になるかもしれませんのでその際も
 > よろしくお願いいたします
 > 本当にありがとうございました

 分かる範囲であれば喜んで!
 またお越しくださいませ!

Date2013/05/26 10:32 [Edit]
Nametaka taka's Mail Addresstaka's URL

昨年、2012年12月9日に「Naoten」さんのHPにたどり着きまして、
快適に運用動作していた「taka」と申します。
(2012年12月9日に書き込んだ通りです)

昨日、セキュリティソフトの Norton Internet Secuyrity がエラーを
起こしまして Norton の推奨するままに2個のソフトをダウンロードして
セットアップ、終了後 Norton が不要になった4つくらいのファイルを
消すメッセージ(推奨モード)を実行しました。

その後、再起動時から毎回、(スクリプト名は変えてありますが、内容は
Naotenさんが紹介して頂いた最初の、「NaotenExec.vbs」全く同じ)
で、「NaotenExec.vbs」実行時にエラーを返してくるようになりました。

内容は
 スクリプト: C:\xxxxxx\xxxxxx.vbs
 行: 10
 文字: 2
 エラー: ファイルが見つかりません。
 コード: 800A0035
 ソース: Microsoft VBScript 実行時エラー

となり、「NaotenExec.vbs」がエラーになってしまいます。
見たところ、無くなっているファイルはなさそうです。
対処法がおわかりになられましたら教えて頂けないでしょうか?
何卒宜しくおねがい致します。

画像のアップロード方法が解らないので、エラー文を文章記載にしました
ご迷惑をおかけして申し訳ございません。

Date2013/05/26 11:30 [Edit]
NameNaoten(ナオテン) <span class=Naoten(ナオテン)'s Mail Address" /><span class=Naoten(ナオテン)'s URL" />

○takaさん

 > 昨年、2012年12月9日に「Naoten」さんのHPにたどり着きまして、
 > 快適に運用動作していた「taka」と申します。
 > (2012年12月9日に書き込んだ通りです)

 お久しぶりですtakaさん!

 > 昨日、セキュリティソフトの Norton Internet Secuyrity がエラーを
 > 起こしまして

 私はNortonは使っていないのでちょっと調べてみましたが、
 どうも25日のNortonの更新では、
 当初正常にアップデート出来ない問題が出ていた様ですね。

 > で、「NaotenExec.vbs」実行時にエラーを返してくるようになりました。

 エラーの内容はファイルが見つからない、と言うものです。
 しかしtakaさんの確認では特に、ファイルが消えていると言う事はない。

 とすれば考えられる可能性はNortonがブロックしている可能性です。

 ただこれも憶測の域を出ないので、
 試しに個別実行用のスクリプトファイルを複製してもらって、
 複製したスクリプトファイルの
 起動するアプリケーションのパスを以下に書き換えて、
 実行を試して頂いて宜しいでしょうか?

strAppPath = "%windir%\notepad.exe"

 上記はメモ帳を指定しています。

 これが問題なく実行出来るのであれば
 takaさんが起動したいアプリケーションがNortonに隔離されている等の可能性が少し高まります。

 これが実行できないのであれば、
 NaotenExce.vbsがNortonによって動作を制限されている等の可能性が少し高まります。

 どちらだとしても現時点では断定出来ませんが、
 まず、問題の切り分けのためにお試し頂き、
 結果を教えて下さいませ!

Date2013/05/26 23:07 [Edit]
Nametaka taka's Mail Addresstaka's URL

「Naoten」さん、早速の返信有り難うございます。

「Naoten」さんの助言により、行ったこと。
1.strAppPath = "%windir%\notepad.exe" の追記で再起動
  結果・・・NG
2.アプリケーションをインストール仕直し(※フォルダの見直し※)
  加えて、Nortnのスキャン除外フォルダを設定し直しました。
  結果・・・OK
  ご存じの通り、win64bitには、Program filesとProgram files(x64)があり、
  ここのフォルダのフルパス記述が、vbxの中身と違っていました。

自分の勘違いとは言え、「Naoten」さんの助言を頂くまでフルパスの指定を完全に
間違っていた(勘違い)のはお恥ずかしい事実です。
こんな時だけ、「Naoten」さんの助言を頂く自分の実力のなさにガッカリですが、
どうも有り難うございました。

本当にたすかりました、今後とも宜しくお願い致します。

Date2013/05/28 12:46 [Edit]
NameNaoten(ナオテン) <span class=Naoten(ナオテン)'s Mail Address" /><span class=Naoten(ナオテン)'s URL" />

○takaさん

 結果的に起動しようと思っていた個別プログラムのパスに相違があった、
 と言う事ですかね??

 だとするとメモ帳が起動しなかったのが謎です(;´д⊂)
 まぁ、細かいことはいいか。

 問題が解消されたならそれが何よりですからね!

 > 本当にたすかりました、今後とも宜しくお願い致します。

 結局、takaさんはご自分で事態を打開なされております!

 私は何も助けになっておりませんでした(;´д⊂)
 こんな私で良ければ今後ともよろしくおねがいします!!

Date2013/10/03 20:15 [Edit]
Namenicotinism nicotinism's Mail Addressnicotinism's URL

さ迷い歩いてたどり着きました。。。
プロセスの優先度が下がる件は、こちらの方のブログをご覧くださいませ。
http://jinblog.at.webry.info/201103/article_11.html
簡単に言うと
UACEscape をエクスポートし出来た xml ファイルの
<Priority>7<Priority>
の7を4に変更保存。
再度インポートして完了。
ありがたや \(^o^)/
ちなみに私めのUAC回避.vbs (タスクスケジューラの方)は
'UAC を回避するためのベース
Option Explicit
Dim oWSH ' WshShell オブジェクト
Dim Args

Set Args = WScript.Arguments
Set oWSH = WScript.CreateObject("WScript.Shell")

'Arguments(1)によって分岐
Select Case Args(1)
Case "NoQuote"
oWSH.Run Args(0)
Case "Quote"
oWSH.Run chr(34) & Args(0) & chr(34)
Case Else '準備中
oWSH.Run chr(34) & Args(0) & chr(34)
End Select


ここのアプリのは
'UACを回避するための個々のファイル設定
Option Explicit

Dim objTaskService
Dim objFolder
Dim objTask
Dim sAppPath
Dim Arg

'' ===ここにプログラムのフルパスを設定===
'sAppPath = "C:\Program Files (x86)\TAC\TAC32.EXE"
'sAppPath = "C:\Program Files (x86)\Paragon Software\Backup and Recovery 2013 Free\program\launcher.exe"
'sAppPath = "C:\Windows\explorer.exe /select ,d:\db_2010\ads.mdb"
'sAppPath = "%windir%\system32\notepad.exe E:\TMP\new 1.txt"

sAppPath = "C:\Windows\system32\cmd.exe /k d:"
sAppPath = chr(34) & sAppPath & chr(34)
'↑コマンド、Path中にスペースが含まれると
'Arguementsの区切りと認識されるので、ダブルクォーテーションで括る

Arg =chr(32) & "NoQuote" '初期値
'Arg =chr(32) & "Quote" '↑大体はどっちかで動きそうです

' タスクサービスオブジェクトの取得
Set objTaskService = CreateObject("Schedule.Service")

' タスクサービスとの接続
objTaskService.Connect

' 場所を指定してフォルダオブジェクトの取得
Set objFolder = objTaskService.GetFolder("\")

' タスク名を指定してタスクオブジェクトを取得
Set objTask = objFolder.GetTask("UACEscape")

' タスクを実行
objTask.Run sAppPath & arg


もう少しナントカしたい気もありますが。。たぶん。。。
蛇足ですが、CCleaner もUAC回避のために通常以下のプロセス優先度ですね。
皆様、ありがとうございました。

Date2013/10/04 15:02 [Edit]
NameNaoten(ナオテン) <span class=Naoten(ナオテン)'s Mail Address" /><span class=Naoten(ナオテン)'s URL" />

○nicotinismさん

 > さ迷い歩いてたどり着きました。。。

 お疲れ様です。さぞお疲れの事でしょう。
 ゆっくりしていって下さいまし!

 > プロセスの優先度が下がる件は、こちらの方のブログをご覧くださいませ。
 > http://jinblog.at.webry.info/201103/article_11.html

 ふむふむ。

 > 簡単に言うと
 > UACEscape をエクスポートし出来た xml ファイルの
 > <Priority>7<Priority>
 > の7を4に変更保存。
 > 再度インポートして完了。
 > ありがたや \(^o^)/

 プロセスの優先度が下がってしまうのはその設定で回避可能なんですか!
 今度時間が有るときに試してみます!
 
 情報ありがとうございます!!

 > ちなみに私めのUAC回避.vbs (タスクスケジューラの方)は

 ふむふむ。
 実行前にダブルコーテーションで囲うか囲わないかを指定する方式で
 プログラムのパスや引数によって柔軟に指定出来る作りなんですね。

 非常に参考になります!
 
 > もう少しナントカしたい気もありますが。。たぶん。。。
 > 蛇足ですが、CCleaner もUAC回避のために通常以下のプロセス優先度ですね。
 > 皆様、ありがとうございました。

 nicotinismさんのアイデアもまた、ここの血となり肉となります!!
 情報感謝でございます!!

Date2014/03/15 17:56 [Edit]
Namet.soota t.soota's Mail Addresst.soota's URL

お久しぶりです。t.sootaです。
@wikiの流出、改竄に伴い、HPをwikiwiki様に移設しました。
ですので、wikiwiki様に設置したHPよりこちらへのリンクを貼り直させていただきました。

http://wikiwiki.jp/a2zizm/?Tips%2FEscapeOfUAC

それでは^^

Date2014/03/16 20:51 [Edit]
NameNaoten(ナオテン) <span class=Naoten(ナオテン)'s Mail Address" /><span class=Naoten(ナオテン)'s URL" />

○sootaさん

 > お久しぶりです。t.sootaです。

 お久しぶりです!
 その節は色々とお世話になりました!


 > @wikiの流出、改竄に伴い、HPをwikiwiki様に移設しました。

 この問題はちょっとびっくりしましたよね。
 去年の11月前後から実は流出してたのではないかとかなんとかどっかで読みました。

 > ですので、wikiwiki様に設置したHPよりこちらへのリンクを貼り直させていただきました。
 > http://wikiwiki.jp/a2zizm/?Tips%2FEscapeOfUAC

 わざわざご連絡いただきありがとうございます!
 あ、なんか新Wiki、黒くてかっこ良くなってる!!

 > それでは^^

 それではまたです!!

Page up▲

Post a Commentpac

Private message

trackback

この記事にトラックバックする(FC2ブログユーザー)

Windows7 UAC(ユーザーアカウント制御)対策
メーカーサポートが終了しており、且つWindows7では正常に動かないソフトをどーしてもWindows7で使いたい、という話が先輩からやって来た。 以下のパターンを試してみたが、どうやら常
nEST's SPACE-Blog【2013/03/26 23:01】

Page up▲

Designed by mi104c.
Copyright © 2014 直天堂のカステラ, all rights reserved.
09 | 2014/10 | 11

sun

mon

tue

wed

thu

fri

sat

- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -

Page up▲

  • 最新記事のRSS
  • 最新コメントのRSS
  • 最新トラックバックのRSS