Blogger templates

Imágenes del tema: Storman. Con la tecnología de Blogger.

Social Icons

About Me

Mi foto
Consultor con más de 18 años de experiencia y fundador de Systrust de Costa Rica en el 2006; ha desarrollado un gran cantidad de proyectos de infraestructura utilizando especialmente tecnologías Microsoft, Quest, OneIdentity, Parallels y Dell.

Featured Posts

Vistas de página en total

Blog Archive

Blog Archive

Blogroll

About

10 nov 2017

Cómo convertir un Username a SID con Powershell

- No hay comentarios
El siguiente ejemplo muestra como convertir el security identifier (SID) a un nombre de usuario (Username), utilizando la clase de .NET Framework llamada System.Security.Principal.SecurityIdentifier
$SID ='S-1-5-21-1924530255-1943933946-939161726-500'
$objSID = New-Object System.Security.Principal.SecurityIdentifier($SID)
$objUser = $objSID.Translate([System.Security.Principal.NTAccount])
Write-Host "Resolved user name: " $objUser.Value
El siguiente ejemplo muestra como convertir  un nombre de usuario (Username) al security identifier (SID), utilizando la clase de .NET Framework llamada System.Security.Principal.NTAccount
$user ='TestDomain\Morgan'
$objUser = New-Object System.Security.Principal.NTAccount($user)
$objSID = $objUser.Translate([System.Security.Principal.SecurityIdentifier])
Write-Host "Resolved user's sid: " $objSID.Value

9 nov 2017

Cómo buscar usuarios de AD que no han hecho logon con PowerShell

- No hay comentarios
Podemos usar el cmdlet de Active Directory de PowerShell Get-ADUser para consultar los usuarios del AD que nunca han ingresado al menos una vez al comprobar el valor del atributo lastlogontimestamp.

El siguiente ejemplo muestra los usuarios que no han hecho logon
Get-ADUser -Filter {(lastlogontimestamp -notlike "*")} | Select Name,DistinguishedName
El siguiente ejemplo muestra los usuarios que no han hecho logon, pero filtrando que sean usuarios habilitados.
Get-ADUser -Filter {(lastlogontimestamp -notlike "*") -and (enabled -eq $true)} | Select Name,DistinguishedName
El siguiente ejemplo muestra los usuarios que fueron creados en los últimos 30 días y que no han hecho logon.
$days = 30
$createdtime = (Get-Date).Adddays(-($days))
Get-ADUser -Filter {(lastlogontimestamp -notlike "*") -and (enabled -eq $true) -and (whencreated -lt $createdtime)} | Select Name,DistinguishedName
Este último ejemplo nos exporta la lista de usuarios a un archivo CSV

$createdtime = (Get-Date).Adddays(-(30))
Get-ADUser -Filter {(lastlogontimestamp -notlike "*") -and (enabled -eq $true) -and (whencreated -lt $createdtime)} | Select Name,DistinguishedName | Export-CSV "C:\\NeverLoggedOnUsers.csv" -NoTypeInformation -Encoding UTF8

10 oct 2017

Qué es una base de datos contenida (Contained Database)

- No hay comentarios
Una base de datos contenida o independiente es una base de datos que está aislada de otras bases de datos y de la instancia de SQL Server que hospeda la base de datos. Es decir, es una base de datos totalmente independiente que incluye todos los metadatos y opciones de configuración necesarios para definirla y no tiene dependencias de configuración en la instancia de Motor de base de datos de SQL Server donde esté instalada.

Este tipo de base de datos están disponibles desde la versión de SQL Server 2012, teniendo como característica que los usuarios pueden conectarse a la base de datos sin necesidad de tener un inicio de sesión a nivel de la instancia. Lo que ofrece como ventajas que las migraciones de bases de datos de una instancia a otra sean más sencillas, en caso de un failover en escenarios con Always On los usuarios podran conectarse sin requerir crear logins en la instancia secundaria de alojamiento.

