コードによるディスククォータの設定

先日のブログの記事で、IIS7.x Web サイト共有ホスティングサービスのための、プロビジョニング用のサンプルアプリケーションを公開させていただきましたが、早速アップデートの準備を進めています。 次のアップデートでは、以下の機能の追加を予定しております。 1. ディスククォータの制御2. ファイルスクリーン機能の実装3. データベースとデータベースの管理ユーザー作成 その中から、今回はディスク クォータの制御をどのように実装するかについて書きたいと思います。 Windows Server の 2 種類のクォータ機能 Windows におけるディスク クォータの機能は、Windows 2000 で NTFS ディスク クォータが初めて搭載され、Windows Server 2003 R2 からは、ファイルサーバー リソース マネージャー (FSRM) が提供する、記憶域によるクォータ機能が追加されました。 この二つのクォータの機能の違いはなにかというと、NTFS ディスク クォータは、ユーザーアカウント、セキュリティグループに対しディスクの使用量を制御するのに対し、 FRMS が提供するクォータの機能は、フォルダごと、ドライブごとに、個別に使用量を設定することができます。 ちなみに前者の NTFS ディスククォータは、Windows XP,Vista, 7 などのクライアント OS にも付属していますが、FSRM はサーバー OS のみに付属します。 この 2 つのディスククォータの具体的な使用方法については、以下のドキュメントをご参照ください。 [HOWTO] Windows Server 2003 のディスククォータを使用してディスク容量とディスクの使用を管理する方法』 http://support.microsoft.com/kb/326212/ja (※)…

0

IIS7.x での共有 Web ホスティングのためのサンプルアプリケーション

先日行われました、弊社パートナー ホスティング事業者様向けイベント向けに、セッションのデモで使用するサンプルアプリケーションを作成しました。 同イベントでの私のセッションは、体調 & マシン環境が万全でなく、トラウマになりそうなくらいの出来の悪さだったわけですが(笑、って、笑いごとではありませんが。。)、サンプルアプリケーションはちゃんと動作するのでここでご紹介させていただきます。 このサンプルアプリケーションは、IIS7.x の新機能である IIS 管理サービスを使用した簡単な 共有 Web ホスティングを行う際にプロビジョニングを行うものです。 具体的には以下の仕事をしてくれます。 インターネット インフォメーション サービスマネージャーユーザー(※以下、"IIS 管理ユーザー") を作成 Web サイト用の物理フォルダを作成 アプリケーションプールの作成 Web サイトの作成 作成した Web サイトに FTP をバインド 作成した Web サイトに、作成した IIS 管理ユーザーを管理者として登録 PHP ランタイムの設定 (※) ※Windows フォーム版のアプリケーションのみ実装。Web 版は UI の実装が間に合わず。 この処理が完了すると、ユーザーは、クライアントマシンにインストールされた IIS マネージャーから、作成された IIS 管理ユーザーアカウントを使用して、同じく作成された自分の管理可能な Web サイトに直接アクセスして管理することが可能になるのです。 ちなみにサンプルアプリケーションの画面はこんな感じです。 登録が完了すると、IIS マネージャーを使用して Web サイトに接続する手順が表示されます。 以前も書きましたが、IIS 管理サービスはポートを任意に指定可能で、かつ…

0

Direct Access Step By Step Guide が日本語化

業務の合間を縫って、Direct Access の環境を作成しております。 使用している環境が 2 台のノート PC (ちなみに 1 台は借り物) で、検証のシナリオに必要な 5 台のサーバーはすべて Hyper-V の仮想マシンで補っております。 "赤貧" という二文字がこの上なく似合うこの環境では、当然のことながらマシンリソースは不足がちで、"本当に検証の環境が動せるんかいな??" と疑問に不安にさいなまれつつも、256 MB のメモリでも文句もいわずちゃんと動作してくれる Windows Server 2008 R2 のデキの良さに感動し、深まる愛情を抑えることができません。 それにしてもなぜ、こんなに検証環境の作成にに時間がかかっているかというと、ノート PC で使用できる NIC がなかなか見つけられなかったためです。 Direct Access サーバーは NIC が二枚必要です。当然、通常のノート PC には NIC が一枚(?) しかついていないので増設する必要があります。 しかし、Windows Server 2008 R2 というか、Vista 以降の 64bit Windows に対応したドライバを持った PCMCIA 形式のネットワークカードは、私が探した限りさっぱり見つかりません。 仕方がないので私の持っている少ない ニュータイプ 能力(ヤマカンともいう) 使用して、適当、もとい、適切と思われるものを発注することになります。…

