IIS:如何从命令行取消部署/删除/删除webapp?

时间:2010-12-17 10:48:32

标签: iis web-applications command-line

假设在本地IIS服务器上部署了一个webapp。当我需要删除/取消部署它时,我可以转到IIS管理器,右键单击该应用程序,然后选择“删除应用程序和内容” - et voila。但是,我需要从命令行做同样的事情 - 怎么样?可以假设应用程序的名称是已知的。

也许这可以通过MSDeploy以某种方式完成?

4 个答案:

答案 0 :(得分:14)

这是做了什么:

"C:\Program Files\IIS\Microsoft Web Deploy\msdeploy" -verb:delete -dest:apphostconfig="Default Web Site/<webapp_name>"

答案 1 :(得分:13)

如果您只想从IIS中的网站删除该应用程序而不实际删除文件(如msdeploy那样),或者如果您没有安装WebDeploy-extension,则可以使用以下命令:

C:\Windows\System32\inetsrv\appcmd.exe delete app "Default Web Site/MyAppName"

答案 2 :(得分:5)

我知道问题是“命令行”,但您可以使用PowerShell和IIS Administration Cmdlets来执行此任务。我提供了所有功能并解释了如何自动执行此on my blog的过程。此外,您可以通过调用msdeploy,appcmd,IIsVdir.vbs等轻松交换IIS管理Cmdlet调用。

对于您的具体问题,此PowerShell代码应该可以解决问题:

$block = {
    Import-Module WebAdministration
    $website = "YourWebsiteName"
    $applicationName = "PathUnderWebsite\ToYourApplication"

    $fullPath = Join-Path $website $applicationName
    Write-Host "Checking if we need to remove '$fullPath'..."
    if (Get-WebApplication -Site "$website" -Name "$applicationName")
    {
        Write-Host "Removing '$fullPath'..."
        Remove-WebApplication -Site "$website" -Name "$applicationName"
    }

    Write-Host "Deleting the directory '$fullPath'..."
    Remove-Item -Path "IIS:\Sites\$fullPath" -Recurse -Force
}
$session = New-PSSession -ComputerName "Your.WebServer.HostName"
Invoke-Command -Session $session -ScriptBlock $block
Remove-PSSession -Session $session

答案 3 :(得分:2)

iisweb /删除网站[/ s计算机[/ u [域名]用户/密码]]