Skip to main content
評価してください: 

スクリプトとは何ですか

*

トピック

手順 1スクリプトに関する一般的な質問
スクリプトとはいったい何かサンプル スクリプト
それでも、スクリプトの内容はコードのように見えるSystem Administration Scripting Guide

*

スクリプトに関する一般的な質問

スクリプトとは何ですか。

スクリプトとは、メモ帳などのテキスト エディタで作成し、特定のファイル拡張子を付けて保存したプレーン テキスト ファイルです。たとえば、VBScript スクリプト言語を使用している場合は .VBS ファイルとして保存します。

なぜ、スクリプトを習得する必要があるのですか。

あるタスクを実行するために、同じコマンド セットを何度も入力した経験はありませんか。また、たとえば、コンピュータやユーザー アカウントが複数ある場合に、同じウィザードで同じボタンを同じ順序でクリックしてある日常業務を実行し、この同じプロセスを繰り返した経験はありませんか。

スクリプトを使用すると、このような繰り返し作業の一部をなくすことができます。1 つのスクリプトは、あるタスクを完了するために必要な手順を記述した 1 つのファイルです。スクリプトを作成して実行すると、すべての手順が自動で実行されるため、時間と手間が大幅に節約されます。スクリプトは、一度作成するだけで、いつでも好きなときに再利用して目的のタスクを実行できます。

スクリプトをスケジュールして、特定の日の特定の時刻にタスクを行うことも可能です。だれもいない夜中に実行することもできます。また、多数のコンピュータ上で同じタスクを実行するようにスクリプトを作成することもできます。ドメイン コントローラごとにイベント ログからイベントを取得する必要があるのではないかという心配は無用です。夜中に 1 つのスクリプトを実行するようにスケジュールしておくだけで、翌朝には必要なデータが揃っています。

スクリプト作成について、まったくの初心者です。スクリプトの書き方について教えてください。

スクリプトの入門には、『Windows 2000 Scripting Guide』をお勧めします。このガイドのすべての内容は、 http://www.microsoft.com/resources/documentation/windows/2000/server/scriptguide/en-us/sagsas_overview.mspx (英語) で閲覧できます。このガイドの購入方法については、 http://www.microsoft.com/mspress/books/6417.asp を参照してください。

スクリプトの学習用としてお勧めの書籍はありますか。

ありません。これは、スクリプトに関する他のすべての書籍が不十分であり、『System Administration Scripting Guide』だけが読むに値するという意味ではありません。私たちが、スクリプトに関する市販の書籍をすべて読んで確認したわけではないためです。

スクリプトを記述するためにコンピュータにインストールする必要のあるソフトウェアは何ですか。

メモ帳さえあれば、いつでもスクリプトの記述を始めることができます。

スクリプトを実行するためにコンピュータにインストールする必要のあるソフトウェアは何ですか。

スクリプトによって異なります。次の表に、Windows のバージョンごとに推奨されるソフトウェアを示します。ただし、これらのソフトウェアをインストールしても、すべてのスクリプトがコンピュータ上で動作するとは限らないことに注意してください。スクリプト テクノロジ (特に WMI) が変更されたため、Windows XP または Windows Server 2003 で動作する多くのスクリプトは、若干の変更を加えないと Windows 2000 で動作しません。まったく動作しないスクリプトもあります。同様に、Windows 2000 で動作する多くのスクリプトは、Windows NT 4.0 または Windows 98 では動作しません。

プラットフォームWSHVBScriptWMIADSI
Windows 955.65.61085.0005 (1.5)5,0,00,0 (DSClient)
Windows 985.65.61085.0005 (1.5)5,0,00,0 (DSClient)
Windows NT 4.05.65.61085.0005 (1.5)5,0,00,0 (DSClient)
Windows 20005.65.61085.0005 (1.5)5,0,00,0
Windows XP5.65.62600.00005,0,00,0
Windows Server 20035.65.63790.00005,0,00,0

適切なソフトウェアがコンピュータにインストールされているかどうかを判断するにはどうすればよいですか。

以下のスクリプトをコピーしてメモ帳に貼り付け、.VBS 拡張子を付けて保存します (Versions.vbs など)。スクリプトを実行すると、コンピュータにインストールされている WSH (Windows Script Host)、VBScript、WMI、ADSI のバージョンが報告されます。バージョン番号が空白になっている場合は、そのテクノロジがインストールされていません。

On Error Resume Next
WScript.Echo "WSH Version: " & WScript.Version
Wscript.Echo "VBScript Version: " & ScriptEngineMajorVersion _
    & "." & ScriptEngineMinorVersion
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer _
        & "\root\cimv2")
