PowerShell 365 obtener fecha último cambio contraseñas usuarios

Exportar a CSV la fecha del último cambio contraseñas de las cuentas Office 365

1. Enlaces internos 2. Enlaces externos Desde el centro de administración de MS 365 se puede establecer una directiva de expiración de contraseñas (“Inicio > Configuración > Configuración de la organización” pestaña “Seguridad y privacidad”). La periodicidad de renovación dependerá de la criticidad de la información que maneja una cuenta, en general 90 días puede ser un periódo adecuado. Antes de empezar instalar el módulo MSOnline (utilidades Azure Active Directory) abriendo la consola PS como admin: []

Examinar el log de eventos con PowerShell

Scripting en MS Win con PowerShell

1. Todos los eventos en la computadora local 2. Obtener X entradas más recientes 3. Filtrar por tipo 4. Filtrar por tipo y gravedad 5. Eventos con una palabra clave 6. Mostrar las propiedades de un evento 7. Eventos en un intervalor de tiempo 8. Enlaces internos 9. Enlaces externos Para acceder en modo gráfico Win+R y ejecuta eventvwr. Los siguientes comandos son básicos, PS permite cosas interesantes como consultar el log de eventos de máquinas remotas. []

Buscar archivos no accedidos en X días

Scripts PowerShell

En mi portal de PSFabrik encontrarás más referencias agrupadas por temás. Llega el fin de año y queremos comenzar el nuevo con buenos propósitos, dentro de la guía de buenas prácticas de gestión de documentos en el repositorio compartido está la sugerencía de retirar todos los archivos no accedidos en varios años y guardarlos en un trastero digital, me pongo manos a la obra y programo un script (muy mejorable) pero sólo me lleva unos minutos consultando aquí y allá, el script debe aceptar dos parámetros, la ruta donde debemos buscar y el número de días que lleva el archivo sin ser accedido, el resultado se exporta a un fichero CSV para que los responsables de cada carpeta tomen cartas en el asunto, una mejora futura es que mueva estos archivos a otra ubicación (manteniendo la ruta actual). []

Administración de servicios con Powershell

Administración de Windows Server con PowerShell

El primer comando que uso es Get-Service para obtener un listado de los servicios de la máquina. También puedo buscar un servicio concreto con el parámetro -Name (WinRM es Windows Remote Management): Puedo buscar los servicios que comienzan con un texto Get-Service "win*". Ahora aplico un filtro con un pipe para obtener los servicios que están corriendo: Get-Service | Where-Object {$_.Status -eq "Running"} Podemos consultar los servicios en diferentes máquinas con Get-Service -ComputerName 'server1','server2','server3'. []

Administración de usuarios y grupos locales con Powershell

Administración de Windows Server con PowerShell

Antes de comenzar he tenido que instalar WMF (Windows Management Framework) 5.1 para Windows Server 2012 R2 y después el módulo necesario install-module -name LocalAccount (seguir este enlace). Podemos hacer lo mismo usando la interfaz gráfica que se puede lanzar con lusrmgr.msc. El cmdlet Get-Module permite obtener información de los módulos PS importados en la sesión. Get-Module -ListAvailable -Name Microsoft.Powershell.LocalAccounts Para listar los cmdlets: Get-Command -Module Microsoft.Powershell.LocalAccounts Administración de usuarios locales Obtenemos información de las cuentas de usuario locales: []

Abrir aplicaciones de administración desde línea de comandos

Administración de Windows Server con PowerShell

La gran mayoría de aplicaciones para administradores de Windows Server son MMC (Microsoft Management Console) accesibles usando el botón inicio pero también se pueden lanzar desde la consola PS, se puede combinar con el comando runas para ejecutar una herramienta con privilegios elevados o bajo otra cuenta del sistema. Algunos de estos comandos es posible que no funcionen si no tienes el rol instalado. Aquí sólo cito algunos que me interesan: []

Habilitar escritorio remoto y reglas del Firewall [borrador]

Administración de Windows Server con PowerShell

El servicio RDP utiliza por defecto el puerto TCP 3389 (se puede implementar sobre un servidor IIS de manera que acepte conexiones en el puerto 443 mediante conexiones HTTPS “Remote Desktop Gateway”). Desde la administración gráfica del servidor es muy sencillo: Desde la línea de comandos se puede usar sconfig: Yo he tenido que bajar el nivel de seguridad al mínimo para poder conectarme desde otra máquina con el usuario “Administrador”. []

Configurar la hora, fecha y zona horaria

Administración de Windows Server con PowerShell

Establecer la fecha-hora El cmdlet Get-Date muestra la fecha-hora del sistema, para establecer la fecha usamos Set-Date. Establezco la fecha sumando 3 días a la actual: Set-Date -Date (Get-Date).AddDays(3) Podemos usar un número negativo para restar fechas o agregar / restar horas con el método de la clase AddHours. Zona horaria Consultar la zona horaria establecida: tzutil /g Para consultar las posibles zonas horarias: tzutil /l | more Copia la cadena literal entre las opciones para establecer una nueva zona horaria: []

Apagar, reiniciar y cerrar sesión

PowerShell

Apagar el equipo Apagado del equipo con Stop-Computer, también podemos hacerlo remotamente y aplicarlo sobre un conjunto de equipos: PS> Stop-Computer -ComputerName "Server01", "Server02", "localhost" Puedo usar la ayuda con Get-Help Stop-Computer para ampliar la información y consultar todos los parámetros. Reiniciar PS> Restart-Computer Al igual que el comando anterior podemos aplicar el reinicio sobre varias computadoras remotas con -ComputerName. Podemos usar el modificador -Credential para especificar un usuario del dominio. []

Cambiar el nombre al servidor

PowerShell y Windows Server

Aunque se puede hacer con “sconfig” (utilidad para configurar el servidor por línea de comandos) lo voy a hacer con PS: Rename-Computer -NewName "ServerCore" Compruebo con el comando hostname que aún no ha cambiado, requiere reiniciar el equipo para que tenga efecto, ahora ya sabemos como hacerlo con PS con el cmdlet Restart-Computer. Puedo usar el parámetro -LocalCredential Administrador o si estoy dentro de un dominio -DomainCredential dominio\Administrador. Si quiero hacerlo remotamente puedo usar como en otras ocasiones el parámetro -ComputerName. []