Thursday, March 14, 2019

Automatic login in office 365 / sharepoint with powershell

Automatic login in office 365 / sharepoint with powershell

powershell, sharepoint online

Requis:
try
    {Import-Module Microsoft.Online.SharePoint.PowerShell -DisableNameChecking}
    catch{}
#Get-Module SharePointPnPPowerShell* -ListAvailable | Select-Object Name,Version | Sort-Object Version -Descending
Install-Module SharePointPnPPowerShellOnline

Avec le login actuel
$env:UserName

Je vais chercher dans les crédentials, le login et password windows du user actuel ($env:UserName)
$cred = Get-PnPStoredCredential -Name $env:UserName -Type PSCredential

J’ajoute « @domain.com » car il est obligatoire dans office 365 (reste à faire : le .com n’est pas dynamique)
$username = $cred.UserName + "@" + $env:UserDomain + ".com"

Je le met dans un login office 365 :
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($UserName, $cred.Password)

Que j’utilise avec le context : (client mode in sharepoint)

$Context01 = New-Object Microsoft.SharePoint.Client.ClientContext($siteUrl)

$Context01.Credentials = $Credentials

$site01 = $context01.Web
$context01.Load($site01)

try
    {
    $Context01.executeQuery()
    }
catch
    {
    write-host "ERROR: $($_.Exception.Message) $($_.InvocationInfo.PositionMessage)" -foregroundcolor RED
    }



Et voilà!