Created
October 21, 2017 16:34
-
-
Save ks7000/899ecf8bc59e1bb43afea6de95e6652a to your computer and use it in GitHub Desktop.
Guion para bloquear y desbloquear la escritura en dispostivos usb en Windows con Powershell.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Script para bloquear y desbloquear la escritura en dispostivos usb. | |
# Autor: Francisco Palenzuela Luque @fpalenzuela | |
# Blog: https://aprendizdesysadmin.com/powershell_-contruyendo-nuestro-usb-write-blocker/ | |
# Constantes y variables | |
$RegRutaCompleta = 'hklm:\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies' | |
$RegRuta = 'hklm:\SYSTEM\CurrentControlSet\Control' | |
$ExisteRegistro = Test-Path -path $RegRutaCompleta | |
$UsbBloqueado = '0' # 0=Desploqueado, 1=Bloqueado | |
$EstadoBloqueo = '0' | |
# FUNCIONES | |
Function CambioValor{ | |
#Dependiendo de lo que le indiques activa o desactiva el bloqueo del usb. | |
write-host ('---------------------------------------------') | |
$Pregunta = Read-Host -Prompt '¿Que desea hacer, 0 desactiva bloqueo y 1 activa bloqueo' | |
If (($Pregunta) -eq 0) { | |
Set-ItemProperty -path $RegRutaCompleta -Name WriteProtect -Value "00000000" | |
CompruebaValor | |
} else { | |
Set-ItemProperty -path $RegRutaCompleta -Name WriteProtect -Value "00000001" | |
CompruebaValor | |
} | |
} | |
function CompruebaValor{ | |
#Comprueba el valor de la entrada del registro. | |
$EstadoBloqueo = Get-ItemProperty -path $RegRutaCompleta | Select-Object -Property WriteProtect | |
If (($EstadoBloqueo.WriteProtect) -eq '1') { | |
Write-Host -BackgroundColor DarkGreen -ForegroundColor Black ('- USB BLOQUEADO, NO SE PUEDE ESCRIBIR') | |
} else { | |
Write-Host -BackgroundColor DarkRed -ForegroundColor White ('- USB DESBLOQUEADO - AHORA SE PUEDE ESCRIBIR') | |
} | |
} | |
Clear-Host | |
If (($ExisteRegistro) -eq $False) { | |
Write-Host ('- No existe la ruta {0}' -f $RegRutaCompleta) | |
Write-Host ('- Creando la ruta {0}' -f $RegRutaCompleta) | |
New-Item -path $RegRuta -Name StorageDevicePolicies | Out-Null | |
Write-Host ('- Creando entrada WriteProtect con valor {0}' -f $EstadoBloqueo) | |
New-ItemProperty -path $RegRutaCompleta -Name WriteProtect -Value "00000000" -PropertyType DWORD | Out-Null | |
} Else { | |
Write-Host ('- Ya existe la ruta {0}' -f $RegRutaCompleta) | |
Write-Host ('- Comprobamos el valor') | |
} | |
CompruebaValor | |
CambioValor |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment