Búsqueda de sitios web

Diez comandos de PowerShell de Office 365 más útiles


Usar Windows PowerShell para administrar Office 365 puede parecer extraño al principio. Después de todo, las soluciones en la nube prometen simplicidad y facilidad de uso, adjetivos que rara vez se usan en relación con Windows PowerShell. Pero tengan paciencia conmigo. En este artículo, le mostraré los diez cmdlets de Office 365 PowerShell más útiles para administradores de sistemas. Quizás después de leer estas instrucciones esté de acuerdo en que PowerShell puede ser una herramienta valiosa, incluso para sistemas basados en la nube.

1. Conexión a una instancia de Office 365 con PowerShell

Primero, necesitamos instalar el módulo de Office 365 para Windows PowerShell y conectarnos a la instancia de Office 365. Tome los siguientes pasos:

1. Descargue e instale el Asistente de inicio de sesión de Microsoft Online Services para profesionales de TI RTW.

2. Importe el módulo PowerShell de servicios en línea para Microsoft Azure Active Directory y Office 365:

Install-Module -Name AzureAD
Install-Module -Name MSOnline

3. Ingrese sus credenciales de administrador de Office 365:

$Cred = Get-Credential

4. Cree una sesión remota de PowerShell:

$O365 = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Cred -Authentication Basic -AllowRedirection

5. Importe los comandos de la sesión a la sesión local de Windows PowerShell:

Import-PSSession $O365

6. Conéctese a todos los servicios de Office 365:

Connect-MsolService –Credential $O365

Una vez que hayamos importado los módulos para Windows PowerShell, ya estamos listos para administrar nuestra instancia de Office 365.

2. Conexión a Exchange Online y SharePoint Online con PowerShell

También podemos conectarnos a Microsoft Exchange Online y Microsoft SharePoint Online por separado. Conectarse a Exchange Online con PowerShell es básicamente lo mismo que conectarse a Office 365:

$Cred = Get-Credential

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Cred -Authentication Basic –AllowRedirection

Conectarse a SharePoint Online es un poco diferente. Para administrar su inquilino de SharePoint Online, primero debe descargar e instalar la función Shell de administración de SharePoint Online. Luego ejecute el siguiente script de PowerShell:

$admin="Admin@enterprise.onmicrosoft.com"
$orgname="enterprise"
$userCred = Get-Credential -UserName $admin -Message "Type the password."
Connect-SPOService -Url https://$orgname-admin.sharepoint.com -Credential $userCred

3. Obtener una lista de cmdlets de PowerShell de Office 365 disponibles

Para obtener una lista de todos los comandos disponibles de Office 365 PowerShell, debemos ejecutar el cmdlet Get-Command:

Get-Command -module MSOnline

También podemos obtener la lista de cmdlets para Azure Active Directory:

Get-Command -module AzureAD

4. Obtener una lista de todos los usuarios de Office 365 con PowerShell

Si necesita proporcionar una lista de usuarios y licencias de Office 365, utilice el cmdlet Get-MsolUser. Recuperará a todos los usuarios con una licencia válida en el inquilino de Office 365, junto con los parámetros DisplayName, City, Department y ObjectID.

Get-MsolUser | Select DisplayName, City, Department, ObjectID

Para ver la cantidad de licencias de cuenta, debe ejecutar el siguiente cmdlet:

Get-MsolAccountSku

Para enumerar los servicios disponibles, ejecute el siguiente script:

Get-MsolAccountSku | select -ExpandProperty ServiceStatus

5. Crear un nuevo usuario en Office 365 con PowerShell

Para crear un nuevo usuario, utilizamos el comando New-MsolUser:

New-MsolUser -UserPrincipalName JSmith@enterprise.onmicrosoft.com -DisplayName "John Smith"  -FirstName “John” -LastName “Smith”

El sistema generará la contraseña del usuario y los datos del estado de la licencia.

6. Eliminar un usuario de todos los sitios con PowerShell

Para eliminar un usuario de todos los sitios a la vez, usamos el siguiente comando:

Get-SPOSite | ForEach {Remove-SPOUser -Site $_.Url -LoginName " JSmith@enterprise.onmicrosoft.com"}