Set colWMISettings = objWMIService.ExecQuery _
    ("Select * from Win32_WMISetting")
For Each objWMISetting in colWMISettings
    Wscript.Echo "WMI Version: " & objWMISetting.BuildVersion
Next
Set objShell = CreateObject("WScript.Shell")
strAdsiVersion = objShell.RegRead
("HKLM\SOFTWARE\Microsoft\
Active Setup\Installed Components\
{E92B03AB-B707-11d2-9CBD-0000F87A369E}\Version")
If strAdsiVersion = vbEmpty Then
    strAdsiVersion = objShell.RegRead
    ("HKLM\SOFTWARE\Microsoft\ADs\Providers\LDAP\")
    If strAdsiVersion = vbEmpty Then
        strAdsiVersion = "ADSI is not installed."
    Else
        strAdsiVersion = "2.0"
    End If
End If
WScript.Echo "ADSI Version: " & strAdsiVersion

適切なバージョンがインストールされていない場合はどうすればよいですか。

以下から最新バージョンの Microsoft スクリプト テクノロジをダウンロードします。

ADSI : http://www.microsoft.com/japan/windows2000/server/evaluation/news/bulletins/adextension.asp

WSH/VBScript : http://msdn.microsoft.com/en-us/library/ms974613.aspx

Active Directory スクリプトは、Windows NT 4.0 または Windows 98 のコンピュータから実行できますか。

はい、実行できます。ただし、先に各プラットフォーム用の Active Directory クライアント エクステンションをインストールする必要があります。Windows NT 4.0 には、 Service Pack 6a もインストールする必要があります。詳細については、 Active Directory クライアント エクステンションに関するページを参照してください。

コンピュータでスクリプトが動作するかどうかを前もって確認する方法はありますか。

現在はありませんが、そのための作業は進行中です。近い将来に、スクリプト センターが更新され、特定のスクリプトが動作するプラットフォームを判断できるしくみが提供される予定です。

スクリプトを記述しましたが、動作しません。なぜでしょうか。

ご使用の Windows のバージョンと実際にスクリプト コードを確認しないと回答できません。

ネットワークの管理にスクリプトが必要です。私の代わりにスクリプトを書いてもらえませんか。

無理です。先に言っておきますが、芝刈りや学期末レポートの代理もお断りします。良くも悪くも、私たちの担当は、スクリプト記述ではなく、教育業務です。

VBScript は徐々に使用されなくなるため、これまでのスクリプトは Visual Basic .NET などの .NET 言語に移行する必要があると聞きました。しかし、スクリプト センターも Scripting Guys の書籍もすべてのスクリプトが、VBScript で記述されています。.NET 言語のいずれかを学習する必要はあるでしょうか。

状況によります。システム管理タスクを自動化する目的でスクリプトを作成する IT プロフェッショナルの場合は、.NET 言語を選択する必要はありません。引き続き VBScript を使用してください。.NET Framework に移行しつつあるアプリケーション、コンポーネント、または Web の開発者で、これまでに開発言語の 1 つとして VBScript や JScript を使用していたユーザーの場合は、Visual Basic .NET、JScript .NET、C# などのいずれかの .NET 言語を学習する必要があります。

スクリプト センターと私たちの著書では、システム管理タスクの自動化に重点を置いているため、次の理由から VBScript を採用しています。

  1. 一般的に、VBScript は、他の言語より習得が容易です。
  2. VBScript は、広く普及している Visual Basic のユーザーがすぐに理解できる言語です。
  3. VBScript は、JScript より COM との親和性が高いため、ADSI (Active Directory サービス インターフェイス) や WMI (Windows Management Instrumentation) などの無償のスクリプト テクノロジを使用する際に重要な役割を果たします。

また、何かで目にしたり聞いたりしたこととは異なるかもしれませんが、VBScript が近い将来に使用されなくなることはありません。実際、Windows Server 2003 には、VBScript で記述された 12 を超える新しいコマンド ライン ユーティリティが実装されています。さらに、VBScript や JScript と組み合わされた WSH (Windows Script Host) Version 5.6 は、Windows Server 2003 において Microsoft の主要なシステム管理スクリプト環境であることに変わりはありません。

つまり、あなたが入手した情報は、主に開発のプロ向けの話であり、IT プロフェッショナルやシステム管理者についての話ではなかったと考えられます。

サンプル スクリプト

サンプル スクリプトについて教えてください。実行するにはどうすればよいですか。

スクリプトを実行する最も簡単な方法について説明します。

  1. スクリプト センターの Web サイトにあるスクリプト コードをコピーします。
  2. コピーしたコードをメモ帳に貼り付けます。
  3. メモ帳で、.VBS 拡張子を付けてファイルを保存します (MyScript.vbs など)。ファイル名には、スペースを入れないようにすることを強くお勧めします。また、これらのスクリプトは、共通のフォルダ (C:\Scripts など) に保存することをお勧めします。
  4. コマンド ウィンドウを開きます。必要に応じて、cd コマンドを使用してスクリプトの保存フォルダに移動します。
  5. コマンド ウィンドウで、「cscript」のコマンドを入力し、続けてスクリプト名を入力します。たとえば、次のように入力します。

cscript myscript.vbs

すべてのサンプル スクリプトが VBScript で記述されているのはなぜですか。

すべてのサンプル スクリプトは、システム管理者向けのスクリプト学習用の新しい書籍である『System Administration Scripting Guide』から抜粋しています。学習目的のため、この書籍全体で使用するスクリプト言語を 1 つだけ選択する必要がありました。VBScript を選択した理由の 1 つは、それが初心者にとって最も学習しやすい言語であることです。また、Windows プラットフォームでは Rexx や Python などよりずっと一般的な言語であることも、理由の 1 つとして挙げられます。

さらに言えば、実際のところ、VBScript グループが自分たちの製品を使うようにと、私たちに大金を支払ったのです。Python グループの皆さん、聞いてらっしゃいますか。

.NET、JScript、Perl、Python、Rexx、などの別のスクリプト言語を使用して、サンプル スクリプトと同じ動作をするスクリプトを作成する予定はありませんか。

残念ながら、ありません。VBScript バージョンを完成させるのもたいへんだったのです。ただし、私たちは、スクリプトの一部を別の言語に移植することに関心を持つユーザーと連絡を取り合っています。別の言語への移植が行われたときは、それらのスクリプトへのリンクを掲載する予定です。

ローカル コンピュータでどのサービスが稼働しているかを確認できる便利なスクリプトがありますが、"リモート" コンピュータでどのサービスが稼働しているかを確認できるようにスクリプトを変更することはできますか。

もちろんできます。スクリプト センターの WMI スクリプトの大部分は、strComputer という変数を作成し、その値を "." に設定することから始まっています。つまり、各スクリプトには、一般的に次の行が含まれます。

strComputer = "."

これにより、スクリプトは、ローカル コンピュータを対象に実行されます。スクリプトの構成方法と、WMI が "." という名前のコンピュータをローカル コンピュータと認識することによって、このような動作になります。リモート コンピュータを対象にスクリプトを実行する場合は、"." を二重引用符で囲んだリモート コンピュータ名に置き換えます。たとえば、次のコード行を使用すると、PrintServer1 というリモート コンピュータを対象にスクリプトが実行されます。

strComputer = "PrintServer1"

このように変更するだけで、リモート コンピュータを対象に WMI スクリプトを実行できます。ただし、スクリプトを正常に動作させるには、リモート コンピュータに対する管理者権限が必要です。また、ローカル コンピュータとリモート コンピュータの両方に WMI がインストールされている必要があります。

他の人が興味を持ちそうなすばらしいスクリプトがいくつかあります。これらのスクリプトをスクリプト センターに置いてもらうことはできますか。

場合によっては可能です。現在、ユーザーが自分で気に入っているスクリプトをアップロードできるシステムを開発中です。ただし、このシステムが実際に利用可能になるかどうかについては、はっきりしていません。法的責任やテストの詳細についてはもちろんのこと、技術的な詳細についても明確にする必要があるからです。当面の間、興味深いと思うスクリプトは、.ZIP ファイルに圧縮して scripter@microsoft.com (英語のみ) まで送信してください。時間の許す限り検討させていただきます。念のために付け加えると、VBS ファイルを添付してスクリプトを送信しても、うまくいきません。Microsoft の電子メール サーバーが、ウイルスの可能性のあるファイルを自動的に削除するためです。

OU を作成する、クライアント コンピュータの IP アドレスを構成する、グループにユーザーを追加するなどの作業を実行するスクリプトは、どこにありますか。

これらのスクリプトの多くは開発途中であり、まだ作成されていません。スクリプト センターは、『System Administration Scripting Guide』のスクリプトを当初掲載していました。このガイドは、現在も執筆中で、書いている最中の章もあるし、手付かずの章もたくさんあります。これらの章と各章に含まれるスクリプトの記述が進むに従い、スクリプト センターに新しいスクリプトを追加する予定です。私たちも、スクリプト センターが多少不十分であることは承知していますが、400 近いスクリプトを今すぐに利用できる方が、6 か月後に 600 のスクリプトをすべて利用できるよりも有益であると判断しました。

Exchange、SQL Server、IIS などを管理するためのすべてのスクリプトは、どこにありますか。

私たちの書籍は、基本の Windows オペレーティング システムの管理用として編集しているため、Exchange、IIS などのテクノロジは扱っていません。これは残念なニュースですが、良いニュースもあります。私たちは、一部の別のテクノロジ グループと連絡を取り合っています。これらのグループは、自分たちのサンプル スクリプトをスクリプト センターに掲載することに興味を示しています。これにより、スクリプト センターは、さまざまな種類のシステム管理スクリプトが 1 か所に揃う場所になります。

ログオン スクリプトに関する質問を送りましたが、何の返事もありません。

あなたが嫌われているからです。

失礼しました。冗談です。私たちは、皆さんを平等に扱っています。私たちのあまり興味のないネブラスカ州オマハ在住の方であってもです。メールにはできる限り返信するようにしていますが、次のようないくつかの理由から返事を出すことができなかった可能性があります。

  • 毎日膨大な量のメールが届くので、その一部はどうしても見過ごしてしまいます。
  • メールにはできる限り返信するようにしていますが、私たちはテクニカル サポート担当ではなく、これが本業ではありません。私たちの仕事は、システム管理スクリプトのドキュメントを執筆することであり、それ以外の仕事をしていると、上司が不安になるのです (もっとも、私たちが実際に執筆している内容を見てしまったら、それ以上に不安を覚えるでしょうが)。
  • ときどきですが、質問の答えがわからないことがあります。

『System Administration Scripting Guide』に関するご質問やご意見は、 scripter@microsoft.com (英語のみ) まで電子メールで送信していただければ、通常は返信が届きます。スクリプトに関する一般的な質問 (ログオン スクリプトの記述方法やスクリプトを使用したサービスの停止方法など) がある場合は、新しいニュースグループの microsoft.public.windows.scripting_admin に投稿すると、確実に回答を得られます。

サンプル スクリプトはよくできているため、すぐに使い始めてすべてのコンピュータを管理しようと思います。何か問題はあるでしょうか。

大ありです。本稼働環境でスクリプトを 1 つ実行するごとに、必ず私たちに 1 ドル送金してください。

というのは、冗談です。スクリプトは無償で使用できます。実際のシステム管理タスクにスクリプトを使用しても問題ありません。ただし、これらのスクリプトは、すべて学習目的で作成されているため、パフォーマンスよりも内容のわかりやすさに重点を置いて設計されています。したがって、本稼働環境で実際に使用するスクリプトには備わっていることが望ましいエラー処理などの特定の要素が含まれていません。また、スクリプトが正常に動作するかどうかは保証されておらず、どのような公式サポートも受けられないことに注意してください。スクリプトが動作しなくても、私たちは、あなたのオフィスまで出張して修正することはありません。

ただし、タヒチなどのリゾート地にあなたのオフィスがある場合は、もちろんこの限りではありません。

System Administration Scripting Guide

『System Administration Scripting Guide』とは、どのようなものですか。

『System Administration Scripting Guide』は、システム管理者向けに提供され、スクリプトを使用して Windows コンピュータとネットワークを管理する方法を学習する書籍です。

今も Windows 2000 を使用しています。Windows 2000 バージョンのスクリプト ガイドはありますか。

もちろんあります。私たちが Windows 2000 ユーザーのことを忘れていたと思いますか。まあ、忘れていたのは事実なのですが、Windows 2000 専用としてスクリプト ガイドの縮小版を発行する必要があることにタイミングよく気付きました。このガイドは、書店で入手できます。『Windows 2000 Scripting Guide』の詳細については、 http://www.microsoft.com/mspress/books/6417.asp を参照してください。また、そのすべての内容は、TechNet スクリプト センター ( http://www.microsoft.com/resources/documentation/windows/2000/server/scriptguide/en-us/sagsas_overview.mspx) (英語) でオンラインで閲覧できます。

Windows 2000 バージョンのスクリプト ガイドが縮小された理由は、Windows 2000 ユーザーに対する個人的な思いが反映されたわけではなく、単に Windows Server 2003 や Windows XP と比べて Windows 2000 のスクリプトで処理できるシステム管理タスクの数が少ないからにすぎません。

『Windows Server 2003 Scripting Guide』はいつごろ入手できますか。

実のところ、私たちにもわかりません。ただ、今年の終わりまでには提供したいと考えています。

Windows 98 または Windows NT 4.0 のバージョンはありますか。

みなさんを満足させることは難しいですね。残念ながら、Windows 98 と Windows NT 4.0 のバージョンの執筆予定はありません。申し訳ないのですが、どこかで区切りを付けなければならなかったのです。

『Windows 2000 Scripting Guide』を 1 部送ってもらえませんか。

できません。このガイドは、行きつけの書店で購入する普通の書籍です。私たちも養う家族があるのです。

Windows Server 2003 バージョンと Windows 2000 バージョンは、両方とも必要でしょうか。

これからお話しするものは 1 つ残らず購入してください。すみません、いつもの癖で。実際のところ、回答するのが難しい質問です。ここでは、"状況による" と言うほかありません。たとえば、Windows XP と Windows Server 2003 コンピュータだけで構成されているネットワークがあるとします。この場合、Windows Server 2003 バージョンのスクリプト ガイドの提供を待つことは、適切な方法の 1 つです。最終的には、このガイドが、これらのプラットフォームで動作するスクリプトに興味のあるユーザーにとって完全なリファレンスとなるからです。一方で、Windows 2000 バージョンのガイドは現時点で入手可能であり、知りたい内容のほとんどが記載されています。別の効果的な方法として、Windows 2000 バージョンのガイドを先に購入し、スクリプトの基礎を学習してから Windows Server 2003 バージョンを購入して、Windows 2000 では実行できなかった新しい内容のみを参照するという方法もあります。

では、Windows 2000 コンピュータだけがあり、将来的なアップグレードの計画がない場合はどうでしょうか。この場合は、Windows 2000 バージョンのガイドで基本的な管理ニーズに応えることができます。ただし、スクリプトの本格的な学習に興味がある場合や、スクリプト テクノロジの最先端の状況を常に知っておきたい場合もあります。

結局のところ、どちらのバージョンを選択するかは、あなた自身が決定することになります。どちらの方法でも、私たちの気分を害することはありません。

まあ、多少はあるかもしれませんが。

どちらのガイドも購入したくない場合は、どうすればよいですか。

随分とお金にうるさい方のようですね。まあ仕方ありません。Windows 2000 バージョンのガイドのすべての内容はインターネットに公開していますが、Windows Server 2003 バージョンについても同じように公開する予定です。正直なところ、インターネット経由で情報にアクセスするよりも、すべての内容が 1 冊に収められている書籍を参照する方がおそらく便利ですが、どちらの書籍も購入したくない場合は、それでもかまいません。

もちろん、売り上げの一部が私たちの懐に入るのであれば、まったく違うアドバイスをしていたと思いますが。

Windows Server 2003 バージョンのガイドが出版されるまで待てない場合は、どうすればよいですか。

TechNet と MSDN に、書籍からの抜粋を定期的に掲載する予定です。新しいスクリプトの一部は、スクリプト センターで既に入手可能です。

WSH スクリプトからプログラムを実行する方法、複数のコンピュータを対象に WMI スクリプトを実行する方法、WMI イベントを使用する方法に関するコラムについては、 http://technet.microsoft.com/ja-jp/scriptcenter/default.aspx の「Tales from the Script」(英語) を参照してください。

WMI スクリプトに関する 3 部構成のシリーズについては、 http://www.microsoft.com/japan/msdn/columns/scripting/scripting06112002.aspx を参照してください。

また、TechNet と MSDN に新しいドキュメントがないかどうかを毎月確認してください。

免責事項

本サンプル スクリプトは Microsoft の標準サポート プログラムまたはサービスではサポートされていません。このサンプル コードは、何等保障もない現状有姿のままで提供されるものです。さらに、Microsoft は、商品性、特定目的への適合性を含む一切の黙示の保証をいたしかねます。お客様がこのサンプル スクリプトおよびドキュメントの運用または機能から受けた影響については、お客様が負うものです。Microsoft、本サンプル スクリプトの作成者、および本スクリプトの作成、製造、配布に関与する者は、いかなる場合においても、本サンプル スクリプトおよびドキュメントの使用または使用不能から生じる損害 (逸失利益、事業の中断、事業情報の喪失またはその他の金銭的損失を含みますがこれらに限定されません) に関して一切責任を負いません。たとえ、Microsoft がこのような損害の可能性について知らされていた場合でも一切責任を負いません。