2017/01/15

64ビットWindows上で32ビットのバッチファイルを実行する方法


以下の記事の内容により、PowerShell の実行ポリシーが Restricted であってもバッチファイルを経由することにより外部スクリプトを実行できることが分かりました。

しかし、バッチファイルで PowerShell のスクリプトを実行すれば当然64ビットで実行されてしまうため、以下の記事にある問題が発生してしまいます。

この記事では、バッチファイルを32ビットで実行する方法をご紹介します。

 

といっても対応は簡単でバッチファイルの先頭に以下のソースを追記するだけです。

 
@echo off
if "%PROCESSOR_ARCHITECTURE%" NEQ "x86" (
	C:\Windows\SysWOW64\cmd.exe /C %0
	exit
)

さらに実行ポリシーの問題を回避するようにすると、test.ps1 を実行するには以下のように記述することになります。

@echo off
if "%PROCESSOR_ARCHITECTURE%" NEQ "x86" (
	C:\Windows\SysWOW64\cmd.exe /C %0
	exit
)

powershell -NoProfile -ExecutionPolicy Unrestricted .\test.ps1

これで32ビットでバッチファイルを実行でき問題も発生しませんでした。

PowerShell で Access と連携しようとすると立ちふさがる問題だと思いますので参考にしてみてください。

 

■参考サイト


スポンサーリンク


このエントリーをはてなブックマークに追加




Twitter ではブログにはない、いろんな情報を発信しています。


コメント

コメントを書く



プロフィール

  • 名前:fnya
    経歴:
    SE としての経験は15年以上。様々な言語と環境で業務系システム開発を行い、セキュリティ対策などもしていました。現在は趣味SE。

    Twitter では、ブログでは取り上げない情報も公開しています。


    ブログについて

    このブログは、IT、スマートフォン、タブレット、システム開発などに関するさまざまな話題を取り上げたり、雑感などをつづっています。

    >>ブログ詳細
    >>自作ツール
    >>運営サイト
    >>Windows 10 まとめ

    Twitter のフォローはこちらから Facebook ページはこちら Google+ページはこちら RSSフィードのご登録はこちらから