我需要使用 PowerShell 脚本 (v2.0) 检索所有已部署的 SharePoint 解决方案的详细信息,如管理中心 > 操作 > 解决方案管理(又名解决方案商店)中所示。任何人都可以提供有关如何通过 SharePoint API 从 SharePoint 解决方案商店中检索此信息的任何指导吗?
谢谢,魔术师安迪。
我需要使用 PowerShell 脚本 (v2.0) 检索所有已部署的 SharePoint 解决方案的详细信息,如管理中心 > 操作 > 解决方案管理(又名解决方案商店)中所示。任何人都可以提供有关如何通过 SharePoint API 从 SharePoint 解决方案商店中检索此信息的任何指导吗?
谢谢,魔术师安迪。
这实际上很容易做到。您连接到 SP 场并请求 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;
[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
}
}
所有功劳归功于米切尔!
您可以stsadm.exe -o enumsolutions
从您的 powershell 脚本中调用。它返回 XML 数据,您可以轻松地将其转换为[xml]
数据类型并从中查看您需要的任何内容。
(stsadm 住在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>
这是我用来拉回解决方案信息的三个 powershell cmdlet。与上面的相比,我的很简单,但我想我还是会提交它们:)
在 SP2010 管理外壳中
获取解决方案
获取-spsolution-identity | 选择 *
得到解决方案 | 选择 * | 输出文件 c:\solutions.txt