実行可能ファイルを作成することは可能ですかfile.exe
PowerShellスクリプトからのファイルですか?
いいえ。少なくとも、まだではありません。PowerShellの5つのバージョンの後、それはありそうにないようです。
そのままにしておきたいと思いますが、他の人が対処しなければならないと感じる「回避策」タイプの回答をたくさん提供してくれました。
can.ps1スクリプトを別のスクリプトタイプでラップしてダブルクリック可能にし、スクリプトが埋め込まれた実行可能ファイルを生成することもできます(このスレッドに関する他の回答)...しかし、それらの「実行可能ファイル」には、システムに既に存在するPowerShellの正しいバージョンが必要であるため、それを行っても何も得られず、PowerShellの多くの機能(オブジェクト出力のストリーミング、ヘルプのドキュメント、ユーザーのタブ補完による自動パラメーター処理など)を失います。
次に、単純な.cmdバッチファイルラッパーを示します(これを拡張してパラメーターを許可できます)。
REM <#
copy %0 %0.ps1
PowerShell.exe -ExecutionPolicy Unrestricted -NoProfile -Command "&{Set-Alias REM Write-Host; .\%0.ps1}"
del %0.ps1
exit
REM #>
### Your PowerShell script goes below here.
### I've put a couple of lines as an example ...
ls | sort length -desc | select -first 5 | ft
ps | sort ws -desc | select -first 10 | ft
Portable PowerShellを使用すると、適切なバージョンのPowerShellとスクリプトが含まれて機能する自己解凍型のZipをパッケージ化できます。それはnot Wordの通常の意味での実行可能ファイルです-それは、ValveがLinuxユーザーにHalf Lifeをプレイさせるためのソリューションとして、サムドライブにvmwareイメージを出荷することを決定したかのようです。ただし、製品は放棄されたようです。
PrimalScript(またはPowerShell Studio)またはPowerGuiまたはpShellExecを使用すると、スクリプトを暗号化できるため、わずかに保護されますpr索好きな目に対して...しかし、これは基本的に難読化であり、本質的にバッチファイルと違いはなく、いくつかの点で悪化しています。
箱から出して-いいえ。ただし、スクリプトを取得してそのスクリプトの周りにEXEラッパーを作成できるPowerShellスクリプトを作成しました。少し前にこのスクリプトを作成しましたが、 ここにブログを書く の人がチェックアウトすることを決めました。
はい、 PS2EXE を使用して、そのような*.exe
ファイルを作成するオプションがあります。
全体は本当にシンプルで、それでもここにスニペットがあります:
C:\Scripts\PS2EXE\PS2EXE_0.5.0.0.0\ps2exe.ps1
-inputFile C:\Scripts\ExampleEXE\example.ps1
-outputFile C:\Scripts\ExampleEXE\example.exe -sta -noConsole -runtime40 -verbose -x64
唯一の悪い点は、プロジェクトが減価償却されることです。 2015年以降の更新または新しいバージョンはありません。
編集:この予測はピックアップされており、現在新しい人によって維持されています。更新されたコードは、この編集の時点で最終更新日である2018年4月1日でここにあります。 https://gallery.technet.Microsoft.com/scriptcenter/PS2EXE-GUI-Convert-e7cb69d5
バージョン情報を追加および編集するには、 [〜#〜] verpatch [〜#〜] のようなものを使用します。
PythonEXE と呼ばれるgit-repoに叫ぶ。
Pythonプロジェクトから実行可能ファイルを作成する方法を示し、YouTubeのステップバイステップガイドも提供します。
PowerGUIのスクリプトエディター を使用します(無料で動作します)。 PowerGUIスクリプトエディターでスクリプトを開き、[ツール]> [スクリプトのコンパイル]を選択します。exeに必要なオプションを選択します(ソースコードのパスワード保護、.exeの実行後にコンソールを自動的に閉じるなど)。
「PowerShellスクリプトで実行可能ファイルを生成できますか?」それが、この投稿を見つけたときにやろうとしていたことです。これは、Add-Typeコマンドを使用して可能です。
Add-Type -TypeDefinition @"
using System;
class Program {
public static void Main(string[] args) {
Console.WriteLine("Hello World!");
}
}
"@ -CompilerParameters @{
"GenerateExecutable" = $true
"OutputAssembly" = "test2.exe"
}
PrimalScript from Sapien は、PowerShellスクリプトからexeを生成します。実行可能ファイルが実行されるマシンにはPowerShellがインストールされている必要があります。
PowerShellスクリプトをexeとして配布するのに最適な解決策は、 [〜#〜] nsis [〜#〜] 実行可能ファイルにラップすることでした。
このような.nsiスクリプトを作成します。
Name "Maintenance task"
OutFile "maintenance.exe"
ShowInstDetails show
Section "Main"
;Executes the "script-to-run.ps1" PowerShell script
InitPluginsDir
SetOutPath "$pluginsdir\MyOrg" ;It is better to put stuff in $pluginsdir, $temp is shared
;extract the .ps1 and run it, collecting output into details.
File script-to-run.ps1
nsExec::ExecToLog 'powershell -inputformat none -ExecutionPolicy RemoteSigned -File "$pluginsdir\MyOrg\script-to-run.ps1" '
SetOutPath $exedir
SectionEnd
NSISツールチェーンを使用してスクリプトをexeにコンパイルするだけで、実行ポリシーが何であれ、PowerShellを搭載したOSで実行できます。
これはこの質問に触発されました NSISでPowerShellを呼び出す方法 。
数年後もまだベータ版であるPortable PowerShellと呼ばれるプロジェクトがあります...あなたのニーズに見合う価値があるかもしれません。