# Exemplo de variáveis
$nome = "Servidor01"
$ips = @("192.168.1.1", "10.0.0.1")
$ativo = $true
$servidor = Get-Service
# Iniciar sessão remota
Enter-PSSession -ComputerName servidor01
# Executar comando em múltiplos servidores
Invoke-Command -ComputerName servidor01,
servidor02 -ScriptBlock { Get-Service }
Test-Connection -ComputerName servidor01 -Count 4
Test-NetConnection -ComputerName srv01 -Port 443
Get-NetIPAddress | Format-Table
New-NetIPAddress -InterfaceIndex 12 -IPAddress 192.168.1.100 -PrefixLength 24 -DefaultGateway 192.168.1.1
Set-DnsClientServerAddress -InterfaceIndex 12 -ServerAddresses ("8.8.8.8","8.8.4.4")
Disable-NetAdapter -Name "Ethernet" -Confirm:$false
# Script de diagnóstico completo
$servidor = "servidor01"
$report = @()
# Verifica conectividade
$ping = Test-Connection $servidor -Count 1 -Quiet
$report += "Conectividade: $ping"
# Testa portas críticas
$portas = @(80, 443, 3389, 22)
foreach ($porta in $portas) {
$status = Test-NetConnection $servidor -Port $porta -WarningAction SilentlyContinue
$report += "Porta $porta: $($status.TcpTestSucceeded)"
}
# Exporta relatório
$report | Out-File "C:\Diagnostico-$servidor.txt"
# Configurador de rede parametrizado
Param(
[string]$Computador,
[string]$IP,
[string]$Mascara = "24",
[string]$Gateway,
[string[]]$DNS = @("8.8.8.8", "8.8.4.4")
)
# Executa remotamente
Invoke-Command -ComputerName $Computador -ScriptBlock {
Param($IP, $Mascara, $Gateway, $DNS)
# Obtém índice da interface
$if = Get-NetAdapter -Name "Ethernet" |
Select-Object -ExpandProperty ifIndex
# Configura IP e Gateway
New-NetIPAddress -InterfaceIndex $if -IPAddress $IP `
-PrefixLength $Mascara -DefaultGateway $Gateway
# Configura DNS
Set-DnsClientServerAddress -InterfaceIndex $if `
-ServerAddresses $DNS
} -ArgumentList $IP, $Mascara, $Gateway, $DNS
# Alerta de servidor offline
$servidores = @("srv01", "srv02", "srv03")
foreach ($srv in $servidores) {
$online = Test-Connection $srv -Count 1 -Quiet
if (-not $online) {
Send-MailMessage -To "admin@empresa.pt" `
-From "monitor@empresa.pt" `
-Subject "ALERTA: $srv offline" `
-Body "O servidor $srv não responde!" `
-SmtpServer "smtp.empresa.pt"
}
}