0

"ネットワークに到達できませんでした"エラーでドメインに参加できない

現在、デモ、開発、検証と、さまざまな環境を作成しているのですが、その中でも珍しいエラーに遭遇したのでメモがてら書いておきます。 状況はというと、Hyper-V 環境上で動作するドメインコントローラー (以下、DC) がホストするドメインに、その Hyper-V の管理 OS を参加させようとしたところ、以下のようなエラーが発生し、ドメインに参加させることができませんでした。  “ネットワークに到達できません。ネットワークのトラブルシューティングについては、Windows ヘルプを参照してください。” DC は、他の仮想サーバーを問題なくドメインに参加させてきたもので、クライアントもつい先ほどまで別のドメインに参加していたものです。 まっ先に考えられるのはネットワークの構成なので、クライアント側で ipconfig すると、DC マシン内の DHCP により IP アドレスが正しく割り振られ、DNS も同じく DC マシン内のものが正しく自動設定されているのを確認できました。 当然のことながら ping による名前解決も両側から問題なく行えます。 しかながら ANC パスによる参照はできませんでした。  この状況で有名な問題は以下のものですが、問題の環境では TCP/IP  NetBIOS Network Helper サービスは正常に動作しているため、このケースには当てはまりません。 http://support.microsoft.com/kb/329866/ja サーバーとクライアント、この 2 つのマシンの、今回の作業のための変更点について考えてみると、変更がある (というか、今までのドメイン参加時と状況が異なる) のは、Hyper-V しているクライアントです。 なぜなら、Hyper-V のホスト OS は、ゲスト OS と通信を行う際には、物理的な NIC ではなく、”仮想ネットワーク” と名前のついた、仮想スイッチに接続された”仮想 NIC” を使用するようになるからです。 というわけで、”仮想ネットワーク” が割り当てられている [ローカル エリア接続…

0

作ろう!!アプリケーションプール

