UWSCとはWindowsで自動処理をおこなってくれる非常に優れたフリーソフトでした。
なぜ過去形などかというとUWSCの作者様がお亡くなりになられたとのことで今後のメンテなどは行われないためです。(作者様のご冥福をお祈りいたします)
ただそうはいっても今でもちゃんと動いているのでしばらくは使っていこうと考えて、新しいPCに設定しようとしたところ動きません。。
環境、条件など
・Windows10 Pro UWSC5.2.2(フリー版)
UWSCを起動するバッチファイルをタスクスケジューラで起動して、自動処理を実施する流れです。
自動処理のため起動時はUACの通知は無効化してます。(セキュリティの関係上非推奨です)
Windowsのユーザは管理者権限のユーザでログインしています。
下記のtest.uwsのEXEC関数で応答待ちになっているようです。
login_id = EXEC("C:\Program Files (x86)\xxxxxx\xxxxx\xxxxx.exe")
- Terapadなどの単純なプログラムだと正常に起動します
- 起動したいプログラムは管理者権限でないと動きません
- コマンドプロンプトから上記に指定しているパス”C:\Program Files(x86)\xxxxxx\xxxxx\xxxxx.exe”を入力して実行すると起動します
- タスクスケジューラで起動するため、問題が発生しずらいようにプログラムはフルパスで記載しています
解決策
まず結論です。★追記を必ず読んでください
UWSC.exeを 「管理者としてこのプログラムを実行」するように設定する事で解決しました。
設定方法は、
UWSC.exeのプロパティから「互換性」タブ→「すべてのユーザの設定を変更」ボタンを押してその先の画面「すべてのユーザの互換性」の「管理者としてこのプログラムを実行する」のチェックをいれます。
★「互換性」→「 管理者としてこのプログラムを実行する 」だと動きませんでした。
残った謎
windows10は管理者権限のユーザでもシステムに影響がある操作以外は標準アカウントの権限で動作させています。管理者として作業したいから管理者権限のユーザになっているのに。。個人的には気持ちの悪い仕様ですが、セキュリティ的には正しいんでしょうね。
管理者権限の問題だとあたりをつけていろいろ試した結果解決したのですが、正直この解決方法はいまいちすっきりしていません。
当初は管理者権限でバッチファイルを起動すれば、UWSC.exe→管理者権限、EXECで起動するプログラムも子プロセスなので→管理者権限が引き継がれて動作すると思ったのですが動かない。。
元々動かしていたPCの設定では上記の権限設定はしなくても動いています。。違いといえばUWSC.exeの格納ディレクトリをCドライブの直下のフォルダに作成したぐらいなのですがよくわかりません。ついでにプロパティの設定もすべてのユーザの設定で「管理者としてこのプログラムを実行する」にしなければいけないのか。。
追記
上記の指定の後、納得がいかないのでいろいろ設定を変更してテストしていたのですが、突然バッチファイルを管理者権限で動かせば正常に動くようになりました。
※1解決策の指定は全て解除しています
※2タスクから起動する場合は最上位の特権で実行します
試した事といえばUACの通知がくるように設定して、対象プログラムを起動して、通知がくるのを確認してもう一度戻したぐらいなのですが、、うーん謎です。
すごいレアなエラーだったのかなぁ。
コメント