2010-12-17 145 views
15

假設在本地IIS服務器上部署了一個webapp。當我需要刪除/取消部署它時,我可以轉到IIS管理器,右鍵單擊該應用程序,然後選擇「刪除應用程序和內容」 - 等瞧。但是,我需要從命令行執行相同的操作 - 如何?可以假定應用程序的名稱是已知的。IIS:如何從命令行取消部署/刪除/刪除Web應用程序?

也許這可以通過MSDeploy以某種方式完成?

+0

乘坐看看:http://stackoverflow.com/questions/1610880/how-to-create-an-application-in-iis-using-command-line – adatapost 2010-12-17 11:13:50

回答

2

了iisweb /刪除網頁[/ s計算機[/ U [域]用戶/ p密碼]]

+0

'iisweb'不被識別爲內部或外部命令, 可操作程序或批處理文件。 如果有幫助,我正在運行服務器2008 R2,所以IIS是v7。 – Riddler 2010-12-17 12:25:41

+0

我弄髒你應該使用appcmd http://learn.iis.net/page.aspx/114/getting-started-with-appcmdexe – 2010-12-17 12:35:49

14

這是什麼做的:

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

+1爲你計算出來和共享 – 2010-12-17 12:42:07

+0

+1是真棒。謝謝! – danyim 2012-12-03 20:33:16

+0

爲了節省時間,在運行IIS 8的Windows 8中,它可以是「C:\ Program Files(x86)\ IIS \ Microsoft Web Deploy V3 \ msdeploy」-verb:delete -dest:apphostconfig =「默認網站/ 「' – LucasBr 2014-08-18 15:20:37

11

如果你只是想從應用程序該網站在IIS中沒有物理刪除文件(如msdeploy一樣),或者如果你沒有安裝WebDeploy擴展,則可以使用下面的命令:

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

注意appcmd只適用於IIS 7+,否則該文件不存在。 – danyim 2012-12-03 20:35:40

+0

@Stephan Bauer,我想用appcmd一次刪除更多的應用程序,該怎麼做呢?我期待您的回覆,謝謝! – Superman 2016-12-02 01:22:49

+0

對不起,但我知道的唯一可能性(一次刪除多個應用程序)是創建一個多次調用'appcmd'的批處理文件(或者類似)。 – 2016-12-02 07:06:16

5

我千牛這個問題說「命令行」,但你可以使用PowerShell和IIS Administration Cmdlets來完成這個任務。我提供了所有的功能,並解釋瞭如何自動化這個on my blog的過程。此外,您還可以輕鬆更換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 
+0

如果在本地工作,則不需要所有'PSSession'的東西。 +1,但。 – jpmc26 2017-03-10 21:10:42