设为首页 收藏本站
查看: 1253|回复: 0

SharePoint 2010 PowerShell 系列 之 Create List and Field

[复制链接]

尚未签到

发表于 2015-9-25 11:28:54 | 显示全部楼层 |阅读模式
  学习目录
  本篇才是重点,包含了基本的字段类型创建,具体情况看代码了,代码比文字更容易理解



# Check to ensure Microsoft.SharePoint.PowerShell is loaded
$Snapin = get-PSSnapin | Where-Object {$_.Name -eq 'Microsoft.SharePoint.Powershell'}
if($Snapin -eq $null){
Write-host "Loading SharePoint Powershell Snapin"
Add-PSSnapin "Microsoft.SharePoint.Powershell"
}
#SPListTemplateType
$DocTemp = [Microsoft.SharePoint.SPListTemplateType]::DocumentLibrary
$ContactsTemp = [Microsoft.SharePoint.SPListTemplateType]::Contacts
$CustomGridTemp = [Microsoft.SharePoint.SPListTemplateType]::CustomGrid
$GenericListTemp = [Microsoft.SharePoint.SPListTemplateType]::GenericList
#SPFieldType
$TextFieldType = [Microsoft.SharePoint.SPFieldType]::Text
$NoteFieldType = [Microsoft.SharePoint.SPFieldType]::Note
$ChoiceFieldType = [Microsoft.SharePoint.SPFieldType]::Choice
$NumberFieldType = [Microsoft.SharePoint.SPFieldType]::Number
#SPAddFieldOptions
$DefaultViewFieldOptions = [Microsoft.SharePoint.SPAddFieldOptions]::AddFieldToDefaultView
# Get Web
$WebUrl = "http://win-kpmmoq5srnd:201"
$Web = Get-SPWeb $WebUrl
# Add List
Function AddList($web,$listName,$listDescription,$template){
Write-Host "Starting Creat List" $listName "please waiting......" -foregroundcolor Yellow
Write-Host ".............................."
$web.Lists.Add($listName,$listDescription,$template)
Write-host "List" $listName "already is created"  -foregroundcolor Green
}
# Delete List
Function DeleteList($web,$listName){
$list = $web.Lists.TryGetList($listName)
if($list -ne $null){
Write-Host "List" $listName "already exists,deleting......" -foregroundcolor Yellow
Write-Host "..........................."
$list.Delete()
Write-host "List" $listName "already is deleted" -foregroundcolor Green
}
}
# List OnQuickLaunch
Function OnQuickLaunchList($list,$bool){
$list.OnQuickLaunch = $bool
$list.Update()
}
#Add Fields
Function AddField($list,$xml,$bool,$fieldOptions){
$list.Fields.AddFieldAsXml($xml,$bool,$fieldOptions)
}
Function AddList_Contact($web){
$listName = "PowerShell List"
$listDescription = "PowerShell"
DeleteList $web $listName
AddList $web $listName $listDescription $ContactsTemp   
$list = $web.Lists.TryGetList($listName);
OnQuickLaunchList $list True
}
Function AddList_CustomList($web){
$listName = "Test"
$listDescription = "Test"
DeleteList $web $listName
AddList $web $listName $listDescription $GenericListTemp
$list = $web.Lists.TryGetList($listName)
OnQuickLaunchList $list True
AddListField_CustomList $web $list $listName
}
Function AddListField_CustomList($web,$list,$listName){
$textXml="<Field Type='Text'  DisplayName='你好' Required = 'FALSE' MaxLength='255' StaticName='Hello' FromBaseType='TRUE' Name='Hello'/>"
AddField $list $textXml $false $DefaultViewFieldOptions
$noteXml="<Field Type='Note' DisplayName='Multi' Required = 'FALSE' RichText='TRUE' RichTextMode='Compatible'/>"
AddField $list $noteXml $FALSE $DefaultViewFieldOptions
$noteXml1="<Field Type='Note' DisplayName='Multi1' Required = 'FALSE' RichText='TRUE' RichTextMode='FullHtml'/>"
AddField $list $noteXml1 $FALSE $DefaultViewFieldOptions
$noteXml2="<Field Type='Note' DisplayName='Multi2' Required = 'FALSE' RichText='TRUE'/>"
AddField $list $noteXml2 $FALSE $DefaultViewFieldOptions
$noteXml3="<Field Type='Note' DisplayName='Multi3' Required = 'FALSE' RichText='FALSE'/>"
AddField $list $noteXml3 $FALSE $DefaultViewFieldOptions
$choiceXml = "<Field Type='Choice' DisplayName='Choice' Required = 'FALSE' Format='Dropdown'>
<Default>First</Default>
<CHOICES>
<CHOICE>First</CHOICE>
<CHOICE>Second</CHOICE>
</CHOICES>
</Field>"
AddField $list $choiceXml $FALSE $DefaultViewFieldOptions
$choiceRadioButtonXml = "<Field Type='Choice' DisplayName='ChoiceRadioButton' Required = 'FALSE' Format='RadioButtons'>
<Default>First</Default>
<CHOICES>
<CHOICE>First</CHOICE>
<CHOICE>Second</CHOICE>
</CHOICES>
</Field>"
AddField $list $choiceRadioButtonXml $FALSE $DefaultViewFieldOptions
$choiceCheckXml = "<Field Type='MultiChoice' DisplayName='Checked' Required = 'FALSE'>
<Default>First</Default>
<CHOICES>
<CHOICE>First</CHOICE>
<CHOICE>Second</CHOICE>
</CHOICES>
</Field>"
AddField $list $choiceCheckXml $false $DefaultViewFieldOptions
$numberXml="<Field Type='Number' DisplayName='Number' Required = 'TRUE' Max='100' Min='1' Decimals='2'/>"
AddField $list $numberXml $FALSE $DefaultViewFieldOptions
$currencyXml="<Field Type='Currency' DisplayName='Currency' Required = 'TRUE' Decimals='1' LCID='1033' />"
AddField $list $currencyXml $FALSE $DefaultViewFieldOptions
$DateXml="<Field Type='DateTime' DisplayName='DateOnly' Required = 'FALSE' Format='DateOnly'/>"
AddField $list $DateXml $FALSE $DefaultViewFieldOptions
$DateTimeXml="<Field Type='DateTime' DisplayName='DateTime' Required = 'FALSE' Format='DateTime'/>"
AddField $list $DateTimeXml $FALSE $DefaultViewFieldOptions
$DateTimeISO8601Xml="<Field Type='DateTime' DisplayName='ISO8601' Required = 'FALSE' Format='ISO8601'/>"
AddField $list $DateTimeISO8601Xml $FALSE $DefaultViewFieldOptions
$BooleanXml="<Field Type='Boolean' DisplayName='Boolean' Required = 'FALSE'>
<Default>1</Default>
</Field>"
AddField $list $BooleanXml $FALSE $DefaultViewFieldOptions
$BooleanDefaultXml="<Field Type='Boolean' DisplayName='BooleanDefault' Required = 'FALSE' Default = '2'/>"
AddField $list $BooleanDefaultXml $FALSE $DefaultViewFieldOptions
$userXml="<Field Type='User' DisplayName='User' Required = 'FALSE' UserSelectionMode='1' />"
AddField $list $userXml $FALSE $DefaultViewFieldOptions
$userMultipleXml="<Field Type='UserMulti' DisplayName='UserMulti' Required = 'FALSE' Mult='TRUE' />"
AddField $list $userMultipleXml $FALSE $DefaultViewFieldOptions
$urlXml="<Field Type='URL' DisplayName='URL' Required = 'FALSE' Format='Hyperlink'/>"
AddField $list $urlXml $FALSE $DefaultViewFieldOptions
$imgXml="<Field Type='URL' DisplayName='IMG' Required = 'FALSE' Format='Image'/>"
AddField $list $imgXml $FALSE $DefaultViewFieldOptions
$CalcXml="<Field Type='Calculated' DisplayName='Calc' Required = 'FALSE' Format='Image' Name='Internal_Calc' ResultType='Number' ReadOnly='TRUE'>
<Formula>=Number*100</Formula>
<FieldRefs>
<FieldRef Name='Number'/>
</FieldRefs>
</Field>"
AddField $list $CalcXml $FALSE $DefaultViewFieldOptions   
$CalcXml="<Field Type='Calculated' DisplayName='Calc1' Required = 'FALSE' Format='Image' Name='Internal_Calc1' ResultType='Currency' ReadOnly='TRUE' LCID='1033'>
<Formula>=Number*Currency</Formula>
<FieldRefs>
<FieldRef Name='Number'/>
<FieldRef Name='Currency'/>
</FieldRefs>
</Field>"
AddField $list $CalcXml $FALSE $DefaultViewFieldOptions

$list.Update()
#$list.Fields.Add("Test",$TextFieldType,$false)
#$list.Fields.Add("Test_2",$TextFieldType,$false)
#$list.Fields.Add("Test_Note",$NoteFieldType,$false)
#$testChoice = New-Object System.Collections.Specialized.StringCollection
#$testChoice.Add("First")
#$testChoice.Add("Second")
#$testChoice.Add("Third")
#$list.Fields.Add("Test_Choice",$ChoiceFieldType,$false,$false,$testChoice)
#$list.Fields.Add("Test_Number",$NumberFieldType,$false)
#$viewUrl = "/Lists/"+$listName+"/AllItems.aspx"
#Write-Host $viewUrl
#$allView = $web.GetViewFromUrl("/Lists/Test/AllItems.aspx")
#$fieldChoice = $list.Fields["Test_Choice"]
#$allView.ViewFields.Add($fieldChoice)
#$allView.Update()
}
if($Web -ne $null){
AddList_Contact $Web
AddList_CustomList $Web
write-host
$Web.Dispose()
}
else{
Write-Host $WebUrl " is not existing"
}
  参考文章

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-118629-1-1.html 上篇帖子: SharePoint 2010 PowerShell 系列 之 文档管理 初级应用 下篇帖子: SharePoint 2010 PowerShell 系列 之 文档管理 高级应用和企业案例(文档迁移)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表