none
Auf welchen sites und subsites sind meine Solutions aktiv? RRS feed

  • Frage

  • Hallo liebe Community,

    folgendes Szenario:
    In unserem Intranet wollen wir alle 3rd Party Lösungen entfernen.
    Dazu müssen auf den einzelnen Sites und Subsites die entsprechenden
    Features zunächst deaktiviert werden.

    In der Central Administration unter
    System Settings | Farm Management | Manage farm solutions
    bekomme ich eine Liste der Solutions (*.wsp) angezeigt.

    Damit ich nun nicht von Hand jede einzelne Site und Subsite händisch
    auf aktivierte Features prüfen muss
    (Site Actions | Site Settings | Manage Site Features),
    dachte ich an ein PowerShell Skript, dass mir auflistet auf welchen
    Sites und Subsites in der Farm die jeweilige Lösung aktiviert ist.

    Dann könnte ich die Site gezielt ansteuern und das Feature deaktivieren.
    Das Deaktivieren möchte ich ungern vom Skript machen lassen.

    Natürlich war ich auch schon tätig und habe ein PowerShell Skript gebaut:

    cls
    
    Remove-PSSnapin Microsoft.SharePoint.PowerShell -erroraction SilentlyContinue
    Add-PSSnapin Microsoft.SharePoint.PowerShell -erroraction SilentlyContinue    
    
    # --------------------------------------------------------------------------------
    # Find all deployed farm solutions
    # --------------------------------------------------------------------------------
    $farm = [Microsoft.SharePoint.Administration.SPFarm]::Local
    $arr = @() # array, to store the solutions
    foreach ($solution in $farm.Solutions) 
    {
    	if ($solution.Deployed)
    	{
    		# move into an array
    		$arr += $solution.DisplayName
        }          
    }
    
    # --------------------------------------------------------------------------------
    # List all deployed farm solutions by reading the array
    # --------------------------------------------------------------------------------
    foreach ($out in $arr)
    {
    	$solutions = $farm.get_Solutions() | Where-Object { $_.DisplayName -eq $out; }
    	$solutions
    }

    Dieses Skript listet mir die aktivierten Solutions auf und gibt
    zusätzlich auch die entsprechende SolutionId mit aus.

    Ausgabe:

    Name                SolutionId                           Deployed
    -------               ------------                          -------
    Solution.wsp     c9287179-....-....-....-............   True
    
    

    Jetzt weiss ich natürlich immer noch nicht, auf welchen Sites und Subsites
    die Solutions aktiviert sind.

    Wie gehe ich nun vor?

    Kann ich die Farm nach der SolutionId durchsuchen und die dazugehörigen
    Sites auflisten lassen?
    Wenn ja, wie?

    Oder ist das Skript für die Tonne und geht das einfacher?

    Danke und Gruß
    DD

    Donnerstag, 9. April 2015 09:25

Antworten

Alle Antworten