Add Choice column in SharePoint list or library using PnP PowerShell

If you have not used PnP PowerShell you should use it, it is much easier to do tasks in PnP PowerShell.

Example: If you want to add a Choice column in SharePoint list or library.

Just few lines of code will do this and you don’t need to be on SharePoint server to do this.

But you need to install SharePoint PnP PowerShell

https://docs.microsoft.com/en-us/powershell/sharepoint/sharepoint-pnp/sharepoint-pnp-cmdlets?view=sharepoint-ps#installation

$encpassword = convertto-securestring -String "<<password>>" -AsPlainText -Force
 $cred = new-object -typename System.Management.Automation.PSCredential -argumentlist "<<domain\username", $encpassword
 Connect-PnPOnline <<site url>> -Credentials $cred
 Add-PnPField -List "<<list name>>" -DisplayName "<<Display name of column" -InternalName "<<internal name of column, make sure no space in name" -Type Choice -Group "<<groupname>>" -AddToDefaultView -Choices <<choice values such as - " 8"," 9"," 10">>

Reference: https://docs.microsoft.com/en-us/powershell/module/sharepoint-pnp/add-pnpfield?view=sharepoint-ps

Subscribe to my YouTube Channel https://www.youtube.com/channel/UC6vLzWN-3aFG8dgTgEOlx5g

Connect with me on Twitter or Linked In and follow YouTube Channel or my blog https://twitter.com/SinhaKislay

https://www.linkedin.com/in/kislaysinha

/https://synkventures.com

/https://www.youtube.com/channel/UC6vL…

Last week in Microsoft 365 – 07 Oct – 14 Oct 2020 – VLog 1

Topics covered in this Vlog

1.Vesa and Waldek’s 100th Episode of PnP Weekly

2.Scottish summit – call for speakers

3.One Admin Center for SharePoint and OneDrive

4.Cross platform PnP PowerShell preview version released by Erwin

5.App capabilities of Teams 6.Project Nucleus teaser

Transcript of the video:

Hello and Welcome everyone to very first Vlog of ”Last week in Microsoft 365”, since this is the first VLog ever I want to tell you what it is? In this series of videos I will be picking some of things I read or liked in Microsoft 365 area during last week and I will be telling you about in brief and if you like it you can find more about in the link pasted in YouTube video or in my blog post. So let’s gets started

1. First up is of course the champions of the community or I should say leaders of the community @vesajuvonen and @waldekm who finished 100th episode of their PnP weekly which was SP Dev Weekly when it started actually, If you would like to know the story of how it started you should listed or view the video (hint it points to one and only Chris Kent). They also discussed what is the purpose of these videos and it is very encouraging to know that they do this for the community to amplify their reach and also develop a bridge between community members and Microsoft. Do listen to this video highly recommended. Here is a link to it https://www.youtube.com/watch?v=Vs_8b…

2. Number second is that Scottish Summit has been announced and call for speakers expires on 31st Oct so if you have a nice cool topic please submit it, most amazing thing about this summit is that it will have 250 sessions and that too in different languages such as English, Spanish, German, French, Mandarin and my own Hindi. Plus they also have a program for new speaker like me so if you are going to speak for the first time they will help you out. So what is that you are waiting for either send a session or buy the tickets? Register here: https://sessionize.com/ss2021

https://scottishsummit.com/

3. Next up is the a Twitter announcement which I believe is important that there will be one admin center for SharePoint and OneDrive which of course make sense as both of them are so tied up so get ready for that one. Link: https://twitter.com/SharePoint/status…

4. Next up is announcement by father of PnP PowerShell @erwinvanhunen, that is preview version of cross platform PnP PowerShell has been released. In his blog post he explains why it took so long and what are the key changes coming up. So if you are using PnP PowerShell for your work or you rely it on running scripts this is an important information, please reach out to him on Twitter or read the blog. Blog: https://www.erwinmcm.com/cross-platfo…

5. Next one is something which widened my eyes when I looked into this on my Twitter feed, the picture. It shows all he App Capabilities of Teams which is fascinating as you can see it can do almost everything, right from embedded tabs, Bots, Messaging extensions, WebHooks and connectors as well so if you are planning to create an App for Teams do read this and understand what all can be achieved. All thanks to Bill Bliss (@bill_bliss ) for sharing this. Link to docs: https://docs.microsoft.com/en-us/micr… Tweet: https://twitter.com/bill_bliss/status…

6. Ok so the last one, and it is related to one of the big announcements which was mentioned in the Microsoft Ignite this year, that is Project Nucleus , as you are aware we got SharePoint Syntex out of Project Cortex and Nucleus was announced this year. A teaser of this was shown in SharePoint monthly community call – October 2020 at the end so if you would like to see just that part then find the link in YouTube video description or on my blog. So biggest thing you need to know that it allows web apps such as List to be available offline for browsing and editing capabilities. This teaser explains how it works and how they are doing it. It demonstrates a List with 100,000 items and also shows what happens in the backend and also how you can join Project Nucleus.

Video URL: https://youtu.be/-dVZM-UROb0?t=2666

How to call Microsoft Graph API from PowerShell to get Microsoft Teams details?

If you like my blog post please subscribe to my YouTube Channel “SYNK Ventures – Let’s talk about Microsoft 365” as well https://www.youtube.com/channel/UC6vLzWN-3aFG8dgTgEOlx5g?sub_confirmation=1

