Magic Quadrant™ para la gestión de acceso privilegiado 2025: Netwrix reconocida por cuarto año consecutivo. Descarga el informe.

Plataforma
Centro de recursosBlog
Diez comandos de PowerShell más útiles para Office 365

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

Sep 19, 2018

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 raramente se utilizan en conexión con Windows PowerShell. Pero acompáñame. En este artículo, te mostraré los diez cmdlets de Office 365 PowerShell más útiles para los administradores de sistemas. Quizás después de leer estas instrucciones, estarás de acuerdo en que PowerShell puede ser una herramienta valiosa, incluso para sistemas basados en la nube.

1. Conectándose a una instancia de Office 365 con PowerShell

Primero, necesitamos instalar el módulo de Office 365 para Windows PowerShell y conectar con la instancia de Office 365. Siga los siguientes pasos:

1. Descargue e instale el Microsoft Online Services Sign-In Assistant for IT Professionals RTW.

2. Importe el módulo de PowerShell de Online Services 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. Crear 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 sesión en 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, estaremos listos para administrar nuestra instancia de Office 365.

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

También podemos conectarnos por separado a Microsoft Exchange Online y Microsoft SharePoint Online. 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
      

Conectar a SharePoint Online es un poco diferente. Para administrar tu inquilino de SharePoint Online, primero necesitas descargar e instalar la característica SharePoint Online Management Shell. Luego ejecuta 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 los cmdlets de PowerShell de Office 365 disponibles

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

      Get-Command -module MSOnline
      
Image

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. Este recuperará 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 el número de licencias de cuenta, necesita ejecutar el siguiente cmdlet:

      Get-MsolAccountSku
      

Para listar los servicios disponibles, ejecute el siguiente script:

      Get-MsolAccountSku | select -ExpandProperty ServiceStatus
      
Image

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 mostrará los datos del estado de la contraseña y la licencia del usuario.

6. Eliminación de un usuario de todos los sitios con PowerShell

Para eliminar un usuario de todos los sitios a la vez, utilizamos 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 a continuación, o 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. Administración de la membresía de grupos en Office 365 con PowerShell

También podemos gestionar grupos de Office 365 usando cmdlets de PowerShell. Para obtener 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 puedes obtener del comando Get-MsolGroup. GroupMemberObejctId es el ID del objeto de usuario, que puedes encontrar ejecutando este comando:

      Get-MsolUser | Select ObjectID.
      

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

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

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

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

10. Creando informes en Office 365 con PowerShell

PowerShell es una excelente herramienta para hacer diferentes informes. Aquí hay algunos informes útiles de Office 365 realizados a través de PowerShell:

  • Detalles sobre todas las bandejas de entrada:
      Get-mailbox | get-MailboxStatistics
      
  • Una lista de todos los buzones de correo que no han tenido sesión iniciada en 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 fueron descontinuados en enero de 2018 y reemplazados por la nueva API de Informes de MS Graph. Por lo tanto, algunos informes ahora solo están disponibles en el Centro de Seguridad y Cumplimiento de Office 365.

Como puede ver, la gestión de Office 365 con PowerShell es rápida y fácil, 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 incidencias más rápidamente. Para aprender cómo configurar la auditoría nativa en su entorno de Office 365, eche un vistazo a nuestra Exchange Online Auditing Quick Reference Guide y Exchange Online Mailbox Auditing Quick Reference Guide. Si desea inteligencia práctica sobre lo que está sucediendo en su entorno de Office 365, junto con informes flexibles, alertas proactivas, búsqueda al estilo Google y mucho más, solicite una prueba gratuita de Netwrix Auditor for Office 365.

Compartir en

Aprende más

Acerca del autor

Asset Not Found

Jeff Melnick

Director de Ingeniería de Sistemas

Jeff es un ex Director de Ingeniería de Soluciones Globales en Netwrix. Es un bloguero, orador y presentador de Netwrix desde hace mucho tiempo. En el blog de Netwrix, Jeff comparte lifehacks, consejos y trucos que pueden mejorar drásticamente tu experiencia en la administración de sistemas.