SharePoint Online: Get a Document Library using PowerShell

August 25, 2018    , , ,
Requirement: Get a Document Library in SharePoint Online using PowerShell SharePoint Online: Get a Document Library using PowerShell Here is the PowerShell to Get SharePoint Online document library #Load SharePoint CSOM Assemblies Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll" Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll" #Variables $SiteURL = "https://crescent.sharepoint.com/Sites/Marketing" $DocLibraryName="Project Documents" #Setup Credentials to connect $Cred = Get-Credential Try { #Setup the context $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL) $Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.UserName,$Cred.Password) #sharepoint online get document library powershell $DocLibrary
SharePoint Online: Get a Document Library using PowerShell SharePoint Online: Get a Document Library using PowerShell Reviewed by Salaudeen Rajack on August 25, 2018 Rating: 5

SharePoint Online: Move All Files from One Folder to Another using PowerShell

August 24, 2018    , , , ,
Requirement: Move All Files Between Folders in SharePoint Online using PowerShell PowerShell to Move All Files from One Folder to Another in SharePoint Online: Here is the PowerShell to move all files from one folder to another folder #Load SharePoint CSOM Assemblies Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll" Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll" #Set Variables $SiteURL = "https://crescent.sharepoint.com/sites/marketing" $ListName = "Documents" #Relative URLs of Source and Destination Folders $SourceFolderURL = "/sites/marketing/Shared Documents" $TargetFolderURL = "/sites/marketing/Shared Documents/Archive" #Get Credentials to connect $Cred = Get-Credential Try { #Setup the context $Ctx = New-Object Microsoft.SharePoint.Client.Cl
SharePoint Online: Move All Files from One Folder to Another using PowerShell SharePoint Online: Move All Files from One Folder to Another using PowerShell Reviewed by Salaudeen Rajack on August 24, 2018 Rating: 5

SharePoint Online: Delete All Files and Sub-Folders from a Folder Recursively using PowerShell

August 21, 2018    , , ,
Requirement: Empty a Folder in SharePoint Online document library by deleting all its files and Sub-Folders recursively. PowerShell to Delete All Files and Sub-Folders from a SharePoint Online Folder #Load SharePoint CSOM Assemblies Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll" Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll" #Function to Delete all files and Sub-folders of a given Folder Function Empty-SPOFolder([Microsoft.SharePoint.Client.Folder]$Folder) { Try { #Get All Files from the Folder $Ctx = $Folder.Context $Files = $Folder.Files $Ctx.Load($Files) $Ctx.ExecuteQuery() #Iterate through each File in the Root folder Foreach($File in $Files) { #Delete the file $Folder.Files.GetByUrl($File.ServerRel
SharePoint Online: Delete All Files and Sub-Folders from a Folder Recursively using PowerShell SharePoint Online: Delete All Files and Sub-Folders from a Folder Recursively using PowerShell Reviewed by Salaudeen Rajack on August 21, 2018 Rating: 5

Fix 'You have to delete all the items in this folder before you can delete the folder" Error in SharePoint Online

August 20, 2018    ,
Problem: When trying to delete a folder which has sub-folders and files, got an error message "You have to delete all the items in this folder before you can delete the folder" in SharePoint Online. Root Cause: Usually, we don't need to empty the folder before we delete it. However, If the site is on preservation "On-Hold" policy, we may get this error message. when the site is on hold, documents can be deleted but we can't delete a folder with files and sub-folders directly. This is how Preservation hold works to prevent the data loss. Solution: Either you disable the Hold for the site from Office 365 Security and Compliance center as Global Administrator (and allow some time to take effect!) or as the error message says, delete all files and sub-folders inside the folder first! You can use "View in File Explorer" or PowerShell too to make it easier. How to Empty a Folder in SharePoint Online using PowerShell?
Fix 'You have to delete all the items in this folder before you can delete the folder" Error in SharePoint Online Fix 'You have to delete all the items in this folder before you can delete the folder" Error in SharePoint Online Reviewed by Salaudeen Rajack on August 20, 2018 Rating: 5

SharePoint Online: How to Enable Rating in List using PowerShell?

