Então .. Eu não sou um especialista em scripts do PowerShell .. Eu tenho esse script e estou tentando adicionar uma lista de sites ao arquivo hosts para bloquear. Não consigo descobrir como adicionar cada domínio linha por linha em vez de tudo em uma linha.
Eu queria saber se alguém poderia me ajudar ou me apontar na direção certa.
Segue o código que tenho:
param([string]$DesiredIP = "127.0.0.1"
,[string]$Hostname = @(Get-Content ".\src\hosts")
,[bool]$CheckHostnameOnly = $false)
#Bætir við færslu í HOSTS skránna.
#Krefst -RunAsAdministrator
$hostsFilePath = "$($Env:WinDir)\system32\Drivers\etc\hosts"
$hostsFile = Get-Content $hostsFilePath
Write-Host "Verið að bæta við $desiredIP fyrir $Hostname í hosts skránna" -ForegroundColor Gray
$escapedHostname = [Regex]::Escape($Hostname)
$patternToMatch = If ($CheckHostnameOnly) { ".*\s+$escapedHostname.*" } Else { ".*$DesiredIP\s+$escapedHostname.*" }
If (($hostsFile) -match $patternToMatch) {
Write-Host $desiredIP.PadRight(20," ") "$Hostname - not adding; er nú þegar í hosts skránni" -ForegroundColor DarkYellow
}
Else {
Write-Host $desiredIP.PadRight(20," ") "$Hostname - að bæta við í hosts skránna... " -ForegroundColor Yellow
Add-Content -Encoding UTF8 $hostsFilePath ("$DesiredIP".PadRight(20, " ") + "$Hostname")
Write-Host " Búið!"
}
Read-Host -Prompt "Allt Klárt! Ýttu á ENTER til að loka glugganum ☺"
Então, meu arquivo hosts termina assim:
127.0.0.1 website.com test.com google.com pirates.net loremipsum.org filler.co.uk en.kremlin.ru test.com testing.com
Meu arquivo .\src\hosts de onde estou obtendo minha lista se parece com isso:
website.com
test.com
google.com
pirates.net
loremipsum.org
filler.co.uk
en.kremlin.ru
test.com
testing.com
Desculpas antecipadamente. Comentários e Strings estão em meu idioma nativo, não em inglês
Os hosts são escritos em uma única linha porque seu código não está em loop por eles. Eu adicionei
foreach($line in $Hostname)
ao código. O loop permite adicionar os hosts ao arquivo linha por linha.Obs: Tive que traduzir as saídas em inglês para entender o que estava acontecendo e as mantive no meu código acima. Você precisa alterá-los de volta para o seu idioma.