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

IIS:如何从命令行取消部署/删除/删除webapp?,iis,web-applications,command-line,Iis,Web Applications,Command Line,假设在本地IIS服务器上部署了一个webapp。当我需要删除/取消部署它时,我可以转到IIS管理器,右键单击该应用程序,然后选择“删除应用程序和内容”-等等。但是,我需要从命令行执行同样的操作-如何?可以假定应用程序的名称是已知的 也许这可以通过MSDeploy实现?iisweb/delete网站[/s Computer[/u[Domain]User/p Password]]这就是它所做的: "C:\Program Files\IIS\Microsoft Web Deploy\msdeploy"

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


也许这可以通过MSDeploy实现?

iisweb/delete网站[/s Computer[/u[Domain]User/p Password]]

这就是它所做的:

"C:\Program Files\IIS\Microsoft Web Deploy\msdeploy" -verb:delete -dest:apphostconfig="Default Web Site/<webapp_name>"
“C:\Program Files\IIS\Microsoft Web Deploy\msdeploy”-动词:delete-dest:apphostconfig=“默认网站/”

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

C:\Windows\System32\inetsrv\appcmd.exe delete app "Default Web Site/MyAppName"
我知道问题是“命令行”,但您可以使用PowerShell和来完成此任务。我提供了所有的功能,并解释了如何实现自动化的过程。此外,您还可以轻松地将IIS管理Cmdlet调用替换为对msdeploy、appcmd、IIsVdir.vbs等的调用

对于您的特定问题,此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

请看一看:“iisweb”不被识别为内部或外部命令、可操作程序或批处理文件。如果这有帮助的话,我正在运行server 2008 R2,所以IIS是v7。我想您应该使用appcmd。请注意,appcmd仅适用于IIS 7+,否则该文件不存在。@Stephan Bauer,我想使用appcmd一次删除更多应用程序,如何操作?期待您的回复,谢谢!很抱歉,但我知道的唯一可能(一次删除多个应用程序)是创建一个批处理文件(或类似文件),该文件多次调用
appcmd
。删除IIS上的应用程序对我也很有用。为了节省时间,在运行IIS 8的Windows 8框中,它可以是
“C:\Program Files(x86)\IIS\Microsoft Web Deploy V3\msdeploy”-动词:delete-dest:apphostconfig=“Default Web Site/”
如果在本地工作,则不需要所有
PSSession
内容+1,尽管如此。