TechNet スクリプト センターにあなたも投稿してみませんか? |
Virtual Machine
| Hyper-V を VBScript でどうにかしてみようかと。
|
Hype-V 関連のプログラム Tip は、PowerShell は大量に見つけることができるのですが、.NET や VBScript となるとほとんど情報がありません。 趣味と実益を兼ねていろいろ書いてみました。お役に立てれば。
Identity & Access-Directory Services
| 普段、ブログで紹介しているスクリプトを中心に掲載させてもらいました。
|
細かい設定が可能なパスワード ポリシー (FGPP) をユーザー/グループに割り当てる方法はよく解説を聞くことがあるけれど、ユーザーに割り当てられた FGPP を参照する方法を見かけることがないですね、という話を MVP (Virtual Machine) の阿部さんとさせていただいたのが作成のきっかけです。
BPOS では色々なスクリプティングが可能なのですが、あまりスクリプト センターにはなかったので、作ってみようと思ったのがきっかけです。
縮退運転などで Hyper-V の CPU リソースを変更する際、簡単に行えるコマンドレットがあれば良いのに、と思ったのがきっかけです。書籍「PowerShell による Windows サーバ管理術」にも掲載したものなのですが、ソフトバンク クリエイティブさんのご厚意で掲載させていただきました。
PowerShell
|
PowerShell from Japan!!
|
PowerShell は XML の読み書きが容易に行えるように設計されています。 しかし、取り扱う XML ファイルがどのようなデータを持っているのかを確認するには、テキスト ベースでは限界があります。
そこで、「グラフィカルな表形式で確認する機能があればいいな」と思い、このスクリプトを作成しました。
PowerShell は .NET Framework を利用できるので、Form と DataGridView およびDataSet を使用して XML ファイルをグラフィカルに表示できるようにしました。
Unix には Cal という、テキスト ベースでカレンダーを表示するコマンドがあるのですが、PowerShell にはありません。
そこで、PowerShell でカレンダーを表示するスクリプトを作成してみました。
パイプラインを利用して Get-Date コマンドレットからの入力を受け取る機能も持っています。
このスクリプトはHey, Scripting Guy の
Windows PowerShell を使用して [ファイルを開く] ダイアログ ボックスを開く方法はありますか の記事を参考に作成したものです。
PowerShell でファイル名を入力する場面はよくあると思うのですが、ダイアログを提供することで簡単にファイルを選択したり保存することを可能とします。様々なパラメータを持たせていますので、表示するダイアログに対して細やかな設定をすることが可能です。
PowerShell では ZIP ファイルを作成する機能が提供されていません。ZIP ファイルを作成する機能があれば、たまったログ ファイルなどを圧縮しメールで送信するようなスクリプト作成に生かすことが可能となります。
そこで、
DotNetZip ライブラリを利用して、ZIP ファイルを作成するスクリプトを作成しました。
単一のファイルやフォルダを圧縮することも、パイプラインを利用して複数のファイルやフォルダを圧縮することもできるようにしています。
PowerShell では ZIP ファイルを解凍する機能が提供されていません。せっかく ZIP ファイルを作成するスクリプトを作成したので、解凍するスクリプトを作成してみました。
こちらも
DotNetZip ライブラリを利用しています。
解凍先を省略した場合は、ZIP ファイルのある場所へ自動でフォルダを作成し解凍が行われるようにしています。
Word ではファイルを保存するときに、PDF ドキュメントや XPS ドキュメントとして保存することができます。しかし、いくつものファイルを Word で開いて保存し直すのは大変です。
そこで Word を立ち上げなくても PDF や XPS ファイルに変換するスクリプトを作成しました。
このスクリプトでは単一の Word ファイルも複数の Word ファイルでも、一度に変換することができます。
New-Object コマンドレットで Word.Application オブジェクトを作成することで PowerShell から Word ドキュメントを操作しています。
Excel ではファイルを保存するときに、PDF ドキュメントや XPS ドキュメントとして保存することができます。しかし、いくつものファイルを Excel で開いて保存し直すのは大変です。
そこで Excel を立ち上げなくても PDF や XPS ファイルに変換するスクリプトを作成しました。
このスクリプトでは単一の Excel ファイルも複数の Excel ファイルでも、一度に変換することができます。
New-Object コマンドレットで Excel.Application オブジェクトを作成することで PowerShell から Excel ドキュメントを操作しています。
PowerPoint ではファイルを保存するときに、PDF ドキュメントや XPS ドキュメントとして保存することができます。しかし、いくつものファイルを PowerPoint で開いて保存し直すのは大変です。
そこで PowerPoint を立ち上げなくても PDF や XPS ファイルに変換するスクリプトを作成しました。
このスクリプトでは単一の PowerPoint ファイルも複数の Excel ファイルでも、一度に変換することができます。
New-Object コマンドレットで PowerPoint.Application オブジェクトを作成することで PowerShell から PowerPoint ドキュメントを操作しています。
PowerShell
|
winscript.jp
|
PowerShell 2.0 で追加されたバック グラウンド ジョブ機能を補強するスクリプトです。同じく 2.0 の新機能であるイベンティング機能を併用し、ジョブの実行完了を監視するようにしました。エラーのリダイレクト(2>&1 演算子)、global ラベルによるグローバル変数の使用などのテクニックも用いています。
PowerShell の Get-ChildItem コマンドレットはサブ フォルダのサイズを表示しないので、できるようにしてみました。Add-Member コマンドレットはオブジェクトに対して未定義のプロパティやメソッドを追加できることを利用し、FileInfo オブジェクトと同様に DirectoryInfo オブジェクトに Length プロパティを追加しています。
PowerShell では Windows Forms を用いて GUI を使った表示が可能です。Application クラスの Run メソッドでメッセージ ループを実行します。$control.Add_イベント名({スクリプト})とすることでイベント ハンドラの記述が可能です。XML 型アダプタを使用すれば RSS から情報取得するのも容易です。
Virtual Machine
| サラリーマンとライターの二束草鞋しています。
|
VHD 環境を頻繁に作っていた時に、BCDEdit での GUID 入力が面倒だったのでスクリプト化しました。
最近 PowerShell を書き始めたので、署名をしたいなぁ... と思って AD CS からコード証明書を発行させるようにしました。ドメイン環境であれば AD CS からコード署名証明書を発行できます。(スタンドアローン AD CS ではコード証明の発行はできません)
Virtual Machine
| 山市良という名前で活動しているテクニカル ライターです。雑誌、書籍、Web のほか、ホワイト ペーパーなども。
|
Windows Server 2008 の Server Core 環境向けに、雑誌の企画のため作成した CUI 版イベント ビューアーです。Windows 2008/Vista RTM の Win32_NTLogEvent が返すレコード順が、2003/XP と異なり当時は苦労しました。2008 SP1/Vista SP1 で元のレコード順に戻りました。このスクリプトは、2008/Vista RTM を除く Windows で動きます。
![]() |
スクリプトの基礎を学ぶ スクリプト初心者の方はこちらから |
![]() |
スクリプト一覧 |
![]() |
MVP プログラムとは |
スクリプトを投稿してみる
ページ右上の [アップロード] ボタンよりスクリプトをご投稿していただけます。
※ ご投稿には Microsoft アカウント (旧 Windows Live ID) が必要です。