Administrar Office 365 usando PowerShell
Office 365 incluye dos infraestructuras que se pueden administrar mediante PowerShell: Office 365 y Exchange Online. Cuando utilizamos el término "Office 365", el significado es la parte que sirve como "sobre" para todos los demás servicios/aplicaciones de Office 365.
Esta parte incluye componentes como usuario y objeto de grupo (Windows Azure Active Directory), administración de nombres de dominio, migración de correo, SSO (inicio de sesión único), administración de suscripciones y licencias, etc. En este artículo, revisaremos algunas tareas administrativas populares usando Potencia Shell.
Conéctese a Azure Active Directory
Antes de comenzar, conéctese a Azure Active Directory. Supongamos que no tiene el módulo Azure AD, instálelo primero.
Connect-MsolServiceSección A: Usuarios de Office 365 Administración de contraseñas
Establecer contraseña que nunca expiró para el usuario de Office 365
Sintaxis del comando de PowerShell:
Set-MsolUser -UserPrincipalName <Identity> -PasswordNeverExpires $TrueEjemplo de comando de PowerShell:
Set-MsolUser -UserPrincipalName John@o365info.com -PasswordNeverExpires $TrueDeshabilitar la opción La contraseña nunca expiró para el usuario de Office 365
Sintaxis del comando de PowerShell:
Set-MsolUser -UserPrincipalName <Identity> -PasswordNeverExpires $FalseEjemplo de comando de PowerShell:
Set-MsolUser -UserPrincipalName John@o365info.com -PasswordNeverExpires $FalseEstablecer contraseña que nunca expiró para TODOS los usuarios de Office 365 (Modo masivo)
Sintaxis del comando de PowerShell:
Get-MsolUser | Set-MsolUser -PasswordNeverExpires $TrueEstablecer una contraseña predefinida para el usuario de Office 365
Sintaxis del comando de PowerShell:
Set-MsolUserPassword -UserPrincipalName <Identity> -NewPassword <Password> -ForceChangePassword $FalseEjemplo de comando de PowerShell:
Set-MsolUserPassword -UserPrincipalName John@o365info.com -NewPassword ww#322x -ForceChangePassword $FalseEstablecer una contraseña predefinida para usuarios de Office 365 importados desde un archivo CSV
Paso 1: Exportar la cuenta de usuarios de Office 365.
Sintaxis del comando de PowerShell:
Get-MsolUser | Select UserPrincipalName | Export-CSVEjemplo de comando de PowerShell:
Get-MsolUser | Select UserPrincipalName | Export-CSV c:\temp\o365users.csvPaso 2: Establezca una contraseña predefinida.
Sintaxis del comando de PowerShell:
Import-CSV | % {Set-MsolUserPassword -userPrincipalName $_.UserPrincipalName -NewPassword -ForceChangePassword $False}Ejemplo de comando de PowerShell:
Import-CSV C:\Temp\o365users.csv | % {Set-MsolUserPassword -UserPrincipalName $_.UserPrincipalName -NewPassword AbcAs123 -ForceChangePassword $False}Cree un nuevo usuario de Office 365 y establezca una contraseña temporal única importando la información desde un archivo CSV
Ejemplo de comando de PowerShell:
Import-Csv -Path C:\Temp\Users.csv| ForEach-Object { New-MsolUser -UserPrincipalName $_.UserPrincipalName -FirstName $_.FirstName -LastName $_.LastName -DisplayName "$($_.FirstName) $($_.LastName)" -Password $_.Password -UsageLocation "US" }Establecer una contraseña temporal para un usuario específico
Sintaxis del comando de PowerShell:
Set-MsolUserPassword -UserPrincipalName <Identity> -NewPassword -ForceChangePassword $TrueEjemplo de comando de PowerShell:
Set-MsolUserPassword -UserPrincipalName John@o365info.com -NewPassword ww@322x -ForceChangePassword $TrueEstablecer una contraseña temporal para todos los usuarios de Office 365 (BulkMode)
Sintaxis del comando de PowerShell:
Get-MsolUser | Set-MsolUserPassword -NewPassword -ForceChangePassword $FalseEjemplo de comando de PowerShell:
Get-MsolUser | Set-MsolUserPassword -NewPassword ww#322x -ForceChangePassword $FalseEstablecer política de contraseñas de Office 365
Sintaxis del comando de PowerShell:
Set-MsolPasswordPolicy -DomainName -NotificationDays -ValidityPeriodEjemplo de comando de PowerShell:
Set-MsolPasswordPolicy -DomainName o365info.com -NotificationDays 15 -ValidityPeriod 180Mostrar la configuración de contraseña para todos los usuarios de Office 365
Sintaxis del comando de PowerShell:
Get-MsolUser | Select UserPrincipalName,PasswordNeverExpiresMostrar información sobre la política de contraseñas de Office 365
Sintaxis del comando de PowerShell:
Get-MsolPasswordPolicy -DomainNameEjemplo de comando de PowerShell:
Get-MsolPasswordPolicy -DomainName o365info.comSección B: Gestión del nombre principal de usuario (UPN)
Cambiar el nombre de inicio de sesión del usuario “(UPN)” para un usuario específico
Sintaxis del comando de PowerShell:
Set-MsolUserPrincipalname -UserPrincipalName <Identity> -NewUserPrincipalNameEjemplo de comando de PowerShell:
Set-MsolUserPrincipalname -UserPrincipalName John@o365info.onmicrosoFT.com -NewUserPrincipalName John@o365info.comCambie el nombre de inicio de sesión del usuario "(UPN)" para TODOS los usuarios de Office 365, excluya al administrador (BulkMode)
Sintaxis del comando de PowerShell:
Get-MsolUser | Where { -Not $_.UserPrincipalName.ToLower().StartsWith("admin@") } | ForEach { Set-MsolUserPrincipalName -ObjectId $_.ObjectId -NewUserPrincipalName ($_.UserPrincipalName.Split("@")[0] + "@") }Sección C: Gestión de licencias
Mostrar información sobre el servicio incluido en el plan de licencia específico
Sintaxis del comando de PowerShell:
Get-MsolAccountSku | Where-Object {$_.SkuPartNumber -eq 'ENTERPRISEPACK'} | ForEach-Object {$_.ServiceStatus}Mostrar información sobre el tipo de licencias disponibles
Sintaxis del comando de PowerShell:
Get-MsolAccountSkuMostrar información sobre todos los usuarios y su tipo de licencia.
Sintaxis del comando de PowerShell:
Get-MsolUser -All | FT Displayname,LicensesMostrar información sobre un plan de licencia específico
Sintaxis del comando de PowerShell:
Get-MsolAccountSku | Where-Object {$_.SkuPartNumber -eq 'ENTERPRISEPACK'}Mostrar información sobre la suscripción
Sintaxis del comando de PowerShell:
Get-MsolSubscription | FL DateCreated, NextLifecycleDate,SkuPartNumber,Status,TotalLicensesMostrar todos los usuarios con licencia
Sintaxis del comando de PowerShell:
Get-MsolUser | Where-Object {$_.isLicensed -like "True"} | FT DisplayName,licenses,islicensedMostrar todos los usuarios sin licencia
Sintaxis del comando de PowerShell:
Get-MsolUser | Where-Object {$_.isLicensed -like "False"}Mostrar información sobre las opciones de licencia asignadas al usuario
Sintaxis del comando de PowerShell:
(Get-MsolUser -UserPrincipalName ).Licenses[0].ServiceStatusMostrar información sobre las opciones de licencia asignadas a TODOS los usuarios
Sintaxis del comando de PowerShell:
Get-MsolUser -all | ForEach-Object { "============="; $_.DisplayName; $_.licenses[0].servicestatus }Licencias masivas: asignar licencia mediante un archivo CSV
Sintaxis del comando de PowerShell:
Import-CSV -Path <Path> | ForEach-Object { New-MsolUser -FirstName $_.FirstName -LastName $_.LastName -UserPrincipalName $_.UserPrincipalName -DisplayName "$($_.FirstName) $($_.LastName)" -LicenseAssignment '' -UsageLocation }Ejemplo de comando de PowerShell:
Import-CSV -Path C:\Temp\User-lic.csv | ForEach-Object { New-MsolUser -FirstName $_.FirstName -LastName $_.LastName -UserPrincipalName $_.UserPrincipalName -DisplayName "$($_.FirstName) $($_.LastName)" -LicenseAssignment 'o365info:ENTERPRISEPACK ' -UsageLocation US }Asignar licencia importando desde un archivo + Exportar a archivo y guardar contraseña
Sintaxis del comando de PowerShell:
Import-CSV -Path | ForEach-Object { New-MsolUser -FirstName $_.FirstName -LastName $_.LastName -UserPrincipalName $_.UserPrincipalName -DisplayName "$($_.FirstName) $($_.LastName)" -LicenseAssignment '' -UsageLocation } | Export-Csv -Path -NoTypeInformationEjemplo de comando de PowerShell:
Import-CSV -Path C:\Temp\User-lic.csv | ForEach-Object { New-MsolUser -FirstName $_.FirstName -LastName $_.LastName -UserPrincipalName $_.UserPrincipalName -DisplayName "$($_.FirstName) $($_.LastName)" -LicenseAssignment 'o365info:ENTERPRISEPACK ' -UsageLocation US } | Export-Csv -Path c:\temp\users-Password.csv -NoTypeInformationAsignar licencia para todos los Office 365 que no tienen licencia (BulkMode)
Paso 1: El primer comando mostrará una lista de los tipos de licencia disponibles.
Sintaxis del comando de PowerShell:
Get-MsolAccountSkuPaso 2: El segundo comando se utilizará para asignar la licencia.
Sintaxis del comando de PowerShell:
Get-MsolUser -UnlicensedUsersOnly | Set-MsolUserLicense -AddLicenses <License>Ejemplo de comando de PowerShell:
Get-MsolUser -UnlicensedUsersOnly | Set-MsolUserLicense -AddLicenses o365info:ENTERPRISEPACKAsignar servicio específico para usuario de Office 365
Referencia del número de pieza SKU:
- ENTERPRISEPACK (Plan Empresa E3)
- SUSCRIPCIÓN A OFICINA (Office ProPlus)
- MCOSTANDARD (Plan independiente 2 de Skype Empresarial en línea)
- SHAREPOINTWAC (Oficina en línea)
- SHAREPOINTENTERPRISE (SharePoint en línea)
- EXCHANGE_S_ENTERPRISE (Intercambio en línea)
- ESCRITORIOWOFFPACK (Office 365 (Plan K2)
- SHAREPOINTWAC (Oficina en línea)
- SHAREPOINTDESKLESS (Quiosco en línea de SharePoint)
- EXCHANGE_S_DESKLESS (Quiosco de Exchange en línea)
- EXCHANGEARCHIVE_ADDON (Archivo de Exchange Online para Exchange Online)
Paso 1: El primer comando mostrará información sobre el servicio que está incluido en el plan de licencia específico.
Sintaxis del comando de PowerShell:
Get-MsolAccountSku | Where-Object {$_.SkuPartNumber -eq 'ENTERPRISEPACK'} | ForEach-Object {$_.ServiceStatus}Paso 2: El segundo comando creará una variable denominada $OnlyOffice que “contendrá” los valores de todos los servicios deshabilitados además de Office.
$OnlyOffice = New-MsolLicenseOptions -AccountSkuId -DisabledPlans MCOSTANDARD,SHAREPOINTWAC,SHAREPOINTENTERPRISE,EXCHANGE_S_ENTERPRISEPaso 3: El tercer comando asignará una licencia a un usuario utilizando la variable para desactivar todos los demás servicios además del servicio de Office.
Set-MsolUserLicense -UserPrincipalName -LicenseOptions $OnlyOfficeEstablecer ubicación para usuarios sin licencia
Get-MsolUser -UnlicensedUsersOnly | Set-MsolUser -UsageLocation USEliminación masiva de usuarios sin licencia
Sintaxis del comando de PowerShell:
Get-MsolUser -all | Where-Object {$_.isLicensed -ne "true"}| Remove-MsolUser -ForceExportar información sobre usuarios sin Licencia
Sintaxis del comando de PowerShell:
Get-MsolUser | Where-Object {$_.isLicensed -like "False"} | Export-CSVEjemplo de comando de PowerShell:
Get-MsolUser | Where-Object {$_.isLicensed -like "False"} | Export-CSV C:\Temp\Unlicensed-Users.csv -NoTypeInformationSección D: Gestión de la ubicación de uso
Establecer ubicación de uso para un usuario específico
Sintaxis del comando de PowerShell:
Set-MsolUser -UserPrincipalName -UsageLocationEjemplo de comando de PowerShell:
Set-MsolUser -UserPrincipalName user@o365info.com -UsageLocation US"Reparar" la ubicación de uso para los usuarios de Office 365
Sintaxis del comando de PowerShell:
Get-MsolUser | Where-Object {$_.usagelocation -ne ""} | Set-MsolUser -UsageLocation ""Ejemplo de comando de PowerShell:
Get-MsolUser | Where-Object {$_.usagelocation -ne "US"} | Set-MsolUser -UsageLocation "US"Establecer ubicación de uso para usuarios de Office 365 sin licencia
Sintaxis del comando de PowerShell:
Get-MsolUser -UnlicensedUsersOnly | Set-MsolUser -UsageLocationEjemplo de comando de PowerShell:
Get-MsolUser -UnlicensedUsersOnly | Set-MsolUser -UsageLocation USEstablecer ubicación de uso para usuarios de un departamento específico
Sintaxis del comando de PowerShell:
Get-MsolUser | Where {$_.Department -eq ""} |Set-MsolUser -UsageLocationEjemplo de comando de PowerShell:
Get-MsolUser | Where {$_.Department -eq "mrkt"} |Set-MsolUser -UsageLocation USSección E: Mostrar y exportar información sobre el entorno de Office 365
Mostrar una lista de usuarios de Office 365
Sintaxis del comando de PowerShell:
Get-MsolUserMostrar una lista de administradores globales de Office 365
Sintaxis del comando de PowerShell:
Get-MsolRoleMember -RoleObjectId .ObjectId | Select DisplayName,EmailAddressEjemplo de comando de PowerShell:
Get-MsolRoleMember -RoleObjectId "Company Administrator".ObjectId | Select DisplayName,EmailAddressMostrar lista de servicios asignados al usuario
Sintaxis del comando de PowerShell:
Get-MsolUser -all | ForEach-Object { "============="; $_.DisplayName; $_.licenses[0].servicestatus }Mostrar lista de usuarios y su licencia actual
Sintaxis del comando de PowerShell:
Get-MsolUser | Where-Object {$_.isLicensed -eq "TRUE"} | Select Displayname,LicensesEncuentre usuarios UPN con un sufijo de nombre de dominio específico
Sintaxis del comando de PowerShell:
Get-MsolUser -DomainName | FT UserPrincipalNameEjemplo de comando de PowerShell:
Get-MsolUser -DomainName o365info.com | FT UserPrincipalNameMostrar una lista de usuarios de un departamento específico
Sintaxis del comando de PowerShell:
Get-MsolUser | Where {$_.Department -eq ""}Ejemplo de comando de PowerShell:
Get-MsolUser | Where {$_.Department -eq "Mrkt"}Exportar lista de usuarios y su licencia a un archivo CSV
Sintaxis del comando de PowerShell:
Get-MsolUser | Where-Object {$_.isLicensed -eq "TRUE"} | Select Displayname,LicensesEjemplo de comando de PowerShell:
Get-MsolUser | Where-Object {$_.isLicensed -eq "TRUE"} | Select Displayname,Licenses > c:\temp\Licenses.txtExportar información sobre el buzón de correo de los usuarios de Office 365 a un archivo CSV | Exportar lista de todos los usuarios de Office 365
Sintaxis del comando de PowerShell:
Get-MsolUser | Select DisplayName,FirstName,LastName,UserPrincipalName,MobilePhone,PhoneNumber,Office,Fax,StreetAddress,PostalCode,City,Country,State,Department,IsLicensed,PreferredLanguage,Title,UsageLocation | Export-CSVExportar información sobre el buzón de correo de los usuarios de Office 365 a un archivo CSV | Exportar lista de todos los usuarios de Office 365 con Licencia
Sintaxis del comando de PowerShell:
Get-MsolUser | Where-Object {$_.isLicensed -eq "TRUE"} | Export-CSVExportar información sobre el buzón de correo de los usuarios de Office 365 a un archivo CSV | Exportar lista de todos los usuarios de Office 365 sin licencia
Sintaxis del comando de PowerShell:
Get-MsolUser -UnlicensedUsersOnly | Export-CSVExportar lista de usuarios de o365 UPN + dirección de correo electrónico a un archivo HTML
Sintaxis del comando de PowerShell:
$htstyle = "Get-MsolUser | Select UserPrincipalName,FirstName,LastName,DisplayName,@{Name="ProxyAddresses";Expression={$_.ProxyAddresses | ForEach-Object {$_.tostring() + "`n"}}} | ConvertTo-Html -head $htstyle -Body "Office 365 users list" | Out-File c:\temp\o365users.htmSección F: Papelera de reciclaje de Office 365
Eliminar cuenta de usuario de Office 365
Sintaxis del comando de PowerShell:
Remove-MsolUser -UserPrincipalNameEjemplo de comando de PowerShell:
Remove-MsolUser -UserPrincipalName John@o365info.comEliminar cuenta de usuario de Office 365 sin licencia (BulkMode)
Sintaxis del comando de PowerShell:
Get-MsolUser -all | Where-Object {$_.isLicensed -ne "true"}| Remove-MsolUser -ForceRestaurar la cuenta de usuario eliminada utilizando el UPN de usuario
Sintaxis del comando de PowerShell:
Restore-MsolUser -UserPrincipalName -AutoReconcileProxyConFLicts -NewUserPrincipalNameEjemplo de comando de PowerShell:
Restore-MsolUser -UserPrincipalName user1@o365info.com -AutoReconcileProxyConFLicts -NewUserPrincipalName user1@o365info.comRestaurar la cuenta de usuario eliminada mediante el GUID de usuario
Sintaxis del comando de PowerShell:
Restore-MsolUser -ObjectId -AutoReconcileProxyConFLicts -NewUserPrincipalNameEjemplo de comando de PowerShell:
Restore-MsolUser -ObjectId b9e82087-ad92-4632-a219-d779c29d2edd -AutoReconcileProxyConFLicts -NewUserPrincipalName user1@o365info.comEliminar (eliminar) una cuenta de usuario específica de la papelera de reciclaje
Sintaxis del comando de PowerShell:
Remove-MsolUser -ObjectId -RemoveFromRecycleBin -ForceEjemplo de comando de PowerShell:
Remove-MsolUser -ObjectId b9e82087-ad92-4632-a219-d779c29d2edd -RemoveFromRecycleBin -ForceEliminar (eliminar) TODAS las cuentas de usuario de la papelera de reciclaje (BulkMode)
Sintaxis del comando de PowerShell:
Get-MsolUser -ReturnDeletedUsers | Remove-MsolUser -RemoveFromRecycleBin -ForceMostrar una lista de TODAS las cuentas de usuario eliminadas
Sintaxis del comando de PowerShell:
Get-MsolUser -ReturnDeletedUsers | FL UserPrincipalName,ObjectIDMostrar información sobre una cuenta de usuario eliminada específica
Sintaxis del comando de PowerShell:
Get-MsolUser -ReturnDeletedUsers -SearchString | FL UserPrincipalName, ObjectIDEjemplo de comando de PowerShell:
Get-MsolUser -ReturnDeletedUsers -SearchString user1@o365info.com | FL UserPrincipalName,ObjectIDEliminar cuenta de usuario de Office 365
Sintaxis del comando de PowerShell:
Remove-MsolUser -UserPrincipalNameEjemplo de comando de PowerShell:
Remove-MsolUser -UserPrincipalName John@o365info.com