|
ASP.net;sharepoint
c# moss 程序人生 |
FileInfo类只能获取文件的基本信息,对于文件的详细信息无法获取,因此获取文件详细信息可以采用两种方式:
一是用shell32的shellclass类获取;
二是用Openxml来获取。
第一种比较麻烦在vs的sharepoint空项目中无法载入,在webapplication里可以正常使用;如果想使用那么需要用dllload导入。
第二种采用openxml,openxml只能操作office2007以上版本的文档,目前支持word,excel,ppt三种。下面以word为例:
用WordprocessingDocument类来操作文档,具体的代码如下:
using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(url, true))
{
CoreFilePropertiesPart corePart = wordDoc.CoreFilePropertiesPart;
//获取本地文件的作者
string creator = corePart.OpenXmlPackage.PackageProperties.Creator;
}
方法:
function RemoveWSP([string] $wspnames)
{
$PSSnapinSharePoin = Get-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction silentlycontinue
if( $PSSnapinSharePoin -eq $Null)
{
Add-PSSnapin Microsoft.SharePoint.PowerShell;
}
foreach($wspname in $wspnames.split(','))
{
$gspsolution = Get-SPSolution -Identity $wspname -ErrorAction silentlycontinue
if($gspsolution -ne $null)
{
if(!$gspsolution.Deployed)
{
Remove-SPSolution -Identity $wspname
}
}
}
}
例如:
RemoveWSP -wspnames "sumhtestwsp.wsp,sumhtestwsp123.wsp,sumhtestwsp456.wsp"
提供wsp部署的参数:$wspnames:路径下的所有wsp文件名用逗号隔开,如“sumhtestwsp.wsp,sumhtestwsp123.wsp,sumhtestwsp456.wsp,sumhtestwsp789.wsp”
方法:
function recoverWSP([string] $wspnames)
{
$PSSnapinSharePoin = Get-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction silentlycontinue
if( $PSSnapinSharePoin -eq $Null)
{
Add-PSSnapin Microsoft.SharePoint.PowerShell;
}
foreach($wspname in $wspnames.split(','))
{
$gspsolution = Get-SPSolution -Identity $wspname
if($gspsolution -ne $null)
{
if($gspsolution.Deployed)
{
Uninstall-SPSolution -AllWebApplications -Identity $wspname
}
}
}
}
例如:
recoverWSP -wspnames "sumhtestwsp.wsp,sumhtestwsp123.wsp,sumhtestwsp456.wsp"
提供wsp部署的参数:
$wsppath:wsp文件所在的路径,如“c:\”
$wspnames:路径下的所有wsp文件名用逗号隔开,如“sumhtestwsp.wsp,sumhtestwsp123.wsp,sumhtestwsp456.wsp,sumhtestwsp789.wsp”
$allwebapp:是否要全局部署,如“$True”,true是要全局部署$webId:$allwebapp为“$False”,那么就需要输入指定应用程序的Guid
方法:
function deployWSP([string] $wsppath,[string] $wspnames,[bool] $allwebapp,[Guid] $webId)
{
$PSSnapinSharePoin = Get-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction silentlycontinue
if( $PSSnapinSharePoin -eq $Null)
{
Add-PSSnapin Microsoft.SharePoint.PowerShell;
}
foreach($wspname in $wspnames.split(','))
{
$gspsolution = Get-SPSolution -Identity $wspname -ErrorAction silentlycontinue
if($gspsolution -eq $null)
{
Add-SPSolution -LiteralPath $wsppath.Insert($wsppath.Length,$wspname)
}
if($allwebapp)
{
if(!$gspsolution.Deployed)
{
Install-SPSolution -Identity $wspname -GACDeployment -AllWebApplications
}
}
else
{
if(!$gspsolution.Deployed)
{
Install-SPSolution -Identity $wspname -GACDeployment -WebApplication $webId
}
}
}
}
例如
deployWSP -wsppath "c:\" -wspnames "sumhtestwsp.wsp,sumhtestwsp123.wsp,sumhtestwsp456.wsp" -allwebapp $true
wss3.0 sp2以上版本的网站升级到foundation 2010
将wss3.0 sp2以上版本的数据库还原到 foundation + sql08R2的环境中,先备份WSS3.0的应用程序,只需备份应用程序的数据库,数据库的备份需要是.bak方式的。
还原数据库,操作完成,需要用addcontentdb命令将数据库添加到应用程序中。
先把应用程序的数据库删除,检查一下管理中心下的应用程序内容数据库是否还包含应用程序数据库,如果还包含需要手动删除。创建新的数据库(WSS_Content),把.bak文件还原到新数据库中。在命令行中执行下面的命令:
Stsadm -o addcontentdb -url http://localhost/ -databasename WSS_Content
获取bdc对象模型信息
Get-SPBusinessDataCatalogMetadataObject -BdcObjectType "Model" -Name "sumhModel" -ServiceContext http://win08r2/
效果图:
导入BDC模型
$PSSnapinSharePoin = Get-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction silentlycontinue
if( $PSSnapinSharePoin -eq $Null)
{
Add-PSSnapin Microsoft.SharePoint.PowerShell;
}
$bcs=Get-SPBusinessDataCatalogMetadataObject -BdcObjectType "Catalog" -ServiceContext http://win08r2/
Import-SPBusinessDataCatalogModel -Path "c:http://www.cnblogs.com/sumh/admin/file://testmodel.xml/" -Identity $bcs
删除BDC模型
$PSSnapinSharePoin = Get-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction silentlycontinue
if( $PSSnapinSharePoin -eq $Null)
{
Add-PSSnapin Microsoft.SharePoint.PowerShell;
}
$bcs=Get-SPBusinessDataCatalogMetadataObject -BdcObjectType "Model" -Name "testModel" -ServiceContext http://win08r2/
if($bcs)
{
Remove-SPBusinessDataCatalogModel -Identity $bcs
}
创建搜索元数据映射
$searchapp=Get-SPEnterpriseSearchServiceApplication
New-SPEnterpriseSearchMetadataManagedProperty -SearchApplication $searchapp -Name mei -Type 2 -Description "苏梅华"
$mei = Get-SPEnterpriseSearchMetadataManagedProperty -SearchApplication $searchapp -Identity mei
$cmei=Get-SPEnterpriseSearchMetadataCrawledProperty -SearchApplication $searchapp -Name Return.Series
$cmei1=Get-SPEnterpriseSearchMetadataCrawledProperty -SearchApplication $searchapp -Name Return.Subscribes
New-SPEnterpriseSearchMetadataMapping -SearchApplication $searchapp -CrawledProperty $cmei -ManagedProperty $mei
New-SPEnterpriseSearchMetadataMapping -SearchApplication $searchapp -CrawledProperty $cmei1 -ManagedProperty $mei
效果图:

如果没有删除映射,删除元数据时会提示错误

删除搜索元数据:首先先删除搜索元数据映射
$PSSnapinSharePoin = Get-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction silentlycontinue
if( $PSSnapinSharePoin -eq $Null)
{
Add-PSSnapin Microsoft.SharePoint.PowerShell;
}
$searchapp = Get-SPEnterpriseSearchServiceApplication
$mp = Get-SPEnterpriseSearchMetadataManagedProperty -SearchApplication $searchapp -Identity su
$mapmei = Get-SPEnterpriseSearchMetadataMapping -SearchApplication $searchapp -ManagedProperty $mp
foreach($_ in $mapmei)
{
$prop = Get-SPEnterpriseSearchMetadataCrawledProperty -SearchApplication $searchapp -Name $_.CrawledPropertyName
$map = Get-SPEnterpriseSearchMetadataMapping -SearchApplication $searchapp -CrawledProperty $prop -ManagedProperty $mp
$map | Remove-SPEnterpriseSearchMetadataMapping
}
$mp | Remove-SPEnterpriseSearchMetadataManagedProperty