Получение сведений о развернутых решениях в SharePoint с помощью PowerShell - PullRequest
4 голосов
/ 21 января 2010

Мне нужно получить сведения обо всех развернутых решениях SharePoint, которые отображаются в центре администрирования> Операции> Управление решениями (AKA the Solution Store), используя сценарий PowerShell (v2.0). Может ли кто-нибудь предложить какое-либо руководство по извлечению этой информации из хранилища решений SharePoint через API SharePoint?

Спасибо, MagicAndi.

Ответы [ 4 ]

8 голосов
/ 17 февраля 2010

Это на самом деле довольно легко сделать. Вы подключаетесь к SP Farm и просто запрашиваете get_Solutions.

Вот пример:

# Connect to the Farm
$SPfarm = [Microsoft.SharePoint.Administration.SPFarm]::get_Local()

# What Solution are we looking for?
$solution = "sharepointlearningkit.wsp";

# Get the solutions
$currentSolution = $SPfarm.get_Solutions() | Where-Object { $_.DisplayName -eq $solution; }
$currentSolution;
3 голосов
/ 17 февраля 2010

На основании ответа Митчелла , я использовал:

    [void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")

    function Get-LocalSPFarm()
    {
       return [Microsoft.SharePoint.Administration.SPFarm]::Local
    }

    function List-Solutions()
    {
        $farm = Get-LocalSPFarm        
        foreach ($solution in $farm.Solutions) 
        {
            Write-Host($solution.DisplayName)
            # Get-Member -InputObject $solution -MemberType property
        }
    }

Весь кредит Митчеллу!

2 голосов
/ 21 января 2010

Вы можете позвонить stsadm.exe -o enumsolutions из своего скрипта powershell. Он возвращает данные XML, которые вы можете легко преобразовать в тип данных [xml] и просмотреть все, что вам нужно из этого.
(живет в сцадме c:\Program Files\Common Files\Microsoft Shared\web server extensions\12\bin)

Вывод состоит из операторов, подобных этому

<Solution Name="yoursolution.wsp">
  <Id>ab693dcd-6483-45ad-abba-9c996c67b6e0</Id>
  <File>yoursolution.wsp</File>
  <Deployed>TRUE</Deployed>
  <WebApplicationSpecific>TRUE</WebApplicationSpecific>
  <ContainsGlobalAssembly>TRUE</ContainsGlobalAssembly>
  <ContainsCodeAccessSecurityPolicy>FALSE</ContainsCodeAccessSecurityPolicy>
  <Deployment WebApplication="http://devserver/" />
  <LastOperationResult>DeploymentSucceeded</LastOperationResult>
  <LastOperationTime>10/26/2009 9:06 AM</LastOperationTime>
</Solution>
1 голос
/ 19 января 2013

Вот три командлета powershell, которые я использую для получения информации о решении. Мои просты по сравнению с приведенными выше, но я все равно их отправлю :)

В SP2010 Management Shell

Чтобы перечислить все решения. Возвращает имя решения, идентификатор и развернутый статус

Get-spsolutions

Для перечисления всех свойств конкретного решения

get-spsolution -identity | выберите *

Перечислите все решения, свойства и выходные данные в файл для чтения:)

get-spsolution | выберите * | вне файла c: \ solutions.txt

...