August 17, 2018    , , , ,
Requirement: Enable Rating in SharePoint Online List How to Enable Rating in SharePoint Online? Rating feature in SharePoint Online helps to highlight documents and list items. Rating can be enabled in SharePoint Online list and libraries to let users to see and rate items. Rating can be configured as either star ratings or as Likes. Star Ratings When a list is configured for star ratings, Every time someone rates the item or a document, the scale displays the average rating of all those who rated it. To rate an item within a list, click on the star that represents the rating you want to give the item. Once you select the rating, the item is updated to include your rating. If you rate the item again, the previous rating applied is replaced by the newly selected rating. Like Ratings Likes are similar to what you use on Facebook, Twitter, and LinkedIn, etc. When ratings type is set to "Likes", items are presented with Like button (little heart icon) which includes t
SharePoint Online: How to Enable Rating in List using PowerShell? SharePoint Online: How to Enable Rating in List using PowerShell? Reviewed by Salaudeen Rajack on August 17, 2018 Rating: 5

SharePoint Online: Export User Information List using PowerShell

August 17, 2018    , , , ,
Requirement: Export User Information List in SharePoint Online User Information List in SharePoint Online stores information about a user by having some metadata set up for the user such as User Picture, Email, DisplayName, LoginName etc. When we grant permissions to a user, they are added automatically to the hidden User Information list. SharePoint retrieves user related metadata for fields such as Created By,  Last modified, etc from the User Information List. PowerShell to Export User Information List in SharePoint Online This PowerShell script exports all user information to a CSV file from the user information list of any SharePoint Online site collection. #Load SharePoint CSOM Assemblies Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll" Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll" #P
SharePoint Online: Export User Information List using PowerShell SharePoint Online: Export User Information List using PowerShell Reviewed by Salaudeen Rajack on August 17, 2018 Rating: 5

SharePoint Online: Create Document Set using PowerShell

August 16, 2018    , , ,
Requirement: Create a Document Set in SharePoint Online using PowerShell SharePoint Online: Create Document Set using PowerShell While my another post explains Creating Document Set in SharePoint Online - Step by Step , here is the PowerShell script to create document sets in SharePoint Online. This script assumes that the document sets feature is enabled, Content type for document set is created and added to the library already. #Load SharePoint CSOM Assemblies Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll" Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll" Add-Type -Path "C:\Program Files\Common Files\microsoft shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.DocumentManagement.dll" #Parameters $SiteURL="https://crescent.sharepoint.com/sites/marketing" $Documen
SharePoint Online: Create Document Set using PowerShell SharePoint Online: Create Document Set using PowerShell Reviewed by Salaudeen Rajack on August 16, 2018 Rating: 5

SharePoint Online: Create a Document Set - Step by Step

August 16, 2018    , ,
What is Document Set in SharePoint Online? As it's name indicates, document set is a set of related documents wrapped inside a special folder that allows multiple documents to be managed together and treated as if they were a single item. In other words, Document Set allows you to group documents together based on some criteria and then work with the group of documents as a single entity. A document set can have: Shared Metadata columns, Template, Information management policies, Workflow, Versions, etc. In real world example, Consider "Project Proposal" as a document set for your organization that consists of a Requirement specification Word document, Project portfolio PowerPoint presentation and Budget specification Excel spreadsheet. How to Create a Document Set in SharePoint Online? Creating document set in SharePoint Online is a Four step process: Enable "Document Sets" Feature if not enabled already Create a Content Type with metadata and docu
SharePoint Online: Create a Document Set - Step by Step SharePoint Online: Create a Document Set - Step by Step Reviewed by Salaudeen Rajack on August 16, 2018 Rating: 5

Office 365: Find All SharePoint Online Administrators using PowerShell

August 16, 2018    , ,
Requirement: Get All SharePoint Online Administrators of the Office 365 tenant. How to Check If a User is SharePoint Online Administrator in Office 365? To find if a user is SharePoint Online Administrator, do the following: Login to Office 365 Admin Center: https://admin.microsoft.com Expand Users >> Active Users Use the Search and the user. Click on the user from results grid, which opens user properties. In user properties page, under "Roles", You'll find "SharePoint Administrator" While these steps are quite simple, it would be cumbersome to go to each user's properties and check if he/she has SharePoint Administrator role, isn't it? PowerShell to Get a List of SharePoint Online Administrators This PowerShell script lists all SharePoint Administrators from Office 365 tenant. Use Azure AD PowerShell module to execute this script. #Connect to Azure AD Connect-MSOLService #Get SharePoint Online Administrators Role $RoleID = (Get-
Office 365: Find All SharePoint Online Administrators using PowerShell Office 365: Find All SharePoint Online Administrators using PowerShell Reviewed by Salaudeen Rajack on August 16, 2018 Rating: 5

