POWERSHELL: Dica de depuração de código.
Enviado: 12 Jan 2023 11:19
Amiguinhos,
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.
Abaixo deixo um código para ativação do TLS 1.2 no Windows, caso estejam tendo problemas com este protocolo.
Caso queiram ativar via registro basta executar os dois .REG à seguir.
AtivarHTTPProtocolo.reg
AtivarTLS12Protocolo.reg
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