Les recomiendo los siguientes videos:
Qué es? y Cómo crear una base de datos contenida.




Cómo mover una base de datos contenida

 

9 oct 2017

.NET Runtime Optimization Service causa un alto consumo de CPU (High Load)

- No hay comentarios
El servidor presenta un alto consumo de CPU y al revisar los procesos en ejecución con el Task Manager, se detecta que es el proceso .NET Runtime Optimizer Service el responsable.

Para resolver este issue siga el siguiente procedimiento:
Abrir un command prompt como administrator e ir al folder C:\Windows\Microsoft.NET\Framework\v4.0.30319
Ubicado en la carpeta ejecute el siguiente comando ngen.exe executequeueditems

El equipo iniciará un proceso de compilación de procesos y al terminar el consumo de CPU se normalizará.
Se recomienda reiniciar el equipo al finalizar el proceso.

4 sept 2017

DNS Web filters

- No hay comentarios

Si no contamos con herramientas que realicen el control de contenido de paginas web y que nos ayuden a prevenir adquirir algún Malware, recomiendo hacer uso de los DNS Web filters que facilitan la protección de todos los dispositivos habilitados para Internet en su casa.

Básicamente como funcionan los DNS Web filters, cuando un dispositivo (computadora, tablet, smartphone, entre otros) hace la solicitud de acceso a un sitio web lo primero que hace es efectuar una consulta al servidor de DNS, responsable de trasladar el nombre del sitio a una dirección IP. Los DNS Web son servidores DNS que además de hacer la resolución de nombres manejan una clasificación de los sitios, por lo tanto, dependiendo su clasificación el acceso puede ser denegado desde la misma resolución de nombres.

Entre algunos de los DNS Web filters que podemos encontrar son:
- Comodo Secure DNS
- OpenDNS
- Norton ConnectSafe

Para hacer uso de los DNS Web filters es necesario reemplazar los servidores DNS, ya sea en los routers para que aplique a todos los dispositivos conectados o en una computadora específica.

En las etiquetas de cada uno de los servicios sugeridos encontrarán las direcciones IP de los servidores DNS.

1 sept 2017

Cómo habilitar o deshabilitar la Camara con PowerShell

- No hay comentarios
Para quienes requieran deshabilitar la cámara de su equipo, por razones de seguridad y evitar un acceso no autorizado que pueda comprometer la privacidad, lo pueden hacer mediante un script de PowerShell con el siguiente código:

get-pnpdevice | Where-Object { $_.FriendlyName -match 'Integrated Webcam' } | Disable-PnpDevice -Confirm:$false
Para habilitarla utilice el siguiente código:
get-pnpdevice | Where-Object { $_.FriendlyName -match 'Integrated Webcam' } | Enable-PnpDevice -Confirm:$false

Importante:
Verificar el nombre de su dispositivo (Cámara) en el administrador de dispositivos y modifique el código.
Recomiendo crear un archivo .ps1 con el código y crear un Shortcut con la siguiente instrucción para su ejecución:
Powershell.exe -executionpolicy bypass -file "Z:\Script\DisableWebCam.ps1"

En la opción de configuración avanzada del Shortcut marque la opción Run as administrator porqué de no estar marcada, la ejecución mostrará el error Disable-PnpDevice: Generic failure

21 ago 2017

Lista de Eventos de Auditoria de Windows Server 2016 y Windows 10

- No hay comentarios

En este link podrán encontrar una lista detallada de los eventos de auditoría que se incluyen en Windows Server 2016 y Windows 10.

Windows 10 and Windows Server 2016 security auditing and monitoring reference

18 ago 2017

Cómo ver las contraseñas de las redes Wi-Fi

- No hay comentarios
Si no recordamos la contraseña de una red Wi-Fi a la que nos hemos conectado, podemos ver esta información desde la linea de comando (Admin Mode) con el siguiente comando:
netsh wlan show profile
Este comando nos mostrará el profile de las redes a las que nos hemos conectado.
Seleccionamos el profile de la red y ejecutamos el comando:
netsh wlan show profile WiFi-name key=clear
En la opción Key Content de Security Settings podemos ver la contraseña.

 Otra alternativa es ejecutar el siguiente código en PowerShell
