2

PowerShell で確認せずに集中管理 Web アプリケーションを削除する方法を教えてください。私が使用しているスクリプト (現在、すべての Web アプリケーションは確認なしで削除されており、中央管理 Web アプリのみがそれを要求しています)。前もって感謝します。

function RemoveWebApplications()
{
    WriteFuncInfo "Removing all web applications..."

    $applications = Get-SPWebApplication -IncludeCentralAdministration
    if($applications -eq $null)
    {
        WriteFuncInfo "No web applications found."
        return
    }
    WriteFuncInfo "Removing web applications $($applications.Count):"

    foreach($application in $applications)
    {
        WriteFuncInfo "$($application.Name) with database and iis site"
        Remove-SPWebApplication $application -DeleteIISSite -RemoveContentDatabases -Confirm:$false  
    }   
}    
4

1 に答える 1

3

私が現在使用している方法の下に、解決策が見つかりました:

function RemoveCentralAdministration()
{
    WriteFuncInfo "Removing central administrations:"
    $applications = Get-SPWebApplication -IncludeCentralAdministration | where-object {$_.IsAdministrationWebApplication -eq $true }
    if($applications -eq $null)
    {
        WriteFuncInfo "No central administrations found."
        return
    }
    foreach($application in $applications)
    {
        WriteFuncInfo "$($application.Url)"

        # for central administration web application Remove-SPWebApplication cmdlet requests confiramtion
        # even if parameter '-Confirm:$false' is used

        # Remove-SPWebApplication $application -DeleteIISSite -RemoveContentDatabases -Confirm:$false 
        WriteFuncInfo "`t removing iis site"
        $application.UnprovisionGlobally($true);

        WriteFuncInfo "`t removing databases"
        foreach ($contentDb in $application.ContentDatabases)
        {
            $contentDb.Unprovision();
        }

        $application.Delete();
     }    
}

このソリューションは、「Remove-SPWebApplication」コマンドレットの元のコードに基づいています。これは、Microsoft.SharePoint.PowerShell.dllSPCmdletRemoveSPWebApplicationに あります。

于 2012-08-02T05:41:05.357 に答える