Subscribe:

Labels

Showing posts with label SharePoint 2010. Show all posts
Showing posts with label SharePoint 2010. Show all posts

Wednesday, August 12, 2020

List All WebParts

 #----------------------------------------------------------------------------- 

# Name:             list-all-webparts.ps1  

# Description:      This script will create a list of all web parts in all 

#                   pages in a site collection.

#                     

# Usage:            Run the script passing three paramters: Url, Folder and WP. 

# Url Accepts multiple values (comma separated).

#                   Folder is the destination of the report.

# WP is the name of the web part (optional).

# By:               Riccardo Celesti blog.riccardocelesti.it

#----------------------------------------------------------------------------- 



Param([Parameter(Mandatory=$true)] 

      [String] 

      $Url,

      [Parameter(Mandatory=$true)] 

      [ValidateScript({Test-Path $_ -PathType 'Container'})]

      [String] 

      $folder,

  [Parameter(Mandatory=$false)]

      [String] 

      $WP


if ((gsnp Microsoft.SharePoint.Powershell -EA SilentlyContinue) -eq $null){

    asnp Microsoft.SharePoint.Powershell -EA Stop

}


$filename = "WebPartsReport_" + (Get-Date).ToFileTimeUtc().ToString() + ".csv"

$filenamewp = "WebPartsReport_" + $WP.Replace(" ","-") + "_" + (Get-Date).ToFileTimeUtc().ToString() + ".csv"


$logfile = Join-Path $folder $filename

$logfilewp = Join-Path $folder $filenamewp


$urlArray = $Url.Split(",")


$header = "File Url, Web Part Title, Web Part Type, Visible"


ac $logfile $header

ac $logfilewp $header


$logfilecontrol = $null


foreach ($SPsite in $urlArray){

    Get-SPSite $SPsite| % {


        foreach ($web in $_.AllWebs){

        

            if ([Microsoft.SharePoint.Publishing.PublishingWeb]::IsPublishingWeb($web)){


                $library = [Microsoft.SharePoint.Publishing.PublishingWeb]::GetPublishingWeb($web)

                $pages = $library.PagesList

            

                foreach ($file in $pages.Items){


                    $fileUrl = $web.Url + "/" + $file.File.Url


                    $manager = $file.file.GetLimitedWebPartManager([System.Web.UI.WebControls.Webparts.PersonalizationScope]::Shared);


                    $webparts = $manager.webparts


                    $webparts | %{

                        ac $logfile "$fileUrl, $($_.DisplayTitle), $($_.GetType().ToString()), $($_.IsVisible)"

if ($_.DisplayTitle -match $WP -and -not [string]::IsNullOrEmpty($WP)){

ac $logfilewp "$fileUrl, $($_.DisplayTitle), $($_.GetType().ToString()), $($_.IsVisible)"


                            $logfilecontrol = 1

}

                    }

                }


                $sitepages = [Microsoft.Sharepoint.Utilities.SpUtility]::GetLocalizedString('$Resources:WikiLibDefaultTitle',"core",$web.UICulture.LCID)


                $pages = $null

                $pages = $web.Lists[$sitepages]


                if ($pages -and $pages.ItemCount -gt 0){


                    foreach ($file in $pages.Items) {

                        $fileUrl = $web.Url + "/" + $file.File.Url


                        $manager = $file.file.GetLimitedWebPartManager([System.Web.UI.WebControls.Webparts.PersonalizationScope]::Shared);


                        $webparts = $manager.webparts


                        $webparts | %{

                            ac $logfile "$fileUrl, $($_.DisplayTitle), $($_.GetType().ToString()), $($_.IsVisible)"

if ($_.DisplayTitle -match $WP -and -not [string]::IsNullOrEmpty($WP)){

ac $logfilewp "$fileUrl, $($_.DisplayTitle), $($_.GetType().ToString()), $($_.IsVisible)"


                                $logfilecontrol = 1

}

                        }   

                    }

                }

            } else {

                $sitepages = [Microsoft.Sharepoint.Utilities.SpUtility]::GetLocalizedString('$Resources:WikiLibDefaultTitle',"core",$web.UICulture.LCID)


                $pages = $null

                $pages = $web.Lists[$sitepages]


                if ($pages){


                    foreach ($file in $pages.Items) {

                        $fileUrl = $web.Url + "/" + $file.File.Url


                        $manager = $file.file.GetLimitedWebPartManager([System.Web.UI.WebControls.Webparts.PersonalizationScope]::Shared);


                        $webparts = $manager.webparts


                        $webparts | %{

                            ac $logfile "$fileUrl, $($_.DisplayTitle), $($_.GetType().ToString()), $($_.IsVisible)"

                            

                            if ($_.DisplayTitle -match $WP -and -not [string]::IsNullOrEmpty($WP)){

ac $logfilewp "$fileUrl, $($_.DisplayTitle), $($_.GetType().ToString()), $($_.IsVisible)"


                                $logfilecontrol = 1

}

                        }

                    }

                }

            }

        }

    }

}


notepad.exe $logfile


if ($logfilecontrol -eq 1){

    notepad.exe $logfilewp

}

Thursday, September 27, 2018

Clear sharepoint cache


## SharePoint Server 2013: PowerShell Script To Reset The Config Cache On All Servers In A Farm ##


Add-PSSnapin Microsoft.SharePoint.PowerShell
$Servers = Get-SPServer | ? {$_.Role -ne "Invalid"} | Select -ExpandProperty Address
Write-Host "This script will reset the SharePoint config cache on all farm servers:"
$Servers | Foreach-Object { Write-Host $_ }
Write-Host "Press enter to start."
Read-Host
Invoke-Command -ComputerName $Servers -ScriptBlock {
    try {
        Write-Host "$env:COMPUTERNAME - Stopping timer service"
        Stop-Service SPTimerV4
        $ConfigDbId = [Guid](Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\15.0\Secure\ConfigDB' -Name Id).Id #Path to the '15 hive' ConfigDB in the registry
        $CacheFolder = Join-Path -Path ([Environment]::GetFolderPath("CommonApplicationData")) -ChildPath "Microsoft\SharePoint\Config\$ConfigDbId"
        Write-Host "$env:COMPUTERNAME - Clearing cache folder $CacheFolder"
        Get-ChildItem "$CacheFolder\*" -Filter *.xml | Remove-Item
        Write-Host "$env:COMPUTERNAME - Resetting cache ini file"
        $CacheIni = Get-Item "$CacheFolder\Cache.ini"
        Set-Content -Path $CacheIni -Value "1"
        }
    finally{
        Write-Host "$env:COMPUTERNAME - Starting timer service"
        Start-Service SPTimerV4
        }
}


Update BDC service Throttling size


Add-PSSnapin "Microsoft.SharePoint.PowerShell"
 $bdcAppProxy = Get-SPServiceApplicationProxy | where {$_ -match "BDC Service"}
 Get-SPBusinessDataCatalogThrottleConfig -Scope Database -ThrottleType Items -ServiceApplicationProxy $bdcAppProxy
 $throttleDb = Get-SPBusinessDataCatalogThrottleConfig -Scope Database -ThrottleType Items -ServiceApplicationProxy $bdcAppProxy

Set-SPBusinessDataCatalogThrottleConfig -Identity $throttleDb -maximum 8000000 -default 4000000

Add Server to SP Farm



Add-PSSnapin Microsoft.SharePoint.Powershell
cls
# Farm configuration
$config_Passphrase = "Rcsp2013"
$s_config_Passphrase = (ConvertTo-SecureString -String $config_passphrase -AsPlainText -force)

$server_DB = "NETSHPTSQL"
$db_Config = "SP2013_Configuration"
$db_CentralAdmin = "SP2013_Content_CentralAdministration"
$ca_port = 55555
$ca_AuthProvider = "NTLM"

########################################
# Add the Server to the farm

Write-Output "Adding the Server $db_Config"
Connect-SPConfigurationDatabase -DatabaseName $db_Config -DatabaseServer $server_DB -Passphrase  $s_config_Passphrase
#-FarmCredentials $accounts.farm.credential

Write-Output "Install Help Collections"
Install-SPHelpCollection -All
Write-Output "Initialize security"
Initialize-SPResourceSecurity
Write-Output "Install services"
Install-SPService
Write-Output "Register features"
Install-SPFeature -AllExistingFeatures
Write-Output "Install Application Content"
Install-SPApplicationContent
Write-Output "Get-SPFarm | select Servers"
Get-SPFarm | select Servers


Wednesday, February 8, 2012

List Throttling in Sharepoint2010

SharePoint 2010 has  number of new features centered around working with large lists.  A new feature is incorporated into SPS 2010 for putting limit on the amount of data to be retrieved from the servers. The feature is called List Throttling.
SP2010 can support up to 50 million items in a list now, but you don’t obviously want to return all of those in a single query.  To aid with this, SP2010 introduces list throttling settings (configured at the web application level), that allow you to specify how many items a user can query before the throttle kicks in and aborts the query.  At the time of writing, these limits are set to 5,000 for normal users and 20,000 for super users.  Remember you can change these settings if you so choose.  I’ll be curious to see what numbers people actually end up running with.  This applies to anything that queries the list whether its through the SharePoint UI or from your own custom code.  If the user submits a query that is too large, the SharePoint UI will tell the user that the query is too big and they need to filter it.
List throttling is managed through web application. Click on Application Management --> Manage Web Applications.  Select the web application you want to configure list throttling, then in the ribbon click on the General Settings drop down and select the Resource Throttling item. Below figure shows how to enable list throttling in a web application.

In order to retrieve information using the object model in order to retrieve up to the number of items specified in the List query size threshold for auditors and administrators property, there is a property you need to set in your query object. 
The property is called QueryThrottleMode and it applies to the SPQuery andSPSiteDataQuery classes.  You simply set this property to override and then use your class instance to query. 
using (SPSite oSite = new SPSite("http://sp2010:1234")) 
{
using (SPWeb oWeb = oSite.RootWeb)
{
SPList oList = oWeb.Lists["Test List"];

SPQuery oQuery = new SPQuery();
oQuery.QueryThrottleMode = SPQueryThrottleOption.Override;


            SPListItemCollection oListColl = oList.GetItems(oQuery);
            //Your custom logic here for processed data
}
}
Enhanced by Zemanta

SPDisposeCheck for SharePoint development


SPDisposeCheck is  tool that helps to developers and administrators check the custom SharePoint solutions that use the SharePoint Object Model helping measure against known Microsoft dispose best practices. This tool may not show all memory leaks in your code and may produce false positives which need further review by subject matter experts.

The SPDisposeCheck updated tool remains a standalone command line utility and have been added to a Visual Studio 2008/2010 IDE Add-In which calls out to the SPDisposeCheck.  This Add-In was originally presented at the SPC 2009 and is now available publically.  In addition this version has been tested with both WSS 3.0 + MOSS 2007 and SharePoint 2010 (Foundation and Server) environments.

Finally, it is encouraged you to run the updated SPDisposeCheck tool on all customized SharePoint projects to help identify areas in code which may lead to memory pressure and server stability issues.  As a best practice you should consider adding this tool to your SharePoint software development life cycle build process and review its output with a subject matter expert on a regular interval.
Enhanced by Zemanta