Tem PowerShell instalado em sua máquina?
Este utilitário é uma enchancement aos comandos do DOS. Geralmente fica instalado na pasta C:\Windows\System32\WindowsPowerShell\vX.X.
Não uso muito esta ferramenta de scripts mas dou umas pentelhadas de vez em quando.
Legal é que ela possui um depurador que ajuda no aprendizado.
Para testar basta executar o aplicativo em C:\Windows\System32\WindowsPowerShell\vX.X\PowerShell_ise.exe
Copie o código abaixo cole na primeira parte do depurador e pressione o botão verde de executar e veja as informações do seu Windows sendo apresentadas na pasta do centro.
Código: Selecionar todos
function Get-WindowsKey
{
param ($targets = ".")
$hklm = 2147483650
$regPath = "Software\Microsoft\Windows NT\CurrentVersion"
$regValue = "DigitalProductId4"
Foreach ($target in $targets) {
$productKey = $null
$win32os = $null
$wmi = [WMIClass]"\\$target\root\default:stdRegProv"
$data = $wmi.GetBinaryValue($hklm,$regPath,$regValue)
$binArray = ($data.uValue)[52..66]
$charsArray = "B","C","D","F","G","H","J","K","M","P","Q","R","T","V","W","X","Y","2","3","4","6","7","8","9"
For ($i = 24; $i -ge 0; $i--) {
$k = 0
For ($j = 14; $j -ge 0; $j--) {
$k = $k * 256 -bxor $binArray[$j]
$binArray[$j] = [math]::truncate($k / 24)
$k = $k % 24
}
$productKey = $charsArray[$k] + $productKey
If (($i % 5 -eq 0) -and ($i -ne 0)) {
$productKey = "-" + $productKey
}
}
$win32os = Get-WmiObject Win32_OperatingSystem -computer $target
$obj = New-Object Object
$obj | Add-Member Noteproperty "Nome do Computador" -value $target
$obj | Add-Member Noteproperty "Edição do Windows" -value $win32os.Caption
$obj | Add-Member Noteproperty "Versão do Service Pack" -value $win32os.CSDVersion
$obj | Add-Member Noteproperty "Arquitetura" -value $win32os.OSArchitecture
$obj | Add-Member Noteproperty "Número da Versão" -value $win32os.BuildNumber
$obj | Add-Member Noteproperty "Registado para" -value $win32os.RegisteredUser
$obj | Add-Member Noteproperty "Canal de origem (ProductID)" -value $win32os.SerialNumber
$obj | Add-Member Noteproperty "Chave do produto (ProductKey)" -value $productkey
$obj
}
}
Get-WindowsKey
Código: Selecionar todos
$arch=(Get-WmiObject -Class Win32_operatingsystem).Osarchitecture
$reg32bWinHttp = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp"
$reg64bWinHttp = "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp"
$regWinHttpDefault = "DefaultSecureProtocols"
$regWinHttpValue = "0x00000a00"
$regTLS11 = "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client"
$regTLS12 = "HKLM:SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client"
$regTLSDefault = "DisabledByDefault"
$regTLSValue = "0x00000000"
Clear-Host
Write-Output "Creating Registry Keys...`n"
Write-Output "Creating registry key $reg32bWinHttp\$regWinHttpDefault with value $regWinHttpValue"
IF(!(Test-Path $reg32bWinHttp)) {
New-Item -Path $reg32bWinHttp -Force | Out-Null
New-ItemProperty -Path $reg32bWinHttp -Name $regWinHttpDefault -Value $regWinHttpValue -PropertyType DWORD -Force | Out-Null
}
ELSE {
New-ItemProperty -Path $reg32bWinHttp -Name $regWinHttpDefault -Value $regWinHttpValue -PropertyType DWORD -Force | Out-Null
}
IF($arch -eq "64-bit") {
Write-Output "Creating registry key $reg64bWinHttp\$regWinHttpDefault with value $regWinHttpValue"
IF(!(Test-Path $reg64bWinHttp)) {
New-Item -Path $reg64bWinHttp -Force | Out-Null
New-ItemProperty -Path $reg64bWinHttp -Name $regWinHttpDefault -Value $regWinHttpValue -PropertyType DWORD -Force | Out-Null
}
ELSE {
New-ItemProperty -Path $reg64bWinHttp -Name $regWinHttpDefault -Value $regWinHttpValue -PropertyType DWORD -Force | Out-Null
}
}
Write-Output "Creating registry key $regTLS11\$regTLSDefault with value $regTLSValue"
IF(!(Test-Path $regTLS11)) {
New-Item -Path $regTLS11 -Force | Out-Null
New-ItemProperty -Path $regTLS11 -Name $regTLSDefault -Value $regTLSValue -PropertyType DWORD -Force | Out-Null
}
ELSE {
New-ItemProperty -Path $regTLS11 -Name $regTLSDefault -Value $regTLSValue -PropertyType DWORD -Force | Out-Null
}
Write-Output "Creating registry key $regTLS12\$regTLSDefault with value $regTLSValue"
IF(!(Test-Path $regTLS12)) {
New-Item -Path $regTLS12 -Force | Out-Null
New-ItemProperty -Path $regTLS12 -Name $regTLSDefault -Value $regTLSValue -PropertyType DWORD -Force | Out-Null
}
ELSE {
New-ItemProperty -Path $regTLS12 -Name $regTLSDefault -Value $regTLSValue -PropertyType DWORD -Force | Out-Null
}
Write-Output "`nComplete!"
AtivarHTTPProtocolo.reg
Código: Selecionar todos
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp]
"DefaultSecureProtocol"=dword:00000a00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp\Passport Test]
"ConfigVersion"=dword:00000000
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp\Tracing]
Código: Selecionar todos
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:00000000
