PowerShell - SharePoint PnP
- Obtener enlace
- X
- Correo electrónico
- Otras aplicaciones
Hola a todo@s, en la siguiente entrada quiero dejar un script de PowerShell que contiene una serie de funciones sencillas y encapsuladas con el objetivo de facilitar el trabajo con SharePoint Online, en los desarrollos de los scripts de Powershell. O por lo menos es lo que pretendo.
El script tiene el nombre de PnP-Utilities.ps1 y es referenciado a él desde otras entradas del blog. A su vez este script tiene una dependencia del script Utilities.ps1.
. ".\Utilities.ps1"
Get-CredentialOnline
Esta función, se encarga de montar las credenciales que se van a utilizar para conectarse contra un sitio web de SharePoint Online.
<#
Generates credentials for SharePoint Online
#>
function Get-CredentialOnline($UserOnline) {
$location = Get-Location;
$CredentialsPath = -join($location, "\Credentials\");
$PasswordFileName = -join((EncryptToken $UserOnline),".txt")
$PasswordFilePath = -join($CredentialsPath, $PasswordFileName);
$EncryptedPasword = Get-Content $PasswordFilePath | ConvertTo-SecureString -Key (1..16);
$Credentials = New-Object System.Management.Automation.PSCredential($UserOnline, $EncryptedPasword);
return $Credentials;
}
En las otras entradas del blob, en los scripts de PowerShell, en ningún momento se hace referencia a la contraseña del usuario para conectarse a SharePoint Online. Esto es debido a que ha desarrollado un script, que lee la contraseña de un fichero, que está ubicado en la carpeta Credentials. Obviamente el nombre del fichero como su contenido este encriptado para mayor seguridad. De esta forma, no es necesario introducir en todo momento esa contraseña tediosa.
Get-Context
Esta función, se encarga de devolver un contexto cliente del SharePoint Online.
<#
Get client context of Sharepoint Online
#>
function Get-Context($SiteUrl, $UserName) {
Write-Host;
Write-Host "Connecting to site: "$SiteUrl" ..." -ForegroundColor Yellow;
Write-Host;
$Context = $null;
try{
# get credential
$Credential = Get-CredentialOnline -UserOnline $UserName
# Connecting to site
Connect-PnPOnline -Url $SiteUrl -Credentials $Credential;
$Context = Get-PnPContext;
if ($Context -ne $null){
Write-Host "Connected!" -ForegroundColor Green;
}
}
catch {
Write-Host "Error connecting to the site" -ForegroundColor Red;
Write-Host $_ -ForegroundColor Red;
}
return $Context;
}
- Obtener enlace
- X
- Correo electrónico
- Otras aplicaciones