About Me

My photo
Muthupet, TamilNadu, India
SharePoint 2010

Friday, July 9, 2021

Create a Team From Existing SharePoint Online Modern Team Site Using PowerShell

How to create a team in Microsoft Teams from an existing SharePoint Online modern team site (connected to Office 365 group) using PowerShell.

I have created a modern team site (connected to an Office 365 group) and created multiple document libraries and lists in the site. I want to create a Team in Microsoft Teams using this site so that files will be shared in this SharePoint site instead of creating a new site and also, I can have the same site structure (document libraries, lists etc.) which was already created.

  1. # Input Parameters  
  2. $siteURL="https://c986.sharepoint.com/sites/ukcommunicationsitedemo"  
  3. $tenantURL="https://c986-admin.sharepoint.com"  
  4. $credential = Get-Credential  
  6. ## Connect to Microsoft Teams  
  7. Connect-MicrosoftTeams -Credential $credential  
  9. ## Connectto SharePoint Online Service  
  10. Connect-SPOService -Url $tenantURL -Credential $credential  
  11. $site = Get-SPOSite -Identity $siteURL  
  13. ## Create a new Team  
  14. New-Team -GroupId $site.GroupId.Guid   

Wednesday, December 23, 2020

Onedrive not provision new O365 user

As we have checked the the users Onedrive is not getting provisioned.

Hence would request you to check the below commands to provision the Onedrive and ask any Global admin to run the commands.

Request-SPOPersonalSite -UserEmails $useremailid@domainname.com

Sunday, May 3, 2020

Take ownership over My Sites / Personal site SharePoint Online

Add an Administrator account (or, for example, Company Administrator group) into Site Collection Administrators list for each of Personal (i.e. My) Sites at SharePoint Online instance.

Under the SharePoint Online tenant admin portal, you can go to User Profiles -> Setup My Sites. From here, you can add additional owners to new My Sites and set the secondary owner of the site collection when it is deleted. As noted above, this would only apply the admin settings to new My Sites after the settings are applied.
Adding an additional admin after the site is created is a little trickier but can be done by the tenant administrator. 
The SharePoint Online PowerShell Management suite should be good enough to handle this task.
$tenant = "contoso"    
$site = "user1_contoso_com"  
$user = "admin@contoso.onmicrosoft.com"  
Set-SPOUser -Site https://$tenant-my.sharepoint.com/personal/$site `
    -LoginName $user -IsSiteCollectionAdmin $true

Tuesday, June 18, 2019

Nintex Workflow Not responding

I found the below solution to clear the workflow history

Here are the scripts we need to test in the test environment that will clear the workflow history.  In production I want to clear everything before January 1 2018.  We can be more aggressive than that in test. 

The only thing I ask is that we do not run this against Global Accounting in test.  I need to make sure they are no longer using this data for auditing purposes. 

The production scripts will need to be run off working hours. 

This make take a few days to complete for each site collection.

NWAdmin.exe –o PurgeHistoryListData -siteUrl <site collection URL> -lastActivityBefore 2018-01-01 00:00 -state COMPLETED

NWAdmin.exe –o PurgeHistoryListData -siteUrl <site collection URL> -lastActivityBefore 2018-01-01 00:00 -state CANCELLED??????????????

NWAdmin.exe –o PurgeHistoryListData -siteUrl <site collection URL> -lastActivityBefore 2018-01-01 00:00 -state ERROR

Cloud Collaboration

Exchange Online:

Exchange now support 150MB email message,
It's quite increase from previous limit as 35MB. But so as to user that
Kind of big size email in the actual environment we have lost of consideration
About their laptop performance, receiver's message inbound limit etc..

we can user Set-MailboxPlan and maxsendsize and maxreceivesize

Get-MailboxPlan | f1 name, maxsendsize, maxreceivesize, isdefault

Set-MailboxPlan ExchangeonlineEnterprise -ezoxx
-MaxsendSizw 10MB -MaxReceiveSize 10MB

Recover – Powershell
Get-mailbox -SoftdeletedMailbox

to get GUID (Mailbox GUID)

deleted get-mailbox -SoftdeletedMailbox -identity MBName | f1 'guid'

I plan to move this mail box to new mailbox

active get-mailbox -identity NEWMBname | f1 'guid'

get GUID for active and deleted mail box

New-MailboxRestoreRequest -SourceMailbox 'guid'
 -TargetMailbox guid -AllowlegacyDNMsmatch