SharePoint Online: Import Term Group, Term Set, Term from XML using PnP PowerShell

August 15, 2018    , , ,
Requirement: Import Term group, term set and terms data from a XML file to SharePoint Online using PnP PowerShell. XML File with Term Store Data: Here is my XML with Term store data <pnp:TermGroups xmlns:pnp="http://schemas.dev.office.com/PnP/2018/07/ProvisioningSchema"> <!-- Term Group --> <pnp:TermGroup Name="Deals Pipeline" Description=""> <pnp:TermSets> <!-- Term Set 1 --> <pnp:TermSet Name="Region" Description=""> <pnp:Terms> <pnp:Term Name="Africa" /> <pnp:Term Name="Asia" /> <pnp:Term Name="Australasia" /> <pnp:Term Name="Europe" /> <pnp:Term Name="MENA" /> <pnp:Term Name="America" /> </pnp:Terms> </pnp:TermSet> <!-- Term Set 2 --> <pnp:TermSet Name="DealStage" Description=""> <pnp:T
SharePoint Online: Import Term Group, Term Set, Term from XML using PnP PowerShell SharePoint Online: Import Term Group, Term Set, Term from XML using PnP PowerShell Reviewed by Salaudeen Rajack on August 15, 2018 Rating: 5

SharePoint Online: PowerShell to Get a File

August 13, 2018    , , ,
Requirement: Get a File from SharePoint Online using PowerShell PowerShell to Get a File from SharePoint Online Here is my nifty collection of PowerShell scripts to get a file from SharePoint Online. #Load SharePoint CSOM Assemblies Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll" Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll" #Variables for Processing $SiteUrl = "https://crescent.sharepoint.com/sites/marketing" $FileRelativeURL ="/sites/marketing/Shared Documents/Compliance Process.xlsx" #Get Credentials to connect $Cred = Get-Credential Try { #Set up the context $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteUrl) $Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.UserName,$Cred.Password) #pow
SharePoint Online: PowerShell to Get a File SharePoint Online: PowerShell to Get a File Reviewed by Salaudeen Rajack on August 13, 2018 Rating: 5

SharePoint Online: Delete All Unique Permissions from a Site Collection using PowerShell

August 13, 2018    , , , , , , ,
Requirement: Remove unique permissions from a SharePoint Online site collection and restore permission inheritance from the parent. PowerShell Script to Restore Permission Inheritance in SharePoint Online: SharePoint Online allows us to manage permissions at more granular level when we need unique permissions to objects such as subsite, list, folder or list items. By default, any object we create in the site inherits permissions from its parent. E.g. List created in a subsite inherits permission from the site.  However, its recommended to have the permission inheritance intact, as Broken inheritance at subsite-list-item levels adds extra burden to the Administrators and to the performance of the site. When you have hundreds of items with unique permissions, it adds more complexity while resolving permissions issues. This PowerShell removes unique permissions on given site collection's content, such as: All subsites Lists and libraries Folders and List Items. #Load Shar
SharePoint Online: Delete All Unique Permissions from a Site Collection using PowerShell SharePoint Online: Delete All Unique Permissions from a Site Collection using PowerShell Reviewed by Salaudeen Rajack on August 13, 2018 Rating: 5

SharePoint Online: Filter List View to Show Files Only from a Sub-Folder using PowerShell

August 13, 2018    , , , ,
Requirement: Set a list view filter to show files from a specific folder in a SharePoint Online document library. How to Set the View Filter to Show Files from a Folder? Unfortunately, The SharePoint web user interface doesn't provide us an option to set view filter based on folder, sub-folders. While its possible to set list view filter by editing the XSLT-CAML code to show files only from a specific sub-folder using SharePoint Designer, Here is my PowerShell way to set filter on a SharePoint Online list view. SharePoint Online: PowerShell to Create a List View Filtered by a Folder #Load SharePoint CSOM Assemblies Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll" Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll" #Function to Create List view in SharePoint Online Function Create-SPOListView(
SharePoint Online: Filter List View to Show Files Only from a Sub-Folder using PowerShell SharePoint Online: Filter List View to Show Files Only from a Sub-Folder using PowerShell Reviewed by Salaudeen Rajack on August 13, 2018 Rating: 5