(netsh wlan show profiles) | Select-String "\:(.+)$" | %{$name=$_.Matches.Groups[1].Value.Trim(); $_} | %{(netsh wlan show profile name="$name" key=clear)} | Select-String "Key Content\W+\:(.+)$" | %{$pass=$_.Matches.Groups[1].Value.Trim(); $_} | %{[PSCustomObject]@{ PROFILE_NAME=$name;PASSWORD=$pass }} | Format-Table -AutoSize
 

Abrir un sitio web desde PowerShell

- No hay comentarios
Si desea abrir directamente un sitio web desde la consola de PowerShell, puede utilizar el cmdlet Start-Process. Esto abrirá el sitio web en el navegador predeterminado:
Start-Process "http://systrust.blogspot.com"

Cómo hacer un CheckPoint de una VM en Hyper-v con PowerShell

- No hay comentarios
Ejecute el siguiente comando:
$snapshot = Checkpoint-VM -Name W12R2DC -SnapshotName DC-18082017 -Passthru

Nota:
Es importante considerar que la maquina virtual debe estar configurada para hacer Standard checkpoints en los Settings, ya que de los contrario se presentará el error 0x800423F4.

Si deseamos hacer un export del CheckPoint de modo que podamos hacer un clone de la máquina virtual o hacer un backup a una carpeta aparte utilizamos el siguiente comando:

$export = Export-VMSnapshot -VMSnapshot $snapshot -Path G:\Export –Passthru

Como ocultar un objeto en Active Directory Users and Computers

- No hay comentarios
Mediante la herramienta Active Directory Users and Computers podemos administrar objetos como computadoras, usuarios, grupos y OUs. Si por alguna razón requerimos ocultar un objeto de estos lo podemos hacer con el siguiente procedimiento:

1. Abrir la consola Active Directory Users and Computers
2. En el menu View seleccione Advanced Features
3. Seleccione el OU (objeto) a ocultar
4. Presione click derecho y seleccione properties
5. Seleccione el tab Attribute Editor
6. Presione el botón Filter y verifique que la opción Show only attributes that have values este desmarcada.
7. Busque el atributo ShowInAdvancedViewOnly
8. Presione doble click y seleccione el valor True

9. Presione el botón OK

Al hacer el procedimiento anterior el objeto estará oculto y la única forma de verlo es habilitando la opción Advanced Features del menu View.


Como listar los nuevos usuarios agregados al AD usando PowerShell

- No hay comentarios
1. Ejecute una consola de PowerShell con privilegios.
2. Ejecute el siguiente comando
$When = ((Get-Date).AddDays(-1))
Get-ADUser -filter {(whencreated -ge $When)}
Este comando va a listar los usuarios agregados en las últimas 24 horas.

Remover miembros de un grupo de AD Usando PowerShell

- No hay comentarios
1.Ejecute una consola de PowerShell con privilegios.
2. Ejecute el siguiente comando si usted desea remover uno o múltiples usuarios. (En este ejemplo los usuarios WilsonPais y administrator serán removidos del grupo DocumentReaders)
Remove-ADGroupMember -Identity "DocumentReaders" -Member "WilsonPais","administrator"

Referencias:
Remove-ADGroupMember
Add-ADGroupMember

Configurar servidor NTP en Windows Server 2016

- No hay comentarios
1. Ejecute los siguientes comandos de PowerShell:
w32tm /config /manualpeerlist:pool.ntp.org /syncfromflags:MANUAL
Stop-Service w32time
Start-Service w32time
2. Para forzar la sincronización ejecute el siguiente comando de PowerShell:
w32tm /resync
3. Verifique que estatus de la sincronización con el siguiente comando:
w32tm /query /status