Windows10でブロックされたVBSスクリプトの実行
実行の問題のトラブルシューティングを試みるGNUOctaveに代わってこの質問を投稿します。最近、少数のWindowsユーザーがソフトウェアをインストールし、プログラムを実行できなくなりました。多くの場合、エラー、メッセージ、または有用なフィードバックは表示されず、起動アイコンをダブルクリックしても何も起こりません。
最近のケースでは、ユーザーと協力して、VBSスクリプトを実行できないシステムに問題を絞り込むことができました。Octaveはoctave.vbs
ファイル(wscriptで呼び出されます)を使用してパスと環境変数を設定し、プログラムを起動します。
現在の診断の試み:
- ユーザーは、この例のようにデスクトップに簡単なテストスクリプトを作成して、システムダイアログをポップアップするだけです。彼はスクリプトを実行できず、ポップアップやエラーメッセージも表示されません。
- 彼がファイルを
C:\temp
Octaveと同じフォルダなどの別の場所に移動した場合、ファイルは実行されませんでした。 wscript
実行ダイアログから実行してwscriptの存在を確認すると、[Windows ScriptHost設定]ダイアログが表示されます。- スクリプトファイルを右クリックして[プログラムから開く]をオンにすると、デフォルトのファイルの関連付けが「Microsoft Windowsベースのスクリプトホスト」との関連付けになっていることがわかります(クリックするとスクリプトが実行されません)。
- Shiftキーを押しながら右クリックして「管理者として実行」しても違いはありません。
- ウイルス対策のリアルタイム保護を一時的に無効にしても、違いはありません。
- レジストリエントリをチェックして、この記事のようにEnabled = 0キーがないことを確認しました(ありません)。
どのWindowsまたは他の設定がvbsスクリプトの実行を妨げるか、およびこの問題を修正する方法について、誰かがガイダンスを提供できますか?または、問題を特定するためにさらに確認する必要があることは何ですか?Windowsにいくつかの新しいデフォルトのセキュリティ設定がありますか、またはこれを説明する更新が付属していますか?
ユーザーは、Windows 10Homeと組み込みのWindowsDefenderおよび最新の更新プログラムを実行しています。マネージドシステムではありません。彼が故意に/故意に特別なセキュリティ設定を変更したことはありません。以下のバージョン情報:
- Windowsの仕様:
- エディション:Windows 10 Home
- バージョン:2004
- インストール先:2020-01-10
- OSビルド:19041.421
- エクスペリエンス:Windows Feature Experience Pack 120.2212.31.0
参考までに、この問題の元のディスカッションスレッドは、Octaveディスカッションフォーラムにありますが、上記の関連情報をすべて取得したと思います。
編集:メンテナーリストのディスカッションからメモを追加します-何らかの理由でvbsファイルを実行できないユーザーの場合、octave.bat
ファイルはシステムのmingw64/bin
フォルダーにあります。ユーザーは、ファイルの代わりにそのファイルを指すようにデスクトップショートカットを変更octave.vbs
でき、オクターブは問題なく実行されますが、追加のコマンドプロンプトウィンドウが表示されることもあります。
回答
ProcMonログに基づいて、wscript.exeが4つのアンチウイルスソフトウェアモジュール(3つのAvastおよび1つのMcAfee IOfficeAntiVirusモジュール)をロードしていることが判明しました。

McAfee IOfficeAntiVirusモジュールは、wscript.exe
スクリプトの実行をブロックしている可能性が最も高い原因です。
マカフィーを完全にアンインストールすると、問題が解決するはずです。
診断
それ"%SystemRoot%\System32\WScript.exe"
が存在することを確認してください。ファイルエクスプローラーで確認できます(WIN+を押しますE)。%SystemRoot%\System32
ファイルエクスプローラーのテキストボックスにパスを入力してそのディレクトリを表示し、WScript.exe
そこで探します。
コマンドウィンドウを開き(WIN+Rを押してからEnterキーを押しますcmd.exe
)、次のように入力します。
ftype | find /I "VBS"
結果が出るはずです:
VBSFile="%SystemRoot%\System32\WScript.exe" "%1" %*
次に、確認してください
assoc .vbs
表示されるはずです:
.vbs=VBSFile
修正
上記のいずれかが正しく設定されていない場合、VBSファイルは実行されません。ファイルタイプ(FTYPE)を修正するには、コマンドを実行するだけです。
ftype VBSFile="%SystemRoot%\System32\WScript.exe" "%1" %*
関連付けを修正するには、コマンドを実行します
assoc .vbs=VBSFile
それがすべて正しく設定されていても問題が解決しない場合は、マルウェア対策ソフトウェアが実行をブロックしている可能性があります。その場合は、w32shの回答を調べてください。
これが役立つかどうかはわかりませんが、デバイスを次の仕様にアップグレードした後に観察された同様の症状を解決した経験を共有したいと思いました
- エディションWindows10 Pro
- バージョン2004
- OSビルド19041.450
- Windows Feature Experience Pack120.2212.31.0を体験してください
デバイスには、起動時に実行されるはずのVBScriptが1つしかありませんが、アップグレードの直後に実行を停止しました。以前のアップグレードがインストールされたときにスクリプトが存在しなかったことにも言及する価値があります。したがって、この段階では、問題がバージョン2004に固有であるのか、これがW10アップグレード全般に関連する問題であるのかはわかりません。
観察された問題は、Notepad ++が起動時に実行される代わりに、スクリプトの内容を表示するページを開いていたことです。また、アップグレード後に、スクリプトを保持しているファイルに関連付けられているアイコンがNotepad ++アイコンに変更されていることに気付きました。
そこで、W10 UIでファイルの関連付けを確認しました([スタート]> [設定]> [アプリ]> [デフォルトのアプリ]> [ファイルの種類でデフォルトのアプリを選択])。ここで、.vbs拡張子がすでに「MicrosoftWindowsベースのスクリプト」に割り当てられていることがわかりました。ホスト"。次に、手動で「Microsoft Windows Based Script Host」を再度選択してデフォルトのアプリを変更すると、突然、ファイルに.vbsアイテムのMicrosoft生成アイコンが表示され始めました。
そこから、起動時にスクリプトを手動および自動で実行することもできました。
ちなみに、Excel VBAモジュールを使用して直接呼び出されたときにAVが一部のPowerShellコマンド(すべてではない)をブロックすることもありますが、これが前述のスクリプトの実行に影響を与えることはありません。
vbsファイルの実行をブロックする別のアンチウイルスがないかどうかを確認する必要があります。