7. Cambiar una contraseña en Office 365 con PowerShell

Si necesita cambiar la contraseña de una cuenta, utilice el cmdlet Set-MsolUserPassword. Puede especificar una nueva contraseña como en el ejemplo siguiente u omitir el parámetro -NewPassword para que el sistema genere automáticamente una contraseña aleatoria.

Set-MsolUserPassword -UserPrincipalName JSmith@Netwrixqcspa.onmicrosoft.com -NewPassword P@SSw0rd!

8. Administrar la membresía de grupo en Office 365 con PowerShell

También podemos gestionar grupos de Office 365 mediante cmdlets de PowerShell. Para recuperar una lista de todos los grupos en Office 365, simplemente use el comando Get-MsolGroup. Para agregar usuarios a un grupo, use el comando Add-MsolGroupMember:

Add-MsolGroupMember -GroupObjectId 5b61d9e1-a13f-4a2d-b5ba-773cebc08eec -GroupMemberObjectId a56cae92-a8b9-4fd0-acfc-6773a5c1c767 -GroupMembertype user

GroupObjectId es el ID hexadecimal del grupo, que puede obtener con el comando Get-MsolGroup. GroupMemberObejctId es el ID del objeto de usuario, que puede encontrar ejecutando este comando:

Get-MsolUser | Select ObjectID.

Para eliminar un usuario de un grupo, utilice el cmdlet Remove-MsoGroupMember.

9. Crear una colección de sitios de SharePoint con PowerShell

También podemos crear una colección de sitios de SharePoint usando PowerShell:

New-SPOSite -Url "https://enterprise.sharepoint.com/sites/NewSite" -Owner "JSmith@enterprise.onmicrosoft.com" -StorageQuota "100" -Title "New Site"

10. Crear informes en Office 365 con PowerShell

PowerShell es una gran herramienta para realizar diferentes informes. A continuación se muestran algunos informes útiles de Office 365 realizados a través de PowerShell:

  • Detalles sobre todos los buzones de correo:
Get-mailbox | get-MailboxStatistics
  • Una lista de todos los buzones de correo en los que no se ha iniciado sesión durante los últimos 30 días:
Get-Mailbox –RecipientType 'UserMailbox' | Get-MailboxStatistics | Sort-Object LastLogonTime | Where {$_.LastLogonTime –lt ([DateTime]::Now).AddDays(-30) } | Format-Table DisplayName, LastLogonTime
  • Un informe sobre los remitentes y destinatarios de mayor volumen:
Get-MailTrafficTopReport
  • Un informe sobre todos los grupos y sus miembros:
function Get-AllO365Members
{
    Try
    {   
     $O365Groups=Get-UnifiedGroup
        foreach ($O365Group in $O365Groups) 
        { 
            Write-Host "Group Membership: " $O365Group.DisplayName -ForegroundColor Green
            Get-UnifiedGroupLinks –Identity $O365Group.Identity –LinkType Members
            Write-Host
        } 
    }
    catch [System.Exception]
    {
        Write-Host -ForegroundColor Red $_.Exception.ToString()   
    } 
}
Get-AllO365Members

Tenga en cuenta que la mayoría de los cmdlets de informes quedaron obsoletos en enero de 2018 y fueron reemplazados por la nueva API de informes de MS Graph. Por lo tanto, algunos informes ahora están disponibles solo en el Centro de cumplimiento y seguridad de Office 365.

Como puedes ver, la gestión de Office 365 con PowerShell es rápida y sencilla, al igual que en Microsoft Windows Server. No olvide auditar todos los cambios que realice en su entorno de Office 365; Le ayudará a solucionar problemas y recuperarse de ellos más rápido. Para aprender cómo configurar la auditoría nativa en su entorno de Office 365, consulte nuestra Guía de referencia rápida de auditoría de Exchange Online y la Guía de referencia rápida de auditoría de buzones de correo de Exchange Online. Si desea información procesable sobre lo que sucede en su entorno de Office 365, junto con informes flexibles, alertas proactivas de búsqueda similares a las de Google y mucho más, solicite una prueba gratuita de Netwrix Auditor para Office 365.

Artículos relacionados