Use the JNLP tunnel mechanism for Windows, too.
diff --git a/gce/jenkins-slave-windows.ps1 b/gce/jenkins-slave-windows.ps1
index ae72d40..47cda35 100644
--- a/gce/jenkins-slave-windows.ps1
+++ b/gce/jenkins-slave-windows.ps1
@@ -73,8 +73,9 @@
 if ($jenkins_node -match '.*-staging$') {$jenkins_master='jenkins-staging'}
 else {$jenkins_master='jenkins'}
 
-# Save the Jenkins slave.jar to a suitable location
+# Save the Jenkins slave.jar and slave-agent.jnlp to a suitable location.
 Invoke-WebRequest http://${jenkins_master}/jnlpJars/slave.jar -OutFile slave.jar
+Invoke-WebRequest http://${jenkins_master}/computer/${jenkins_node}/slave-agent.jnlp -OutFile slave-agent.jnlp
 
 # Install the necessary packages in msys2
 $bash_installer=@'
@@ -110,14 +111,6 @@
 # Also use the latest release for bootstrapping
 cmd.exe /C mklink /j C:\bazel_ci\installs\bootstrap $folder
 
-
-# Replace the host name in the JNLP file, because Jenkins, in its infinite
-# wisdom, does not let us change that separately from its external hostname.
-$jnlp=((New-Object Net.WebClient).DownloadString("http://${jenkins_master}/computer/${jenkins_node}/slave-agent.jnlp"))
-$jnlp=$jnlp -replace "https?://ci.bazel.build", "http://${jenkins_master}"
-$jnlp=$jnlp -replace "https?://ci-staging.bazel.build", "http://${jenkins_master}"
-Write-Output $jnlp | Out-File -Encoding ascii slave-agent.jnlp
-
 # Create the service that runs the Jenkins slave
 # We can't execute Java directly because then it mysteriously fails with
 # "Sockets error: 10106: create", so we redirect through Powershell
diff --git a/jenkins/BUILD b/jenkins/BUILD
index 77f65ff..7138172 100644
--- a/jenkins/BUILD
+++ b/jenkins/BUILD
@@ -54,6 +54,7 @@
     num_executors = 1,
     preference = 1,
     remote_fs = "c:\\jenkins",
+    tunnel = "jenkins:50000",
 )
 
 jenkins_nodes(