Let’s start with PowerShell script and then we can break it down, so here is a code which can get details of a team using Graph API.

There are bunch of parameters which you need to replace it with your own details and in this blog I will explain how to get those.

$clientId = "<<yourclientid>>"  
$clientSecret = "<<yourclientsecret>>"  
$tenantName = "<<yourteanantname">>  
$resource = "https://graph.microsoft.com/"  
$URL = "https://graph.microsoft.com/v1.0/teams/<<yourteamdid>>"  
  
  
$tokenBody = @{  
    Grant_Type    = "client_credentials"  
    Scope         = "https://graph.microsoft.com/.default"  
    Client_Id     = $clientId  
    Client_Secret = $clientSecret  
}   
  

$tokenResponse = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$TenantName/oauth2/v2.0/token" -Method POST -Body $tokenBody  
Invoke-RestMethod -Headers @{Authorization = "Bearer $($tokenResponse.access_token)"} -Uri $URL

So let’s start with “yourclientid” and “yourclientsecret”, for these we need to login to Azure portal and do an “App Registration”. To call an Graph API you need an App to with correct access to resources.

URL to Azure portal: https://portal.azure.com/

Follow below steps to get the App Registration done:

  • Once you have logged into Azure portal, search for “App Registration” and click “New registration”
Azure App Registration
Azure New Registration
  • Give a name as you would like and click “Register”.
Register App in Azure
  • Important thing to note is Application (client) ID which you need to provide as <<yourclientid>>
App Registration Azure
  • Click on API permissions on left and click “Add a permission” and then select “Application permissions”.
API Permissions Graph
  • We have to give specific permissions so that we can read data, search for “group” and select “Read.All” as shown below and the click “Add Permissions”.
Add Permissions Azure API
  • Don’t forget to click “Grand admin consent for xxxx” else your API will not work
Add Permissions Azure Graph API
  • Next step is to create a secret so click “Certificates & secrets” on left menu. Click on “New Client Secret” and give a name and click Add, If it’s production better to select Expires as Never.
Certificates and Secrets Graph API
  • Once created please copy and keep it which will be our another pramater that is “<<yourclientsecret>>”.
Client Secret Graph API
Install-Module MicrosoftTeams
Import-Module MicrosoftTeams
$credentials=Get-Credential
Connect-MicrosoftTeams -Credential $credentials
Get-Team

So now we have got all the parameters so you can run the PowerShell by applying the values you have found and created and result will be like below

So this is a very basic example of calling Graph API from PowerShell and get details of Teams.

I will be writing another blog very soon to get all Apps used in Teams of a tenant which will be based on above concept.

Connect with me on Twitter or Linked In if you need more information.

References:

Impact of Active Directory Migration or domain change on SharePoint – Part 1

Now a part 2 of this is available you can read here https://synkventures.com/2019/06/09/impact-of-active-directory-migration-or-domain-change-on-sharepoint-domain-migrate-sharepoint-servers-part-2/

There can be situations when your organizations decides to change name due to mergers, acquisitions or splits. In this case quite often users are migrated from one active directory to other. This will definetely have impact on SharePoint users, servers and configurations.

Generally active directory migrations are done in two steps

  1. Migrate users and computers
  2. Migrate servers and service accounts

This post will cover the first point, second one will be covered in second post.

Generally when users are migrated in active directory you would expect that Microsoft products will be handled automatically but strangely that is not the case with SharePoint due to the reason User Profile service works in SharePoint. Reason is that User Profile Service does not work with Secuirty Identifier (SID history).

Before you migrate the users another thing which needs to be taken care is that all the Web Applications needs to allow new domain to do that please refer to below TechNet article

https://technet.microsoft.com/en-us/library/gg602075.aspx

When users are migrated in Active Directory, SharePoint has provided a command to migrate the users in SharePoint as well.

To migrate user in the whole farm use below command

$farm = Get-SPFarm

$farm.MigrateUserAccount( $_.oldlogin, $_.newlogin, $false )

Note that old login  and login should be read like below

olddoamain\user1

newdomain\user1

Reference article

https://blogs.msdn.microsoft.com/sowmyancs/2012/01/06/migrate-users-groups-powershell-script/

In case you need more help on this or other SharePoint issues please contact us via our Contact Us page or via our Facebook page or via Twitter

Like us on Facebook and follow us on Twitter

PowerShell to update an item in SharePoint List #SharePoint #PowerShell

If you are working in support you might get tickets to update a particular item as users are not able to update some columns as it’s locked due to some workflow or checks in forms´customization. The user in workflow is on leave or currently not available so as support you can do it from back via PowerShell.

It can be done via some simple PowerShell commands as below

$web = Get-SPWeb “Put site URL here”

$list = $web.Lists[“ListName”]

$item = $list.GetItemByID(46)

$item[“Status”] = “Approved”

$item.update()

So in above example first we create reference to the web we are going to work upon, then refer to list on which you are going to work upon.

Next step is to get a specific item by using ID and we are using GetItemByID function. As an example we have used item id 46, you need to replace this with your ID.

Next is to update a particular column value, here “Status” is a column name, which is being updated with new value “Approved”.

Last step “update” function is important else value will not be updated.