先日のこのブログの記事に掲載したサンプルコードの “Web サイトの作成” のコメントに “(アプリケーションプールは自動生成される)” とありますが、すみません、これはコメントミスで、実際は自動生成されません。 Web サイトを単純に作成した場合は、規定の設定が継承され、DefaultAppPool が設定されます。 作成する Web サイト、あるいは既存の Web サイトに任意のアプリケーションプールを設定するには、あらかじめアプリケーションプールを作成しておき、それを設定するようにします。 というわけで、アプリケーションプールを作成するためのサンプルーコードは以下です。2 つメソッドが定義されていますが、どちらを使っても OK ですので用途に合わせてお使いください。 サンプル(C#) : アプリケーションプールの作成 //アプリケーションプールの作成:其の壱public Exception CreateApplicationPool(string poolName, bool autoStart, string modeType){    Exception returnExp = null;    try    {        using (ServerManager serverManager = new ServerManager())        {            Configuration config = serverManager.GetApplicationHostConfiguration();            ConfigurationSection applicationPoolsSection = config.GetSection(“system.applicationHost/applicationPools”);            ConfigurationElementCollection applicationPoolsCollection = applicationPoolsSection.GetCollection();            ConfigurationElement addElement = applicationPoolsCollection.CreateElement(“add”);            addElement[“name”] = poolName;            addElement[“autoStart”] = autoStart;            addElement[“managedPipelineMode”]…

0

IIS7 Web サイト共有ホスティングのためのプロビジョニング用サンプルコード

前回のブログに書いた通り、ホスティング事業者様向けのイベントに向けて、エンドユーザーに IIS7 の Web サイトを管理させるためのプロビジョニング用を作成しています。 セットアップ用のコンテンツはまだ書いていませんが、コードができたのでご紹介しましょう。 このコードは以下の処理を行うためのものです。 1. IIS マネージャーユーザーアカウントを作成 2. Web サイト用の物理フォルダを作成 3. Web (HTTP) サイトを作成 4. 作成した Web サイトに FTP をバインド 5. 作成した Web サイトの [IIS マネージャーのアクセス許可] に作成したIIS マネージャーユーザーアカウントを登録 この一連の処理が完了すると、エンドユーザーは、IIS マネージャーを使用して、指定した自分の Web サイトに、指定した IIS マネージャーユーザーアカウント情報でログインし、Web サイトの管理を行えるようになります。 またコンテンツの更新などは FTP を使用して行えます。 もちろん、サーバー側でしっかり設定しておけば、ユーザーに任意で ASP.NET や、PHP のアプリケーションを実行させることが可能です。 これらの処理を完全に行わせるのは、プログラミングのコードだけではなくて、サーバーの設定も必要ですが、今回は前述の 5 つの機能を実行するサンプルコードのみをご紹介します。 なお、サンプルはクラスライブラリのものですので、そのままでは実行できませんので、適宜アプリケーションに組み込み、管理者アカウントで実行してみてください。 サンプル(C#) : IishostingHepler クラスの定義 using System;…

0

IIS 7.x で作る簡単Web サイト共有ホスティングサービス

IIS7.x の数ある新機能の中で、とりわけ私が気に入っているのが "IIS 管理ユーザー" の機能です。 以前のバージョンまでの IIS では、Web サイトの管理を行うには、サーバーの管理者権限を持ったユーザーアカウントで作業する必要があり、当然ながら管理者のアカウントはマシンローカルか、Windows ドメインにユーザーアカウントを作成する必要がありました。 しかし、IIS 7.x では、サーバーの管理者権限を持たないユーザーアカウントに対し、任意の Web サイトの管理を任せること (委任) ができるうえ、管理用のアカウントも IIS 内でのみ有効な管理アカウントを作成できるのです。 そうです、もはや IIS の管理を行うためだけに Windows のユーザーアカウントを作る必要はないのです。 『IIS マネージャー ユーザー』 http://technet.microsoft.com/ja-jp/library/cc733028(WS.10).aspx 『IIS 7.0: IIS マネージャ ユーザーを構成する』 http://technet.microsoft.com/ja-jp/library/cc771311(WS.10).aspx しかも、FTP7.5 では、この IIS マネージャーユーザー のアカウントを認証処理に使用できるので、コンテンツの管理も問題なく行えます。 『IIS 7.0 マネージャー認証を使用した FTP の構成』 http://technet.microsoft.com/ja-jp/library/dd939052.aspx これと、 IIS7.x の管理サービスの機能を組み合わせると、不特定多数のユーザーに Web サイトを提供する、いわゆる Web サイトの共有ホスティングサービスが、それほど難しくなく (慣れている人からみれば驚くほど簡単に) 実現できるのです。 『IIS…

0

オープンソースカンファレンスと世界カメラ。

少し日が経ってしまったのですが、先週の土曜日(2009/10/31) にオープンソースカンファレンスに弊社の出展対応要員として、参加してきました。 オープンソースカンファレンス 2009 Tokyo/Fallhttp://www.ospn.jp/osc2009-fall/ “MS がオープンソース?” と、以外に思われる方もいらっしゃると思うのですが、いえいえ、そもそも弊社はプラットフォームベンダーなので、Windows 上で動作するプログラムを書いてくださるデベロッパーなんであれ大歓迎なのです。(もちろん、”悪意のあるプログラム”作成者に対してはその限りではありません。) それどころか、弊社は自ら CodePlex というオープンソースのコミュニティを運営するくらいオープンソースに関わっていたりします。 『CodePlex』http://www.codeplex.com/ 『マイクロソフトのオープンソース』http://www.microsoft.com/japan/opensource/default.mspx このオープンソースへの取り組みは、ユーザーが行っているプロジェクトのギャラリーのみならず、今や弊社製品の機能にも関わってきており、ASP.NET の MVC Framework や、IIS.NET で公開されている IIS を機能アップするための各種モジュールなどもオープンソースで提供されています。 また、プラットフォームとしてオープンな実行環境を提供するために Windows には NT の時代から POSIX サブシステムを搭載していましたし、最近では IIS に FastCGI モジュールを搭載したりとなかなか頑張っております 🙂  さて、オープンソースカンファレンスにいらっしゃったお客様方の反応なのですが、とくに アンチ MS とという方には遭遇することもなく、いたって平穏に過ぎていきました。 というか、いままで Web 2.0 カンファレンスや、なぜか Linux World Expo といった、あまり弊社とは関係が薄いようなイベントにも出展対応で参加してきましたが、アンチMS な方にはほとんど会ったことがなく、みなさんフレンドリーで、技術的な話で結構盛り上がり対応する側としてもかなり楽しく過ごせております。 また機会があればぜひ参加させていただきたいと思います。   さて、オープンソースカンファレンス出展中においでいただいたお客様で、ご自分で開発中のライブラリのデモを見せてくださった方がいらっしゃいました。 どんなライブラリかというと、なんと、実写に仮想的な動画をリアルタイムに合成する、いわゆる世界カメラを作成するためのものです。 見せていただいたデモでは、携帯電話のカメラ越しに、ある文字の印刷された紙を見ると、3D の初音ミクが踊っているというものです。 もちろん、リアルタイムに動画にオブジェクトの動作は追従し、カメラの角度を変えると、初音ミクの見える角度も変わります。 ちなみにライブラリは C# で書かれていて、Windows…

0

Apache から IIS へのマイグレーションガイド

IIS 7.0 から FastCGI が標準搭載されたことにより、PHP アプリケーションを使うだけのためにわざわざ Linux + Apache を使用する必要はなくなってきました。 そのせいかどうか知りませんが、”社内にある Linux を Windows Server にするので、Apache から IIS へのマイグレーションの資料がほしい”というお話もちらほらといただくようになりました。 そういった状況を見越して…..、なのかどうかは不明ですが、『Apache to IIS 7.0 – Migration Guide』 なるドキュメントが用意されておりました。 『Apache to IIS 7.0 – Migration Guide』http://download.microsoft.com/download/2/D/8/2D863347-3AFF-48A6-9FCF-EC6554C18DCF/Apache%20to%20IIS%207%200%20Migration%20Guide.doc ちなみに Apache から IIS 6.0 へのマイグレーションについては、 『Internet Information Services (IIS) 6.0 Resource Kit』 の 7 章の “Migrating Apache Web Sites to IIS 6.0”…

0

Direct Access 環境の作成手順書

ただいま Direct Access のテンポラリの検証環境を作成しております。 Direct Access をご存知ない方のために簡単に説明すると、Windows Server 2008 R2 と、Windows 7 の組み合わせで使用できるリモートアクセスの機能です。 今までの RAS の仕組みとなにが違うかというと、通信を IPv6 で行い IPSec トンネリングを使用して通信を行うため VPN を使用する必要がありません。 あと、ダイレクトに目的のネットワークにログイン処理を行うので、インターネット越しにアクセスしてきたクライアントに対し、グループポリシーなども適用することが可能です。 なお、Direst Access の詳細については、以下のページをご参照いただければと思います。  http://technet.microsoft.com/ja-jp/windows/dd572177.aspx (Web キャスト)  さて、この Direct Access、関連のオンラインドキュメントを参考に環境を作成し始めたのですが、途中で Step By Step Guide と呼ばれる、検証環境の作成手順書があることを知りました。 途中まで作成してしまった環境をどうしようか、と迷ったのですが、とりあえず イチから Step By Step Guide で環境を作成しなおすみことにしました。 現在、作業の半ばまで来ていますが、やはり、最初から環境を作り直して正解だったと痛感しております。 やはり、Direct Access は複数の技術の集合だけあって、設定箇所も多く、手順もかなり複雑です。 とくに、証明書の設定箇所が多く、じっくり考えながら手順を追わないと理屈が理解できません。(※当然のことながら、手順を理解しながら行わないと、途中でエラーが発生した際に修正できません) そんなわけで、これから Direct Access の環境を作成するという方は、とりあえず一度、以下の Step By Step Guide…

0