SharePoint Online: PowerShell to Disable Modern Experience

August 12, 2018    , , , ,
Requirement: Disable modern experience in SharePoint Online. How to Disable New User Experience in a List and Switch back to Classic View? Definitely the modern experience in SharePoint Online lists and libraries is faster, mobile friendly and easier to use. It brings new functionalities and components, such as: Quick edit metadata with information pane, Pin-Filter, Copy-Move, Custom Views, Column Formatting, Folder upload, etc. However, some features can only be used in the classic experience. So, you may need to disable modern experience in SharePoint Online at times. To disable modern experience in SharePoint Online, Navigate to the list or library and then use the link "Return to Classic SharePoint" in the bottom left corner. This sets all lists and libraries to use classic experience. Disable Modern Experience at List Level: You can switch between classic and new experiences in SharePoint Online by simply changing the below list settings. Go to List or Libr
SharePoint Online: PowerShell to Disable Modern Experience SharePoint Online: PowerShell to Disable Modern Experience Reviewed by Salaudeen Rajack on August 12, 2018 Rating: 5

SharePoint Online: PowerShell to Get List ID (GUID)

August 12, 2018    , , , ,
Requirement: Get List ID in SharePoint Online using PowerShell How to Get the List ID in SharePoint Online? If you go to List Settings of any list or library, the URL looks like: https://crescent.sharepoint.com/_layouts/15/listedit.aspx?List= d50ffc71%2D8b0f%2D4cbe%2Da1db%2D5667fee88468 , Here what you see for "List" query parameter is the ID of the list. Just replace %2D with "-" and you'll get the GUID of the list. SharePoint Online: PowerShell to Get List ID Let's get the ID of a List using PowerShell: #Load SharePoint CSOM Assemblies Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll" Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll" #Config Parameters $SiteURL= "https://abraaj.sharepoint.com/sites/marketing" $ListName = "Contacts" #Get Credentials
SharePoint Online: PowerShell to Get List ID (GUID) SharePoint Online: PowerShell to Get List ID (GUID) Reviewed by Salaudeen Rajack on August 12, 2018 Rating: 5

SharePoint Online: Delete Unique Permissions in a Subsite using PowerShell

August 12, 2018    , , , ,
Requirement: Delete Unique Permissions of a Subsite in SharePoint Online using PowerShell How to Remove Unique Permissions of a SharePoint Online Site? Removing unique permissions and restoring permission inheritance for a subsite allows its security to be managed at the parent site level, instead of managing the security separately from that subsite. To restore permission inheritance for a subsite in SharePoint Online, do the following: Login to SharePoint Online, Navigate to the Subsite that you want to remove unique permissions. Go to Settings >> Site Settings >> Click on "Site Permissions" link. On the ribbon, click on Permissions tab and then, in the Inheritance group, click on Delete Unique Permissions. Confirm the prompt with OK. This removes unique permissions from the SharePoint Online subsite. Delete Unique Permissions of a Subsite in SharePoint Online using PowerShell Here is how to remove unique permissions in SharePoint Online subsit
SharePoint Online: Delete Unique Permissions in a Subsite using PowerShell SharePoint Online: Delete Unique Permissions in a Subsite using PowerShell Reviewed by Salaudeen Rajack on August 12, 2018 Rating: 5

SharePoint Online: PowerShell to List All Files in a Document Library

August 11, 2018    , , , , ,
Requirement: List All Documents in a SharePoint Online Document Library using PowerShell SharePoint Online: PowerShell to Get List of Files in Document Library #Load SharePoint CSOM Assemblies Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll" Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll" #Function to get all files of a folder Function Get-AllFilesFromFolder([Microsoft.SharePoint.Client.Folder]$Folder) { #Get All Files of the Folder $Ctx = $Folder.Context $Ctx.load($Folder.files) $Ctx.ExecuteQuery() #Get all files in Folder ForEach ($File in $Folder.files) { #Get the File Name or do something Write-host -f Green $File.Name } #Recursively Call the function to get files of all folders $Ctx.load($Folder.Folders) $Ctx.ExecuteQuery(
SharePoint Online: PowerShell to List All Files in a Document Library SharePoint Online: PowerShell to List All Files in a Document Library Reviewed by Salaudeen Rajack on August 11, 2018 Rating: 5

