SharePoint Online: PowerShell para cambiar el correo electrónico de solicitud de acceso para todos los sitios
Requisito: Cambiar el correo electrónico de solicitud de acceso en SharePoint Online.
PowerShell para cambiar el correo electrónico de solicitud de acceso en SharePoint Online para una colección de sitios:
Las solicitudes de acceso permiten a los usuarios solicitar permiso para acceder a un sitio o colección de sitios de SharePoint. Las solicitudes de acceso se envían a la dirección de correo electrónico del propietario del sitio de forma predeterminada. Sin embargo, es posible que desee cambiar esta dirección de correo electrónico a una dirección de correo electrónico o grupo diferente. Este artículo lo guiará a través de los pasos para cambiar el correo electrónico de solicitud de acceso en SharePoint Online.
Configuremos el correo electrónico de solicitud de acceso para una colección de sitios de SharePoint Online usando 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"
Function Set-SPOAccessRequestEmail([String]$SiteURL, [String]$AccessReqEmail)
{
Try{
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = $Credentials
#Get the Web and Sub Sites
$Web = $Ctx.Web
$Ctx.Load($Web)
$Ctx.Load($web.AllProperties)
$Ctx.Load($Web.Webs)
$Ctx.ExecuteQuery()
#Check if the web has unique permissions
$Web.Retrieve("HasUniqueRoleAssignments")
$Ctx.ExecuteQuery()
If($Web.HasUniqueRoleAssignments -eq $true)
{
#Set Access request Email
$Web.RequestAccessEmail = $AccessReqEmail
$Web.Update()
$Ctx.ExecuteQuery()
Write-Host -f Green "Access Request Email Updated for the Site:" $($SiteURL)
}
Else
{
Write-Host -f Yellow "Site '$($SiteURL)' is inhering Permissions from the Parent"
}
#Iterate through each subsite of the current web
ForEach ($Subweb in $Ctx.Web.Webs)
{
#Call the function recursively
Set-SPOAccessRequestEmail -SiteURL $Subweb.url -AccessReqEmail $AccessReqEmail
}
}
Catch {
write-host -f Red "Error Updating Access Request Email!" $_.Exception.Message
}
}
#Set parameter values
$SiteURL="https://Crescent.sharepoint.com"
$AccessReqEmail="Support@Crescenttech.com"
#Get Credentials to connect
$Cred= Get-Credential
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
#Call the function
Set-SPOAccessRequestEmail -SiteURL $SiteURL -AccessReqEmail $AccessReqEmail
SharePoint Online: cambiar la dirección de correo electrónico de solicitud de acceso para todos los sitios del inquilino
Permítame mostrarle cómo usar un script de PowerShell para cambiar la dirección de correo electrónico de todos los sitios de SharePoint Online. Esta es una forma conveniente de administrar las direcciones de correo electrónico de su organización y mantenerlas coherentes en todos los sitios.
#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.SharePoint.Client.Runtime.dll"
Add-Type -Path "C:\Program Files\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.Online.SharePoint.Client.Tenant.dll"
#Function to set access request Email of a site/site collection
Function Set-SPOAccessRequestEmail([String]$SiteURL, [String]$AccessReqEmail)
{
Try{
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = $Credentials
#Get the Web and Sub Sites
$Web = $Ctx.Web
$Ctx.Load($Web)
$Ctx.Load($web.AllProperties)
$Ctx.Load($Web.Webs)
$Ctx.ExecuteQuery()
#Check if the web has unique permissions
$Web.Retrieve("HasUniqueRoleAssignments")
$Ctx.ExecuteQuery()
If($Web.HasUniqueRoleAssignments -eq $true)
{
#Set Access request Email
$Web.RequestAccessEmail = $AccessReqEmail
$Web.Update()
$Ctx.ExecuteQuery()
Write-Host -f Green "Access Request Email Updated for the Site:" $($SiteURL)
}
Else
{
Write-Host -f Yellow "Site '$($SiteURL)' is inhering Permissions from the Parent"
}
#Iterate through each subsite of the current web
ForEach ($Subweb in $Ctx.Web.Webs)
{
#Call the function recursively
Set-SPOAccessRequestEmail -SiteURL $Subweb.url -AccessReqEmail $AccessReqEmail
}
}
Catch {
write-host -f Red "Error Updating Access Request Email!" $_.Exception.Message
}
}
#Change Access Request Settings for All Site collections in the Tenant- Including Modern Team sites and communication sites
Function Change-SPOTenantAccessRequestEmail($AdminSiteURL)
{
#Setup credentials to connect
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($AdminSiteURL)
$Ctx.Credentials = $Credentials
#Get the tenant object
$Tenant = New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($ctx)
#Get All Site Collections
$SiteCollections=$Tenant.GetSitePropertiesFromSharePoint(0,$true)
$Ctx.Load($SiteCollections)
$Ctx.ExecuteQuery()
#Iterate through Each site collection
ForEach($Site in $SiteCollections)
{
Set-SPOAccessRequestEmail -SiteUrl $Site.Url -AccessReqEmail $AccessReqEmail
}
}
#Set global Parameters
$AdminSiteUrl = "https://Crescent-admin.sharepoint.com"
$AccessReqEmail="Support@Crescenttech.com"
#Get Credentials to connect
$Cred= Get-Credential
#Call the function
Change-SPOTenantAccessRequestEmail -AdminSiteURL $AdminSiteUrl
Esta secuencia de comandos cambia el correo electrónico de solicitud de acceso para todas las colecciones de sitios en SharePoint Online. Aquí hay otra publicación para cambiar el correo electrónico de solicitud de acceso o deshabilitar la solicitud de acceso usando PowerShell para un único sitio de SharePoint Online: ¿Cómo cambiar el correo electrónico de solicitud de acceso o deshabilitar las solicitudes de acceso en SharePoint Online?
