Skip to content

Instantly share code, notes, and snippets.

@mark05e
Last active November 2, 2023 02:34
Show Gist options
  • Save mark05e/d2eea3dfe70eabfb9cb3a7c01bc82ce9 to your computer and use it in GitHub Desktop.
Save mark05e/d2eea3dfe70eabfb9cb3a7c01bc82ce9 to your computer and use it in GitHub Desktop.
NETGEAR Router DC112A reboot powershell script
#########################################################################
## NETGEAR Router DC112A reboot script
## Tested with Firmware: V1.0.0.18_1.0.60
## Mark 2020
#########################################################################
#-[Variables]------------------------------------------------------------
$user = 'admin'
$pass = 'admin'
$routerIP = '192.168.10.1'
#-[Initialisations]------------------------------------------------------
# Prepare URL
$baseUrl = 'http://' + $($routerIP)
# To browse router page to get form
$url1 = $($baseUrl)+'/ADV_home2.htm'
# Prepare auth header
$pair = "$($user):$($pass)"
$encodedCreds = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($pair))
$basicAuthValue = "Basic $encodedCreds"
Headers = @{ Authorization = $basicAuthValue }
# Search for form url
$formsearch = '<form action="(?<postLink>.*)" method="post">'
# Reboot button
$bodyRestartPost = 'buttonSelect=2'
#-[Execution]------------------------------------------------------------
# Step 1 - First web call for auth
$x=Invoke-WebRequest -Uri $baseUrl -Headers $Headers
# Step 2 - Browse webpage for form
$x=Invoke-WebRequest -Uri $url1 -Headers $Headers
# Step 3 - Search for form link
$x.Content -match $formsearch
$url2 = $($baseUrl) + '/' + $($matches.postlink)
# Step 4 - Push reboot button
$x=Invoke-WebRequest -Uri $url2 -Headers $Headers -Method POST -Body $bodyRestartPost
#Ref:
# https://stackoverflow.com/a/27951845/2854578
# https://stackoverflow.com/a/37323588/2854578
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment