2009-06-08 13 views
12

編集:IIS6;私はIIS7がすぐにオプションであるとは確信していません。IIS6を構成するための開発ツール

私はIISの設定を常に変更しています。あるいは、他のチームの設定を別のVMにマージする必要があります。 「Save Configuration to Disk」は本当にうまくいきました。

私たちは小さな変更をたくさん行っているので、Webインストールプロジェクトは本当にうまくいっていません... Web管理者を対象としたツールは必ずしも開発者には適していません。

IISをすばやく設定できるスクリプト/ツール/ユーティリティを持っている人はいますか?

  • アプリケーション
  • アプリプール(我々が設定されたアプリケーションベースパスにマッピングされた各
  • セットとして、仮想ディレクトリの負荷を追加すべて(クリーン開始)
  • を削除します。特に「

F必要に応じて

  • は2.xにするASP.NETのバージョンを設定)アプリケーションプールがすでに存在していると仮定し北韓いくつかのフラットな入力リストが見つかりました(どんなフォーマットでも可能です)。

  • 答えて

    11

    私は...私の頭の上から3つのオプションの

    1. PowerShellスナップインを考えることができます。
    2. AdsUtil.vbs(既定ではC:\ Inetpub \ AdminScriptsにあります)を使用すると、これらのタスクをバッチファイルにスクリプトできます。また、学習に投資する時間がない場合でもpowershellから呼び出すこともできますIIS用のWMIインターフェイス
    3. MSBuildスクリプト。おそらく構成するのが難しくなりますが、MSBuild Extension Packは、MSBuildスクリプトからIIS6とIIS7の両方を管理するためのいくつかのタスクを提供します。

    私はこれを行う必要があった場合は、Powershellを使用するか、すべての必要性を取り除き、すべての基本が既に設定されている基本VMインストールを作成します。私はハードドライブをロールバックし、自由に再開したいと思う。

    1

    Powershellが機能します。依存関係を避けたい場合は、AdsUtil.vbsに対して実行するスクリプトを生成することもできます。

    おそらくIIS7で標準化が進んでいますが、web.configファイルにすべてのものが存在していれば、より簡単に生活ができるようになります。

    1

    IISのメタベースXML設定ファイルを調べ、直接編集できるようにすることができます。

    4

    私はショーに少し遅れましたが、私はこのPowerShellスクリプトが私の役に立つと思っていました。私は自分のローカル開発用にこれを使用していますので、魔法の数字に謝ります。

    AuthFlags = 4それは正確にマークの要件を満たしていないが、それは良いスタートだ承認

    が統合されています。

    WMI Toolsをダウンロードした場合は、それらを使用してIISメタベースへのWMIインターフェイスを調べることができます。

    function CreateAppPool($poolName,$userName,$password) 
    { 
        [wmiclass] $appPoolSettings = "root\MicrosoftIISv2:IISApplicationPoolSetting"; 
        $newPool = $appPoolSettings.CreateInstance(); 
        $newPool.Name = "W3SVC/AppPools/" + $poolName; 
        $newPool.WAMUsername = $userName; 
        $newPool.WAMUserPass = $password; 
        $newPool.AppPoolIdentityType = 3; 
        $newPool.Put(); 
        # Do it again if it fails as there is a bug with Powershell/WMI 
        if (!$?) 
        { 
         $newPool.Put(); 
        } 
    } 
    
    
    function CreateWebsite($webSiteName, $path, $port, $appPoolName) 
    { 
        [wmiclass] $bindingClass = 'root\MicrosoftIISv2:ServerBinding'; 
        $bindings = $bindingClass.CreateInstance(); 
        $bindings.Port = $port; 
        $webService = Get-WmiObject -namespace "root\MicrosoftIISv2" -class "IIsWebService"; 
        $webSite = $webService.CreateNewSite($webSiteName, $bindings, $path); 
        [int] $index = $webSite.ReturnValue.IndexOf("'") + 1; 
        [int] $length = $webSite.ReturnValue.Length - $index - 1; 
        [string] $websiteID = $webSite.ReturnValue.SubString($index, $length) + "/root"; 
        $webVirtualDirSetting = Get-WmiObject -namespace "root\MicrosoftIISv2" -class "IIsWebVirtualDirSetting" | Where-Object {$_.Name -eq $websiteID}; 
        $webVirtualDirSetting.AppFriendlyName = $webSiteName; 
        $webVirtualDirSetting.AppPoolId = $appPoolName; 
        $webVirtualDirSetting.AccessFlags = 517; 
        $webVirtualDirSetting.AuthFlags = 4; 
        $webVirtualDirSetting.Put(); 
    
        #Switch the Website to .NET 2.0 
        C:\windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -sn W3SVC/ 
    } 
    
    $webSiteName = "MyWebsiteName"; 
    $webSitePath = "C:\MyWebsitePath"; 
    $webSitePort = "9001"; 
    $appPoolName = "MyWebsitePool"; 
    $appPoolIdentity = "MYDESKTOP\MyWebsiteIdentity"; 
    $appPoolPassword = "MyWebsitePassword"; 
    
    CreateAppPool $appPoolName $appPoolIdentity $appPoolPassword 
    CreateWebsite $webSiteName $webSitePath $webSitePort $appPoolName 
    
    関連する問題