Iis 7 使用MSDeploy.exe创建文件夹、网站和部署的Powershell脚本

Iis 7 使用MSDeploy.exe创建文件夹、网站和部署的Powershell脚本,iis-7,powershell,powershell-2.0,Iis 7,Powershell,Powershell 2.0,我想在Windows 2008 R2上部署一个web应用程序。我知道用于执行各种任务的单独PowerShell命令。但我想把它放到一个漂亮的PowerShell脚本中 我只需要语法,你能帮我做以下动作吗 测试C:\Inetpub\MyWebsite文件夹是否存在,如果不存在,请创建它 在IIS7中测试MyWebsite是否存在,如果没有创建它(我知道如何导入模块WebAdministration并调用新网站) 现在是复杂的部分。我从VisualStudio2010准备的包中部署了一个Web站点。

我想在Windows 2008 R2上部署一个web应用程序。我知道用于执行各种任务的单独PowerShell命令。但我想把它放到一个漂亮的PowerShell脚本中

我只需要语法,你能帮我做以下动作吗

  • 测试
    C:\Inetpub\MyWebsite
    文件夹是否存在,如果不存在,请创建它

  • 在IIS7中测试
    MyWebsite
    是否存在,如果没有创建它(我知道如何
    导入模块WebAdministration
    并调用
    新网站

  • 现在是复杂的部分。我从VisualStudio2010准备的包中部署了一个Web站点。VS提供了一个
    .cmd
    文件,我只需要在DOS提示符下执行它。这意味着我必须离开PS控制台,打开DOS控制台来运行cmd文件。是否可以从PowerShell控制台中运行
    .cmd
    文件


  • 回答您的问题:

    Import-Module WebAdministration
    
    # Check for physical path
    $sitePath = "c:\inetpub\MyWebsite"
    if (-not (Test-Path -path $sitePath))
    {
        New-Item -Path $sitePath -type directory 
    }
    
    # Check for site
    $siteName = "MyWebSite"
    $site = Get-WebSite | where { $_.Name -eq $siteName }
    if($site -eq $null)
    {
        Write-Host "Creating site: $siteName"
        # Put your New-WebSite code here
    }
    
    # Execute your .cmd here
    c:\PathToScript\MakeMySite.cmd
    

    您可以在PowerShell中运行
    .cmd
    脚本。我也做了一些更改。使用相同的测试语法测试网站是否存在:

    if (-not (Test-Path -path IIS:\Sites\$SiteName))
    {
       New-WebSite -Name $SiteName ...etc...
    }
    
    同样为了执行*.cmd文件,我从web上提取了一些代码,看到人们使用&来执行外部命令。希望你没事:

    & c:\PathToScript\MakeMySite.cmd arg1 arg2
    

    非常感谢您的帮助。

    如果您需要以管理员身份运行.cmd文件,可以使用以下代码:

        Start-Process -FilePath C:\PathToScript\MakeMySite.cmd -Verb RunAs -ArgumentList "/y"
    

    嗨,这太棒了。我可以围绕这个来完成我的PS脚本。有完整的源代码示例吗?