Windows 7: Criar um atalho de teclado que inicia “reparar conexão de rede”?

1

Eu quero um botão de pânico virtual para desconexões e problemas de rede para que eu possa pressionar uma combinação de teclas a qualquer momento e fazer com que o computador detecte automaticamente os problemas de rede ou redefina o adaptador.

Achei isso criando um atalho de teclado: link

Alguma escavação nos diagnósticos da rede e encontrado link

msdt.exe / id NetworkDiagnosticsWeb == > traz um prompt interativo. Eu não quero um prompt interativo, eu quero trazer uma ferramenta que vai começar a corrigir a conexão de rede o mais rápido possível sem intervenção manual.

Se a dúvida ainda não estiver clara: eu preciso criar um atalho ou lote que chame o reparo de rede totalmente automático para que eu possa vinculá-lo a um atalho de teclado.

    
por user1258361 02.07.2018 / 03:31

2 respostas

2

Abaixo, há um script em lote que emula os toques do teclado para manipular a janela da GUI chamada " Conexões com a Internet " que aparece quando msdt.exe /id NetworkDiagnosticsWeb é executado.

Essencialmente, o iniciará inicie o comando msdt.exe /id NetworkDiagnosticsWeb , certifique-se de que a janela Internet Connections intitulada esteja ativa, aguarde 2 segundos , pressione Tab duas vezes, Enter uma vez, pause 2 segundos e, em seguida, pressione Enter novamente para garantir que a solução de problemas seja iniciada imediatamente .

Scriptemlote

@ECHOOFFstart"" msdt.exe /id NetworkDiagnosticsWeb
ping -n 2 127.0.0.1 > nul

:VBSDynamicBuild
SET TempVBSFile=%tmp%\~tmpSendKeysTemp.vbs
IF EXIST "%TempVBSFile%" DEL /F /Q "%TempVBSFile%"
ECHO Set WshShell = WScript.CreateObject("WScript.Shell") >>"%TempVBSFile%"
ECHO Wscript.Sleep 500                                    >>"%TempVBSFile%"
ECHO WshShell.AppActivate "Internet Connections"          >>"%TempVBSFile%"
ECHO Wscript.Sleep 2000                                   >>"%TempVBSFile%"
ECHO WshShell.SendKeys "{TAB 2}{ENTER}"                   >>"%TempVBSFile%"
ECHO Wscript.Sleep 2000                                   >>"%TempVBSFile%"
ECHO WshShell.SendKeys "{ENTER}"                          >>"%TempVBSFile%"

CSCRIPT //nologo "%TempVBSFile%"
EXIT

Mais recursos

por 02.07.2018 / 05:06
1

Você pode usar o PowerShell Get-TroubleshootingPackdletlet para orientá-lo no processo de criação de um arquivo de resposta para uso posterior com Invoke-TroubleshootingPack Cmdlet para automatizar.

Steps: Creating and Running Manually

1. PowerShell (create answer file)

$aFile = "C:\Folder\Path\AudioAnswerFile.xml"
Get-TroubleshootingPack -Path "C:\Windows\diagnostics\system\Networking" -AnswerFile $aFile

Options to pick during answer file creation

Important: I only picked what I think I needed to pick but do further testing and put more time and thought into each answer just in case you see something applicable in your case.

  • [1] Web Connectivity
  • [1] Troubleshoot my connection to the Internet
  • [1] TCP
  • [1] I'm trying to reach a specific website or folder on a network
  • Pick [x] Exit for all the rest of the answers and press Enter

    enter image description here

    enter image description here


Answer File Content

Note: *Now that you have an answer file, you can use it to point to jobs that you can automate or create shortcuts to run as a batch as I'll talk about with more detail below.

<?xml version="1.0" encoding="UTF-8"?>
<Answers Version="1.0">
  <Interaction ID="IT_EntryPoint">
    <Value>HTTP</Value>
  </Interaction>
  <Interaction ID="IT_WebChoice">
    <Value>Internet</Value>
  </Interaction>
  <Interaction ID="IT_Protocol">
    <Value>6</Value>
  </Interaction>
  <Interaction ID="IT_DefaultConnectivityInitialChoice">
    <Value>HTTPorUNC</Value>
  </Interaction>
</Answers>

2. PowerShell (run diagnostic process)

Note: The $aFile variable value should point to the answer file you just created in #1 above. The $dFolder variable value should be a folder to check for the results of the diagnostic after it runs.

$aFile = "C:\Folder\Path\AudioAnswerFile.xml"
$dFolder = "C:\Folder\Path\Diag"
$var = Get-TroubleshootingPack -Path "C:\Windows\diagnostics\system\Networking"
Invoke-TroubleshootingPack -Pack $v -AnswerFile $aFile -Unattended -Result $dFolder

Results

Now open up the result files from this command you invoked with the answer file by going to the folder specified in the $dFolder variable value and you'll have some files you can further analyze.

Result Folder Files

675B09EE-5DE8-4AF5-B10D-07DB894902D2.Diagnose.0.etl
DebugReport.xml
NetworkConfiguration.cab
ResultReport.xml
results.xsl
     

Coloquetudoemumarquivodelote

Observação:Espera-sequeoarquivoderespostajáestejaconfiguradoeemumlocallegívelparaocmdletInvoke-TroubleshootingPackutilizar,entãoéissoquevocêcriacomaetapa1acima.Alémdisso,vocêsóprecisadefinirosvaloresAnswerFile=eDiagFolder=paraseremlocaisválidosparaosquaisvocêpodegravar.

@ECHOOFFSET"AnswerFile=C:\Folder\Path\AudioAnswerFile.xml"
SET "DiagFolder=C:\Folder\Path\Diag"

CALL :PowerShell
CD /D "%PowerShellDir%"
Powershell -ExecutionPolicy Bypass -Command "& '%PSScript%'"

:PowerShell
SET PowerShellDir=C:\Windows\System32\WindowsPowerShell\v1.0
SET PSScript=%temp%\~tmpNtwkDiagTrblsht.ps1
IF EXIST "%PSScript%" DEL /Q /F "%PSScript%"
ECHO $aFile = "%AnswerFile%">"%PSScript%"
ECHO $dFolder = "%DiagFolder%">>"%PSScript%"
ECHO $var = Get-TroubleshootingPack -Path "C:\Windows\diagnostics\system\Networking">>"%PSScript%"
ECHO Invoke-TroubleshootingPack -Pack $var -AnswerFile $aFile -Unattended -Result $dFolder>>"%PSScript%"
GOTO :EOF

Executar validação adicional

Depois que esse processo é executado, você deve ver no Visualizador de eventos do Windows do Log do sistema e ID do evento 4100 no "Diagostics - "fonte" com uma mensagem "Nível de informação" indicando

"The Network Diagnostics Framework has completed the diagnosis phase of operation, but no network problem was identified."

Maisrecursos

por 03.07.2018 / 05:10