Powershell

Para ejecutar el powershell desde el cuadro buscar→ powershell o desde consola ejecutamos <sxh>Powershell</sxh>

El prompt cambiará y aparecerá como PS C:\>

Para saber la versión que tenemos de powershell Abrimos una sesión de powershell y ejecutamos <sxh>$PSVersionTable</sxh> El resultado será algo así <sxh>PS C:\Users\Administrador> $PSVersionTable Name Value —- —– PSVersion 4.0 WSManStackVersion 3.0 SerializationVersion 1.1.0.1 CLRVersion 4.0.30319.42000 BuildVersion 6.3.9600.19170 PSCompatibleVersions {1.0, 2.0, 3.0, 4.0} PSRemotingProtocolVersion 2.2 </sxh> También podemos usar $PSVersionTable.PSVersion para saber la versión y el número de actualización de la misma

En este caso es una versión vieja 4.0 que viene por defecto con un windows server 2012

Para actualizar la versión debemos de descargarla desde la página de Microsoft

Versión 6

Esta nueva versión de Powershell, no podemos actualizarla como con las versiones anteriores (las que van desde la 1.0 a la 5.1 ). Hay que quitarlas antes de proceder a instalar la versión 6, que hay que descargarla desde https://github.com/PowerShell/PowerShell

Sacar información del directorio activo

Lo primero es carga el módulo del AD desde el powershell con <sxh>import-module ActiveDirectory</sxh> y si queremos sacar un listado po pantalla de equipos de nuestro dominio <sxh> Get-ADComputer -Filter * -Property * | Format-Table Name,OperatingSystem,OperatingSystemServicePack,OperatingSystemVersion -Wrap –Auto</sxh>

que queremos el mismo listado para abrirlo desde un excel <sxh> Get-ADComputer -Filter * -Property * | Select-Object Name,OperatingSystem,OperatingSystemServicePack,OperatingSystemVersion | Export-CSV AllWindows.csv -NoTypeInformation -Encoding UTF8</sxh>

Equpos que no han cambiado la password en 30 días <sxh> $d = [DateTime]::Today.AddDays(-30)

Get-ADComputer -Filter ‘PasswordLastSet -lt $d’ -Properties PasswordLastSet | FT Name,PasswordLastSet</sxh>

Usuarios que no han cambiado su contraseña en tres 180 días <sxh> $d = [DateTime]::Today.AddDays(-180)

Get-ADUser -Filter ‘PasswordLastSet -lt $d’ -Properties PasswordLastSet | FT Name,PasswordLastSet</sxh>

Usuarios que no requieren password <sxh>Get-ADUser -Filter 'userAccountControl -band 32' | FT Name</sxh>

Otro valores que podemos utilizar en vez de 32

Active Directory userAccountControl Values: Normal Day to Day Values: =========================== 512 – Enable Account 514 – Disable account 544 – Account Enabled – Require user to change password at first logon 4096 – Workstation/server 66048 – Enabled, password never expires 66050 – Disabled, password never expires 262656 – Smart Card Logon Required 532480 – Domain controller All Other Values: =========================== 1 – script 2 – accountdisable 8 – homedir_required 16 – lockout 32 – passwd_notreqd 64 – passwd_cant_change 128 – encrypted_text_pwd_allowed 256 – temp_duplicate_account 512 – normal_account 2048 – interdomain_trust_account 4096 – workstation_trust_account 8192 – server_trust_account 65536 – dont_expire_password 131072 – mns_logon_account 262144 – smartcard_required 524288 – trusted_for_delegation 1048576 – not_delegated 2097152 – use_des_key_only 4194304 – dont_req_preauth 8388608 – password_expired 16777216 – trusted_to_auth_for_delegation

Lanzar la consola de powershell como administrador

<sxh>start-process powershell -verb runas</sxh>

Iniciar sesión en un equipo remoto

PowerShell está bloqueado de forma predeterminada, por lo que deberá habilitar PowerShell Remoting antes de usarlo.

Previamente en el equipo destino deberemos de tener habilitado la conexión remota. Para habilitarla : <sxh>Enable-PSRemoting -Force</sxh> Para conectarnos al equipo lanzamos el siguiente comando desde el equipo origen <sxh>Enter-PSSession miequipo.dominio.local -Credential USUARIO</sxh>

Para salir <sxh>Exit-PSSession</sxh>

Reinicio o apagado programado

https://www.sysadmit.com/2019/02/windows-programar-apagado-reinicio-powershell.html

referencias

http://blogs.itpro.es/rtejero/2014/10/13/algunos-cmdlets-interesantes-de-directorio-activo-gracias-a-un-rap-as-a-service/

http://blogs.technet.com/b/askds/archive/2010/02/04/inventorying-computers-with-ad-powershell.aspx

http://www.joseangelfernandez.es/blog/category/programacion/powershell/

http://blogs.technet.com/b/heyscriptingguy/archive/2013/11/23/using-scheduled-tasks-and-scheduled-jobs-in-powershell.aspx#

http://blogs.itpro.es/rtejero/2014/04/02/instalar-powershell-4-0-en-nuestros-clientes-y-servidores-windows-management-framework-4-0/

http://blogs.itpro.es/rtejero/2014/09/15/errores-de-netlogon-no_client_site-parsear-con-powershell/

Using PowerShell to Remove Virtual Machine Snapshots in VMware ESXi 4.1 http://pipe2text.com/?page_id=1953

https://respontodo.com/como-ejecutar-comandos-de-powershell-en-equipos-remotos/

http://woshub.com/pswindowsupdate-module/

http://woshub.com/using-powershell-behind-a-proxy/

https://www.sysadmit.com/2021/11/windows-powershell-error-instalar-nuget.html

https://reparar.info/pswindowsupdate-administracion-de-actualizaciones-de-windows-desde-powershell/

https://blog.velingeorgiev.com/install-powershell-5-nuget-sharepointpnppowershellonline-behind-proxy