|
@@ -1,62 +1,72 @@
|
|
-param ($version='latest', $token)
|
|
|
|
-
|
|
|
|
-function Quit {
|
|
|
|
- param(
|
|
|
|
- $Text
|
|
|
|
- )
|
|
|
|
- Write-Host "Exiting: " $Text
|
|
|
|
- Break Script
|
|
|
|
-}
|
|
|
|
|
|
+new-module -name netclient-install -scriptblock {
|
|
|
|
+ function Quit {
|
|
|
|
+ param(
|
|
|
|
+ $Text
|
|
|
|
+ )
|
|
|
|
+ Write-Host "Exiting: " $Text
|
|
|
|
+ Break Script
|
|
|
|
+ }
|
|
|
|
+ Function Netclient-Install() {
|
|
|
|
+ param ($version='latest', $token)
|
|
|
|
|
|
-if($token -eq $null -or $token -eq ""){
|
|
|
|
- Quit "-token required"
|
|
|
|
-}
|
|
|
|
|
|
|
|
-$software = "WireGuard";
|
|
|
|
-$installed = (Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Where { $_.DisplayName -eq $software }) -ne $null
|
|
|
|
|
|
+ if($token -eq $null -or $token -eq ""){
|
|
|
|
+ Quit "-token required"
|
|
|
|
+ }
|
|
|
|
|
|
-If(-Not $installed) {
|
|
|
|
- Write-Host "'$software' is NOT installed. installing...";
|
|
|
|
- $url = "https://download.wireguard.com/windows-client/wireguard-installer.exe"
|
|
|
|
- $outpath = "$PSScriptRoot/wireguard-installer.exe"
|
|
|
|
- Invoke-WebRequest -Uri $url -OutFile $outpath
|
|
|
|
- $args = @("Comma","Separated","Arguments")
|
|
|
|
- Start-Process -Filepath "$PSScriptRoot/wireguard-installer.exe" -ArgumentList $args
|
|
|
|
$software = "WireGuard";
|
|
$software = "WireGuard";
|
|
$installed = (Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Where { $_.DisplayName -eq $software }) -ne $null
|
|
$installed = (Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Where { $_.DisplayName -eq $software }) -ne $null
|
|
|
|
+
|
|
If(-Not $installed) {
|
|
If(-Not $installed) {
|
|
- Quit "Could not install WireGuard"
|
|
|
|
|
|
+ Write-Host "'$software' is NOT installed. installing...";
|
|
|
|
+ $url = "https://download.wireguard.com/windows-client/wireguard-installer.exe"
|
|
|
|
+ $outpath = "$env:userprofile\Downloads\wireguard-installer.exe"
|
|
|
|
+ Invoke-WebRequest -Uri $url -OutFile $outpath
|
|
|
|
+ $args = @("Comma","Separated","Arguments")
|
|
|
|
+ Start-Process -Filepath "$env:userprofile\Downloads\wireguard-installer.exe" -ArgumentList $args
|
|
|
|
+ Start-Sleep -Seconds 5
|
|
|
|
+ $software = "WireGuard";
|
|
|
|
+ $installed = (Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Where { $_.DisplayName -eq $software }) -ne $null
|
|
|
|
+ If(-Not $installed) {
|
|
|
|
+ Quit "Could not install WireGuard"
|
|
|
|
+ } else {
|
|
|
|
+ Write-Host "'$software' is installed."
|
|
|
|
+ }
|
|
} else {
|
|
} else {
|
|
Write-Host "'$software' is installed."
|
|
Write-Host "'$software' is installed."
|
|
}
|
|
}
|
|
-} else {
|
|
|
|
- Write-Host "'$software' is installed."
|
|
|
|
-}
|
|
|
|
-$outpath = "";
|
|
|
|
-if (Test-Path -Path "C:\ProgramData\Netclient\bin\netclient.exe") {
|
|
|
|
- $outpath = "C:\ProgramData\Netclient\bin\netclient.exe";
|
|
|
|
-} else {
|
|
|
|
- $outpath = "$PSScriptRoot/netclient.exe"
|
|
|
|
- Write-Host "'netclient.exe' is NOT installed. installing...";
|
|
|
|
- Write-Host "https://github.com/gravitl/netmaker/releases/download/$version/netclient.exe";
|
|
|
|
- $url = "https://github.com/gravitl/netmaker/releases/download/$version/netclient.exe"
|
|
|
|
- Invoke-WebRequest -Uri $url -OutFile $outpath
|
|
|
|
-}
|
|
|
|
-$NetArgs = @("join","-t",$token)
|
|
|
|
-Start-Process -Filepath $outpath -ArgumentList $NetArgs
|
|
|
|
|
|
+ $outpath = "";
|
|
|
|
+ if (Test-Path -Path "C:\ProgramData\Netclient\bin\netclient.exe") {
|
|
|
|
+ $outpath = "C:\ProgramData\Netclient\bin\netclient.exe";
|
|
|
|
+ } else {
|
|
|
|
+ $outpath = "$env:userprofile\Downloads\netclient.exe"
|
|
|
|
+ Write-Host "'netclient.exe' is NOT installed. installing...";
|
|
|
|
+ Write-Host "https://github.com/gravitl/netmaker/releases/download/$version/netclient.exe";
|
|
|
|
+ $url = "https://github.com/gravitl/netmaker/releases/download/$version/netclient.exe"
|
|
|
|
+ Invoke-WebRequest -Uri $url -OutFile $outpath
|
|
|
|
+ }
|
|
|
|
+ $NetArgs = @("join","-t",$token)
|
|
|
|
+ Start-Process -Filepath $outpath -ArgumentList $NetArgs
|
|
|
|
+ Add-MpPreference -ExclusionPath "C:\ProgramData\Netclient"
|
|
|
|
|
|
-if ((Get-Command "netclient.exe" -ErrorAction SilentlyContinue) -eq $null) {
|
|
|
|
- if (-not (Test-Path -Path "C:\ProgramData\Netclient\bin\netclient.exe")) {
|
|
|
|
- New-Item -Path "C:\ProgramData\Netclient" -Name "bin" -ItemType "directory"
|
|
|
|
- Move-Item -Path "$PSScriptRoot/netclient.exe" -Destination "C:\ProgramData\Netclient\bin\netclient.exe"
|
|
|
|
|
|
+ if ((Get-Command "netclient.exe" -ErrorAction SilentlyContinue) -eq $null) {
|
|
|
|
+ if (-not (Test-Path -Path "C:\ProgramData\Netclient\bin\netclient.exe")) {
|
|
|
|
+ New-Item -Path "C:\ProgramData\Netclient" -Name "bin" -ItemType "directory"
|
|
|
|
+ Move-Item -Path "$env:userprofile\Downloads\netclient.exe" -Destination "C:\ProgramData\Netclient\bin\netclient.exe"
|
|
|
|
+ $oldpath = (Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment' -Name PATH).path
|
|
|
|
+ $newpath = "$oldpath;C:\ProgramData\Netclient\bin"
|
|
|
|
+ Set-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment' -Name PATH -Value $newPath
|
|
|
|
+ $env:Path += ";C:\ProgramData\Netclient\bin"
|
|
|
|
+ }
|
|
|
|
+ '''
|
|
|
|
+ Please add netclient.exe to your path to make it permanently executable from powershell:
|
|
|
|
+ 1. Open "Edit environment variables for your account"
|
|
|
|
+ 2. Double click on "Path"
|
|
|
|
+ 3. On a new line, add the following: C:\ProgramData\Netclient\bin
|
|
|
|
+ 4. Click "Ok"
|
|
|
|
+ '''
|
|
}
|
|
}
|
|
- '''
|
|
|
|
- Please add netclient.exe to your path to make it executable from powershell:
|
|
|
|
- 1. Open "Edit environment variables for your account"
|
|
|
|
- 2. Double click on "Path"
|
|
|
|
- 3. On a new line, paste the following: %USERPROFILE%\AppData\Netclient\bin
|
|
|
|
- 4. Click "Ok"
|
|
|
|
- '''
|
|
|
|
-}
|
|
|
|
|
|
|
|
-Write-Host "'netclient' is installed."
|
|
|
|
|
|
+ Write-Host "'netclient' is installed."
|
|
|
|
+ }
|
|
|
|
+}
|