Windowsの自動化に役立つスクリプト言語は何ですか?
Windowsの自動化に役立つスクリプト言語は何ですか?
回答:
Windows 7およびServer 2008の時点では、Windowsに同梱されているPowerShellを検討することは合理的です。また、LyncやExchangeなどのサーバーソフトウェアを管理することも基本的です。利用可能な機能のリストは増え続けています。詳細については、スクリプトセンターを参照してください。
Windows Script Host(WSH)は、技術的にはActiveXスクリプトエンジンのスクリプトホストです。VBScriptとJScript(MicrosoftのJavaScriptの実装)は、デフォルトでインストールされる2つのエンジンです。Perl、PHP、Rubyなど、他の多くの製品がオープンソースとして利用可能です。
VB6およびVB.NETと同様の構文を使用すると、VBScriptsは.NETクラスに簡単にアクセスできません(Powershellは.NETで記述されているため、すべての.NET関数にアクセスできます)。VBScriptは、主にWMIサービスとそれが公開するオブジェクトを利用します。
例:これにより、復元ポイントが作成されます。
Set wmi, whatName, errResults
wmi = GetObject("winmgmts:\\.\root\default:Systemrestore")
whatName = InputBox("Enter a name for the Restore Point",WScript.ScriptName)
errResults = wmi.CreateRestorePoint (whatName, 12, 100)
If errResults <> 0 then
Wscript.Echo "Error " & errResults & " : Unable to create Restore Point"
End If
ECMAScriptを使用して同じスクリプトを作成することもできます。
var wmi = WScript.GetObject("winmgmts:\\.\root\default:Systemrestore");
var whatName = WSHInputBox("Enter a name for the Restore Point",Script.ScriptName);
var errResults = wmi.CreateRestorePoint(whatName, 12, 100);
if(errResults != 0) {
WScript.Echo("Error "+ err + " : Unable to create Restore Point");
}
もちろん、古き良きバッチファイルがあります。彼らはイントロを必要としません。
私はまだWindows 7でもDOSバッチファイルを作成します。ほとんどのタスクでは、これはまだ非常にうまく機能します。 10年以上前に利用できなかったオプションと機能)。
私にとって、DOSバッチファイルは依然としてWindowsの主要なスクリプト言語ですが(確かに伝統的です)、誰もが異なるニーズと好みを持っています。DOSバッチファイルにはできないことが多くあり(スクリプト言語にも制限があります)、これに遭遇したまれな機会に、他のオプションが何であるかを調べます(多くの場合、Perlである場合があります。小さなプログラムまたはアプリケーション全体を記述することです)。
実行する必要があるものを理解することは、使用するツールを決定する上で非常に重要なステップです。ツールに精通していることも、オプションを制限する可能性がある重要な側面です。学習するスクリプト(またはプログラミング)言語を決定しようとしている場合は、これが役立つことを願っています。
cmd
本当に怪物であり、私が今までに使用する不幸を経験した最悪のシェルスクリプト言語です。
それはあなたが尋ねる人に依存します。バッチを決して残さない人もいれば、vbscriptを愛する人、PowerShellを愛する人、AutoItなどがあります。それから、PythonやPerlのようなプラットフォームに依存しないものもあります。
Windowsの公式スクリプト「言語」はWindows Script Host( Win95以降)であると思います。
技術的には、WSHはそれ自体が言語ではなく、COMインターフェイスを公開する環境(GUIではない)であり、(ほとんど)任意のスクリプト言語を使用して、OSのこと、ネイティブな方法が組み込まれていないことも可能にします言語(たとえば、RubyにはWindowsにログインするための組み込みの方法がなく、TCL / TKには[実行]ダイアログを表示するための組み込みの方法がありません)。
1つのファイルに複数の言語を含むことができるWSFファイルを見たことがあるかもしれませんが、通常、WSHスクリプトは1つの言語で記述され、その言語のスクリプトバージョンに対応する拡張子で配布されます(VisualBasicスクリプトのVBS、PythonScriptのPYSなど) )
AutoItと言えば、Windows上で非常に高速で簡単に開発でき、非常に緊密に結合されています。これは、通常、他の言語でかなり多くのコードを必要とするタスクを、autoitで文字通り1行で実行できることを意味します。exeへの直接コンパイルなどの機能も非常に便利です。
この質問で指摘されている他の言語(VbScript、PowerShell、Batch)は非常に人気があり、サポートされています。既にスクリプト言語を知っており、慣れている場合は、どうにかしてそれでいいです。
新しい言語の選択に投資しようとしている場合、あなたがしようとしている仕事に応じて、2つの言語をお勧めします:
JavaScript(WSH経由) -さまざまなオートメーションオブジェクトをインスタンス化し、それらのオブジェクトモデルを呼び出して使用する場合は、JavaScriptを使用します。ExchangeサーバーからWMI、Officeドキュメントまで、ほぼすべてのオートメーションオブジェクトを作成できます。Visual Studioでのデバッグサポートがあります(/ x引数を使用)。また、JavaScriptへの投資はHTMLで役立つことがわかります。
Perl-他のプログラムの起動、出力の操作、正規表現の実行が可能な場合はPerlを使用します。この言語は現在衰退しているように見えますが、依然として非常に人気があり、大きなコミュニティ言語で非常によくサポートされています。また、エンタープライズのJIRAやAmazonのEC2など、他のサービス(必ずしもWindowsではない)と通信するためにこの言語を考慮する必要があります。デバッグは、EPICを使用したEclipseでサポートされています。これは、優れたIDE環境でもあります(構文の色付けなど)。CPANにはすべてのモジュールがあります。Perlの知識は、Windows以外のマシンで自動化を行う必要がある場合に役立ちます。
初期には、VBScriptに続いてBatchがありました。純粋なWindows 7とServer 2008 R2を備えた企業環境では、Powershellが新しい注目を集めています。
いくつかのPerlスクリプトを作成する場合は、Perlの2番目の推奨事項です。私が一緒に働いている人は、CLR Script(少し古い)を使用し、推奨しています。また、WebインタラクションのスクリプトにはiMacros