Teams in one of the communication platform in off 365.
Chat chat with team members (Managing complex project .. across the world we can work effectively
Groups Create own group or teams (creating groups rather than email) it will more powerful for our internal communication make a quick decision easily
Messages Calender's schedules and meetings notification
Files One drive file / team files
Teams are backed by O365 Groups, so when you create a team, you create a group. There are a set of cmdlets provided for operating on the core team and its settings (new-team, get-team, set-team), managing team users (add-teamuser, remove-teamuser), as well as cmdlets for managing the channels of the team (new-teamchannel, remove-teamchannel). All of these cmdlets can be run as end users, but they'll work only on the teams that you own or are a member of. If you are a Global Admin or Teams Service Administrator, you'll be able to act on all teams in your organization.
Channel get email id from channel and paste it outlook, it'll email shows in a team
Book mark and save the item, and add flag for that
Connector we use this connector to connect News, Twitter, Trello and facebook
Recording / Transcripts we can recording the teams voice, also we can transcripts the recording voice's to English and spanish
when you recorded your video, more open in microsoft steam and go to the edit option and under video languages and select English and select autogenarate caption file
Ex Powershell
   -DisplayName <String>
   [-Description <String>]
   [-MailNickName <String>]
   [-Classification <String>]
   [-Visibility <String>]
   [-Template <String>]
   [-Owner <String>]
   [-AllowGiphy <Boolean>]
   [-GiphyContentRating <String>]
   [-AllowStickersAndMemes <Boolean>]
   [-AllowCustomMemes <Boolean>]
   [-AllowGuestCreateUpdateChannels <Boolean>]
   [-AllowGuestDeleteChannels <Boolean>]
   [-AllowCreateUpdateChannels <Boolean>]
we can add all o365 apps / and private app to teams..    [-AllowDeleteChannels <Boolean>]
   [-AllowAddRemoveApps <Boolean>]
https://www.youtube.com/watch?v=_Cw9uXfgTLQ    [-AllowCreateUpdateRemoveTabs <Boolean>]
   [-AllowCreateUpdateRemoveConnectors <Boolean>]
Powershell step by step    [-AllowUserEditMessages <Boolean>]
https://blogs.technet.microsoft.com/skypehybridguy/2017/11/07/microsoft-teams-powershell-support/    [-AllowUserDeleteMessages <Boolean>]
   [-AllowOwnerDeleteMessages <Boolean>]
   [-AllowTeamMentions <Boolean>]
   [-AllowChannelMentions <Boolean>]

SharePoint Online:

Download the SharePoint Online Powershell
open windows ps as admin Best practices
Start-Transcript (entire transcript stored one text file c:\users\grant\doucuments\powershell_transcritps...txt) most use full to review
Set-ExecutionPolicy RemoteSigned and say Y yes
$credentials=get-credential enter credential
Import-Module MSOnline
Connect-MsolServices -Credential $credential then test Get-MsolUser to show all the users [ to get all the command Get-Command -Module MSOnline ]
Import-Module LyncOnlineConnector Install-Module SharePointPnPPowershellonline
$lyncsesstion = New-CsOnlineSession -Credential $credential (Create session)
and Import-PSSession $lyncsesstion
Import-Module Microsoft.Online.SharePoint.Powershell if any Warning user -DisableNameChecking..
Connect-SPOService -url https://adm.sharepoint.com -Credential $credential then test Get-SPOSite
Exchange Online:
Get-command -Module -tmp (tab)

Wednesday, May 15, 2019

Sharepoint Voice Search

Ever thought of implementing an shopping app like voice search in your Sharepoint site as a part of search? This neat little trick can help you achieve just that.

In the not so recent past, I was asked to improve a Sharepoint site by adding functionalities to it and keeping it up to date with the most recent trends. Voice search was one functionality that immediately came to my mind. When I found out that Microsoft did not offer it out of box, I jumped on the opportunity.

What I did here was convert the functionality into two parts. i.e. a) Voice to text conversion and b) Redirection after voice search.
Both of which were simple to achieve. For part a) , I implemented the voice to text webkit which is readily available in this link: https://tutorialzine.com/2017/08/converting-from-speech-to-text-with-javascript

The webkit allows you to start and stop recording and also auto stop if you want to specify a time period. I went ahead with auto stop and hooked the text thus converted with a redirect to the Sharepoint search page with the text as q query in the query string. i.e.https://xyz.sharepoint.com/sites/sp2013/search/pages/results.aspx?k=(Voice to text converted text)
Then its just a matter of hooking up the search functionality to the Sharepoint search box via the javascript that contains your webkit functionality. You can add a fancy mic like logo as a button for your voice search and add it inside the search box or outside.

For modern sites in Sharepoint Online we could go with creating an spfx webpart and implementing the same or creating a script editor webpart in spfx, adding it to the site and then pasting the script in the script editor (considering the site is not in "no script" enviroment).


Tuesday, June 26, 2018

Remove orphaned Site Collection URLS with no refrence to Content Database

During the Migration or Patching..

These sites assumes that content database got removed manually and site collection entries remains in config db. you need to type your corrupt site collection names in below $CorruptSites separated by comma in below script block and run as administrator in PowerShell.

This will fully remove referred site collection from Farm.

Add-PSSnapin Microsoft.SharePoint.PowerShell $CorruptSites = "http://rk-sps.com/sites/a","http://rk-sps.com/sites/b" Function DeleteCorruptSite { param($CorruptSite) Write-Host $CorruptSite : -foreground red $site = Get-SPSite $CorruptSite $siteId = $site.Id $siteDatabase = $site.ContentDatabase $siteDatabase.ForceDeleteSite($siteId, $false, $false) Write-Host --Deleted from Content DB -foreground green } foreach ($CorruptSite in $CorruptSites) { DeleteCorruptSite $CorruptSite }