SharePoint Online: PowerShell to a Get List

August 11, 2018    , , , ,
Requirement : Get a list in SharePoint Online using PowerShell PowerShell to Get a SharePoint Online List Let's get a list in SharePoint Online and count items in list using PowerShell: #Load SharePoint CSOM Assemblies Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll" Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll" #Config Parameters $SiteURL= "https://crescent.sharepoint.com/sites/marketing" $ListName="Project Tasks" #Get Credentials to connect $Cred = Get-Credential Try { #Setup the context $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL) $Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.UserName,$Cred.Password) #get list sharepoint online powershell $List=$Ctx.Web.Lists.GetByTitl
SharePoint Online: PowerShell to a Get List SharePoint Online: PowerShell to a Get List Reviewed by Salaudeen Rajack on August 11, 2018 Rating: 5

SharePoint Online: PowerShell to Disable Versioning

August 11, 2018    , , , , ,
Requirement: Disable Versioning in SharePoint Online using PowerShell How to Disable Versioning in SharePoint Online? Versioning feature in SharePoint Online creates a copy of items when someone changes a document, so that we can track every change to the document and revert to old version if needed. Although it's a nifty feature, in some cases you may need to turn it OFF. While its possible to turn OFF versioning in SharePoint Online lists by setting "Create a version each time you edit an item in this list?" option to "No", The "No versioning" option is removed in document library's versioning settings! By default, versioning is enabled in SharePoint Online document libraries. There is no way to disable version history of a document library from web user interface. So, we are left with PowerShell! SharePoint Online: PowerShell to Disable Versioning Let's disable versioning in a SharePoint Online document library using PowerShell. #L
SharePoint Online: PowerShell to Disable Versioning SharePoint Online: PowerShell to Disable Versioning Reviewed by Salaudeen Rajack on August 11, 2018 Rating: 5

SharePoint Online: Get Subsites using PowerShell

August 07, 2018    , , ,
Requirement: Get a subsite using PowerShell in SharePoint Online Get a Subsite using PowerShell in SharePoint Online Here is how to get a subsite from PowerShell in SharePoint Online: #Load SharePoint CSOM Assemblies Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll" Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll" #Function to Get the Web Function Get-SPOWeb() { Param ( $WebURL = $(throw "Please Enter the Site URL:") ) Try { #sharepoint online powershell get web $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($WebURL) $Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password) $Web = $Ctx.Web $Ctx.Load($web) $Ctx.executeQuery() Return $Web
SharePoint Online: Get Subsites using PowerShell SharePoint Online: Get Subsites using PowerShell Reviewed by Salaudeen Rajack on August 07, 2018 Rating: 5

SharePoint Online: Get Site Properties using PowerShell

August 07, 2018    , ,
Requirement: Get site properties in SharePoint Online using PowerShell SharePoint Online: PowerShell to Get Site Properties You can get SharePoint Online site properties using SharePoint Management Shell.  #Set Parameters $AdminSiteURL="https://Crescent-Admin.sharepoint.com" $SiteURL="https://Crescent.sharepoint.com/sites/marketing" #Connect to SharePoint Online Admin Center Connect-SPOService -Url $AdminSiteURL -Credential (Get-Credential) #Get site properties Get-SPOSite $SiteURL | Select * This PowerShell gets all properties of the site SharePoint Online: PowerShell to Get Web Properties Say, you want to get last modified date of a SharePoint Online site using PowerShell, Here is the CSOM way to get site properties: #Load SharePoint CSOM Assemblies Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll" Add-Type -Path "C:\Program Files\Common Files\Microsoft Shar
SharePoint Online: Get Site Properties using PowerShell SharePoint Online: Get Site Properties using PowerShell Reviewed by Salaudeen Rajack on August 07, 2018 Rating: 5
Powered by Blogger.