1. Create list by custom list template
#***************************************************************************************************************
# Create a list by the custom list template
# $spSiteUrl: The site url
# $spTemplate: The name of list template
# $spListName: The name of the list
# $spDescription: Th edescription about the new list
# $quickLaunchView: Show the list in quicklaunch true or false
# Example: CreateCustomList http://localhost "MyTemplate" "MyNewList2" "This is my list" "true"
#***************************************************************************************************************
function CreateCustomList($spSiteUrl, $spTemplate, $spListName, $spDescription, $quickLaunchView) { $spSite = Get-SPSite $spSiteUrl.trim() $spWeb = $spSite.RootWeb $spTemplate = $spTemplate.trim() $spListName = $spListName.trim() $quickLaunchView = $quickLaunchView.trim() # Check the name is null or not if($spTemplate -eq $null -or $spListName -eq $null -or $quickLaunchView -eq $null) { write-host "The parameter is null" return } try{ # Get all the custom template $listTemplates = $spSite.GetCustomListTemplates($spWeb); # check the list name is right or not if(!($spListName -match "\w+")) { write-host "The list name is wrong" return } # Check list is exist or not foreach($list in $spWeb.Lists) { if($list.Tostring() -eq $spListName) { write-host "The list named $list is existing" return } } # check the template name is right or not if(!($spTemplate -match "\w+")) { write-host "The template name is wrong" return } # Check the $quickLaunchView is right or not if($quickLaunchView -ne "true" -and $quickLaunchView -ne "false") { write-host "The $quickLaunchView is not right choice" return } # check the template name is existing or not foreach($template in $listTemplates) { if($template.name -eq $spTemplate) { # Create the list via the template name $spWeb.Lists.Add($spListName, $spDescription, $listTemplates[$spTemplate]) $list = $spWeb.Lists[$spListName] # Make the list view in OnQuickLaunch if($quickLaunchView -eq "true") { $list.OnQuickLaunch = "True" $list.Update() } if($quickLaunchView -eq "false") { $list.OnQuickLaunch = "False" $list.Update() } write-host "Create the list success" return } } write-host "The template named $spTemplate is not existing" return } catch{ write-host "(ERROR : "$_.Exception.Message")" throw } finally{ $spWeb.Dispose() $spSite.Dispose() } }
2. Delete the list by name
#***************************************************************************************************************
# Delete the list by name
# $spSiteUrl: The site url
# $spTemplate: The name of list template
# $spListName: The name of the list
# $spDescription: Th edescription about the new list
# $quickLaunchView: Show the list in quicklaunch true or false
# Example : DeleteListByName http://localhost "MyNewList2"
#***************************************************************************************************************
function DeleteListByName($siteUrl, $spListName) { $spSite = Get-SPSite -identity $siteUrl.trim() $spWeb = $spSite.RootWeb try{ $spListName = $spListName.trim() # check the list name is right or not if(!($spListName -match "\w+")) { write-host "The list name is wrong" return } # Check list is exist or not foreach($list in $spWeb.Lists) { if($list.Tostring() -eq $spListName) { $list.Delete() write-host "Delete the list named $spListName success" return } } write-host "The list name $spListName is not existing" return } catch{ write-host "(ERROR : "$_.Exception.Message")" throw } finally{ DisposeWebObject($spWeb) } }