added Download-File function to Tools.ps1

added Install-VLC.ps1 script
This commit is contained in:
2020-10-19 11:24:07 -04:00
parent 5c8d47c428
commit 77cf4d6276
2 changed files with 62 additions and 4 deletions
+27
View File
@@ -0,0 +1,27 @@
. $([Scriptblock]::Create((New-Object Net.WebClient).DownloadString('https://dev.emberkom.com/emberkom/management-scripts/raw/branch/master/Tools.ps1')))
## Make sure we're running as admin
If ( IsAdmin )
{
## Get the correct URL
If ( Is64bit)
{ $URL = 'https://get.videolan.org/vlc/3.0.11/win64/vlc-3.0.11-win64.exe' }
Else
{ $URL = 'https://ftp.osuosl.org/pub/videolan/vlc/3.0.11/win32/vlc-3.0.11-win32.exe' }
## Download file and get local file name
$Installer = Download-File $URL
If ( Test-Path $Installer )
{
## Run silent install
Try { Start-Process $Installer -ArgumentList "/S" -Wait }
Catch { Write-Output $_.Exception.Message }
## Delete the file we downloaded
Try { Remove-Item $Installer -Force }
Catch { Write-Output $_.Exception.Message }
}
Else { Write-Output "The URL was not downloaded correctly: ${URL}" }
}
Else { Write-Output "You must run this script as an administrator" }
+35 -4
View File
@@ -155,14 +155,44 @@ Return [version]$Return.Trim('.')
Function IsURLValid
{
param([Parameter(Mandatory=$true,ValueFromPipeline=$true)][string]$URL)
$HTTPRequest = [System.Net.WebRequest]::Create($URL)
$HTTPResponse = $HTTPRequest.GetResponse()
$HTTPStatus = [int]$HTTPResponse.StatusCode
$HTTPResponse.Close()
Try
{
$HTTPRequest = [System.Net.WebRequest]::Create($URL)
$HTTPResponse = $HTTPRequest.GetResponse()
$HTTPStatus = [int]$HTTPResponse.StatusCode
$HTTPResponse.Close()
}
Catch {}
If ($HTTPStatus -eq 200) { Return $true }
Else { Return $false }
}
Function Download-File
{
param(
[Parameter(Mandatory=$true,ValueFromPipeline=$true)][string]$URL,
[Parameter(Mandatory=$false,ValueFromPipeline=$false)][string]$File
)
$LogName = $MyInvocation.MyCommand
If ( !($File) ) { $File = '{0}\{1}' -f $Env:TEMP, (Split-Path $URL -Leaf) }
If ( IsURLValid $URL )
{
If ( Test-Path $File )
{
Log "Deleting existing file: ""${File}""" -Name $LogName
Try { Remove-Item $File -Force }
Catch { $_.Exception.Message | Log -Name $LogName }
}
Log "Downloading ""${URL}"" to ""${File}""" -Name $LogName
Try { (New-Object System.Net.WebClient).DownloadFile($URL,$File) }
Catch { $_.Exception.Message | Log -Name $LogName }
If ( Test-Path $File )
{ Return $File }
Else { Log "The file was downloaded but was immediately deleted" -Name $LogFile ; Return $false }
}
Else { Log "URL is not valid or file cannot be reached: ${URL}" -Name $LogName }
}
## Function to compare current Windows version with a supplied version
## The value supplied must be a string and must include at least 1 decimal
Function IsWindowsVersion
@@ -217,3 +247,4 @@ switch ( $(Get-CimInstance -ClassName Win32_OperatingSystem -Property OSArchitec
## Function to determine if the Powershell process is 64-bit or not
Function Is64bitShell
{ If ( [System.Environment]::Is64BitProcess ) { Return $true } Else { Return $false } }