I server DNS sono i vostri “controllori” del traffico Web, voi digitate l’indirizzo di un sito e loro vi ci portano, solo che, ogni tanto, hanno dei problemi, in particolar modo quelli che vengono forniti dal proprio provider, e qualche sito smette di essere raggiungibile o qualche servizio smette di funzionare come dovrebbe. Negli ultimi tempi, al lavoro, stiamo riscontrando parecchi problemi con un famoso provider nazionale che impedisce l’apertura della VPN dato che i loro DNS non risolvono l’indirizzo del server della VPN. [continua..]
InterfaceDescription
Realtek PCIe GBE Family Controller
ifIndex Status
6 Up
MacAddress
xx-xx-xx-yy-yy-yy
LinkSpeed 100 Mbps
domanda assai sciocca e stupida...ma tanto conoscete già il mio infimo livello...:
vuol dire che il mio vetusto pc , è dell'aprile 2015..., cpu intel i5 4590 8gb ram e scheda madre: https://www.gigabyte.com/Motherboard/GA ... -rev-10#ov
non andrebbe a più di 100mb in dl...??...lo chiedo perchè al momento ho una adsl da effettivi 19mb in dl ma mi stanno martellando per passare alla fibra....ecco nel caso cedessi comunque con il mio -baroccio- a più di 100 mb non andrei...??
perdonate la scarsezza del mio livello...
grazie Crazy!
sicuramente saresti più bravo ed adatto tu a farli...ma nel mio caso è molto semplice...poichè il risultato, a parte la colonna Bus che nel mio caso è 2, poi ricalca quello della immagine dell'articolo linkato...quindi i conti li ha già fatti l'autore....
250 mb/s.....quindi è perfettamente inutile cadere nelle sirene fibriche dei promessi un tanto di giga al chilo, quello si vero che corrisponde alla fatica di quanto uno debba lavorare per sganciar loro tali soldi... ...
mi rimane il mistero di come mai dall'altro comando,quello del tuo articolo, addirittura venga fuori un dato ancor minore..: 100 mb/s
mi riferisco a : Get-NetAdapter
che mi restituisce per la ethernet
LinkSpeed
100 Mbps
anche se poi i misteri sono di più dato che per la Ethernet 2 ,virtualbox ,
e per la TAP ,TAP-Windows Adapter V9 ,
avrei in entrambi i casi LinkSpeed: 1GBps
L'unica cosa che ho trovato, ma riguardava windows 10, è questa:
Open the Registry Editor
Navigate to: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters
Create a new DWORD named “EnableAutoDoh” and give it a value of 2.
Reboot the host.
Su windows 11 non funziona
“Se tutti i documenti raccontavano la stessa favola, ecco che la menzogna diventava un fatto storico, quindi vera.”
crazy.cat ha scritto: ↑dom lug 16, 2023 3:40 pm
L'unica cosa che ho trovato, ma riguardava windows 10, è questa:
Open the Registry Editor
Navigate to: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters
Create a new DWORD named “EnableAutoDoh” and give it a value of 2.
Reboot the host.
Su windows 11 non funziona
fatto...ma poi come ti accorgi se funziona o meno...???...
ho win 10 home 64
...beh...su win 10 non funzionano di sicuro......:
Get-DnsClientDohServerAddress : Termine 'Get-DnsClientDohServerAddress' non riconosciuto come nome di cmdlet,
funzione, programma eseguibile o file script. Controllare l'ortografia del nome o verificare che il percorso sia
incluso e corretto, quindi riprovare.
In riga:1 car:1
+ Get-DnsClientDohServerAddress
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Get-DnsClientDohServerAddress:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
c'è modo di trasformare il tutto con codice compatibile con powershell? In più sarebbe interessante poter generare una inputbox in cui digitare il nome computer e farlo digerire come variabile
'------------------- Declarations
dim aDNS(1)
Dim strWINS1
Dim strWINS2
dim strComputer
dim objWMIService
dim errDNS
dim errWINS
dim errEnable
dim errGateways
dim errDNSDomain
dim objItem
dim colItems
'---------------------------------
' -------- Set variables here --------
' Set Computer Name or IP Address to run against
strComputer = "PC1"
' Set IP - Subnet - Gateway to assign
strIPAddress = Array("192.168.0.1")
strSubnetMask = Array("255.255.255.0")
strGateway = Array("192.168.0.254")
strGatewaymetric = Array("1")
' Set DNS servers in search order to assign - or leave them blank
aDNS(0) = "208.67.222.222"
aDNS(1) = "208.67.220.220"
' Set connection-specific DNS suffix to assign - or leave it blank
dnsdomain = "domain.lan"
' Set WINS servers in search order to assign - or leave them blank
strWINS1 = ""
strWINS2 = ""
' -------- Variables End --------
On error resume next
set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = 1")
For Each objItem in colItems
errDNS = objItem.SetDNSServerSearchOrder()
errDNS = objItem.SetDNSServerSearchOrder(aDNS)
errWINS = objItem.SetWINSServer (strWINS1,strWINS2)
errDNSDomain = objItem.SetDNSDomain (dnsdomain)
errGateways = objItem.SetGateways(strGateway, strGatewaymetric)
errEnable = objItem.EnableStatic(strIPAddress, strSubnetMask)
Next
set objWMIService = Nothing
set colItems = Nothing
msgbox("Done")
Come script di partenza potresti usare questo; al posto dei tre puntini devi inserire la richiesta a cui l'utente dovrà rispondere e poi dovrà premere invio per confermare (se intendevi questo con "inputbox"; se invece vuoi qualcosa con GUI allora bisognerebbe usare Windows Forms e le righe di codice aumentano, di molto). Ad esempio, «Read-Host "Inserire il nome del PC"» / l'utente digita "PC1" e preme invio (tieni presente che verrano aggiunti in automatico i due punti alla fine di ciò che scrivi in Read-Host). Ne risulterà che la variabile "$strComputer" avrà come valore la stringa inserita dall'utente. Se hai problemi con i comandi WMI, sostituiscili con quelli CIM.
Chiaramente è uno script solo abbozzato (con lo zampino della solita Perplexity), non l'ho testato e potrebbe richiedere adeguato debugging (come spesso accade); quindi usalo solo in ambiente di test. Se qualcosa non va, fammi sapere che magari riesco a risolvere e imparo qualcosa.
# Set Computer Name or IP Address to run against
$strComputer = Read-host "..."
# Set IP, Subnet, and Gateway to assign
$strIPAddress = Read-host "..."
$strSubnetMask = Read-host "..."
$strGateway = Read-host "..."
# Set DNS servers in search order to assign
$aDNS = Read-host "..."
# Set connection-specific DNS suffix to assign
$dnsdomain = Read-host "..."
# Set WINS servers in search order to assign
$strWINS1 = Read-host "..."
$strWINS2 = Read-host "..."
# Set DNS and WINS
$adapter = Get-WmiObject Win32_NetworkAdapterConfiguration -ComputerName $strComputer | Where-Object { $_.IPEnabled -eq $true }
$adapter.SetDNSServerSearchOrder($aDNS)
$adapter.SetWINSServer($strWINS1, $strWINS2)
$adapter.SetDNSDomain($dnsdomain)
# Set IP address, subnet mask, and gateway
$adapter.EnableStatic($strIPAddress, $strSubnetMask)
$adapter.SetGateways($strGateway, 1)
Write-Host "Fatto!"
Dim nomecomp
nomecomp = InputBox("INSERIRE IL NOME DEL COMPUTER")
Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run "xxx.bat " & nomecomp
lo uso per passare il valore nome computer (nomecomp) allo script batch (xxx.bat) tramite la variabile %1
ho provato ad inserire questa parte di codice, con qualche modifica, nel primo vbs che ho postato ma non ho le conoscenze necessarie per capire come passare quel valore alle istruzioni successive
Per impostare i server WINS non esiste un comando nativo per powershell per cui è necessario utilizzare wmi e grazie al suggrimento di Zigul, mi sono avvalso dell'aiuto di Perplexity
Il codice che segue mi permette di specificare l'hostname (o l'ip address) della macchina target individuando l'interfaccia di rete attiva e passando tale valore al comando wmi che imposta correttamente i server WINS. Peccato che mi dia errore sul comando per impostare i DNS poiché la stringa suggerita dall'AI non funziona.
# Prompt for the computer name or IP address
$computerName = Read-Host "Enter the computer name or IP address"
# Define the WINS server IP addresses
$winsServers = "10.x.x.x", "10.x.x.x", "10.x.x.x", "10.x.x.x"
# Define the DNS server IP addresses
$dnsServers = "10.x.x.x", "10.x.x.x", "10.x.x.x", "10.x.x.x", "10.x.x.x", "10.x.x.x"
# Get the network adapter configuration for wmi
$networkAdapter = Get-WmiObject Win32_NetworkAdapterConfiguration -ComputerName $computerName | Where-Object { $_.IPEnabled -eq $true }
# Set the WINS server addresses
$networkAdapter.SetWINSServer($winsServers)
# Get the network adapter configuration for powershell
$networkAdapter = Get-NetAdapter -CimSession $computerName | Where-Object { $_.Status -eq "Up" }
# Set the DNS server addresses
Set-DnsClientServerAddress -InterfaceIndex $networkAdapter.IfIndex -ServerAddresses $dnsServers
# Clear cache
Clear-DnsClientCache
# Get the network adapter configuration for powershell
$networkAdapter = Get-NetAdapter -CimSession $computerName | Where-Object { $_.Status -eq "Up" }
# Set the DNS server addresses
Set-DnsClientServerAddress -InterfaceIndex $networkAdapter.IfIndex -ServerAddresses $dnsServers
ho più volte riformulato la domanda all'AI ma fa un po' di pastrocchi, probabilmente non espongo bene il problema
problema risolto usando il comando wmi anche per impostare i DNS
di seguito il codice corretto e funzionante a patto che siate amministratori della macchina remota, meglio ancora se in ambiente di dominio. In caso contrario va inserito il codice necessario per l'autenticazione
# Prompt for the computer name or IP address
$computerName = Read-Host "Enter the computer name or IP address"
# Define the WINS server IP addresses
$winsServers = "10.x.x.x", "10.x.x.x", "10.x.x.x", "10.x.x.x"
# Define the DNS server IP addresses
$dnsServers = "10.x.x.x", "10.x.x.x", "10.x.x.x", "10.x.x.x"
# Get the network adapter configuration for wmi
$networkAdapter = Get-WmiObject Win32_NetworkAdapterConfiguration -ComputerName $computerName | Where-Object { $_.IPEnabled -eq $true }
# Set the WINS server addresses
$networkAdapter.SetWINSServer($winsServers)
# Set the DNS server addresses
$networkAdapter.SetDNSServerSearchOrder($dnsServers)
# Clear cache
Clear-DnsClientCache
Al3x ha scritto: ↑gio dic 14, 2023 9:28 am
me la canto e me la suono
problema risolto usando il comando wmi anche per impostare i DNS
di seguito il codice corretto e funzionante a patto che siate amministratori della macchina remota, meglio ancora se in ambiente di dominio. In caso contrario va inserito il codice necessario per l'autenticazione
# Prompt for the computer name or IP address
$computerName = Read-Host "Enter the computer name or IP address"
# Define the WINS server IP addresses
$winsServers = "10.x.x.x", "10.x.x.x", "10.x.x.x", "10.x.x.x"
# Define the DNS server IP addresses
$dnsServers = "10.x.x.x", "10.x.x.x", "10.x.x.x", "10.x.x.x"
# Get the network adapter configuration for wmi
$networkAdapter = Get-WmiObject Win32_NetworkAdapterConfiguration -ComputerName $computerName | Where-Object { $_.IPEnabled -eq $true }
# Set the WINS server addresses
$networkAdapter.SetWINSServer($winsServers)
# Set the DNS server addresses
$networkAdapter.SetDNSServerSearchOrder($dnsServers)
# Clear cache
Clear-DnsClientCache
Non sono pratico di WINS, ma per provare a capire meglio: ottieni qualche messaggio di errore? Dopo che hai lanciato lo script, anche se non funziona esattamente, tutte le variabili hanno il valore giusto? Se non hai messaggi di errore, potresti anche provare a lanciare un comando alla volta e verificare che abbia l'effetto desiderato.
purtroppo nessun messaggio di errore, lo script parte e sembra aver fatto il suo lavoro ma verificando le impostazioni di rete della postazione target, nulla cambia. Ora sto litigando con VBS che funziona ma mi imposta solo fino a due WINS, pare sia un limite del metodo che prevede solo due server. Diciamo che per i miei scopi va benissimo ma mi secca non essere riuscito ad adattare le funzioni per farle funzionare con powershell.
Inserendo un messaggio, dichiari di aver letto e accettato il regolamento di partecipazione.
Nello specifico, sei consapevole che ti stai assumendo personalmente la totale responsabilità delle tue affermazioni, anche in sede civile e/o penale,
manlevando i gestori di questo sito da ogni coinvolgimento e/o pretesa di rivalsa.
Dichiari inoltre di essere consapevole che il messaggio sarà visibile pubblicamente, accetti di diffonderlo con licenza
CC BY-NC-SA 3.0 (con attribuzione a "TurboLab.it") e rinunci ad ogni forma di compensazione (economica o altro).
Rinunci inoltre esplicitamente a qualsiasi pretesa di cancellazione del messaggio.