```powershell
#Download and Run MSI package for Automated install
## VZ
#$uri = "https://eu.ninjarmm.com/agent/installer/22ea45a7-e951-4229-b305-ef9178339f0c/verbraucherzentralebayernmnchenmo9-7.0.2317-windows-installer.msi"
## SBX link for tests
$uri = "https://eu.ninjarmm.com/agent/installer/f816281d-6f56-4f13-abd6-5d4abf4dc67a/softboxhauptsitz-7.0.2317-windows-installer.msi"
$out = "c:\Temp\NinjaOneInstaller.msi"

if ( !( Test-Path "C:\Temp" ) )
{
    New-Item -ItemType Directory -Path "C:\Temp"
}


Function Download_MSI_NinjaOne_Installer{
    Invoke-WebRequest -uri $uri -OutFile $out -UserAgent ([Microsoft.PowerShell.Commands.PSUserAgent]::FireFox)
    $msifile = Get-ChildItem -Path $out -File -Filter '*.ms*' 
    write-host "NinjaOne MSI $msifile "
}

$msifile = Get-ChildItem -Path $out -File -Filter '*.ms*'
Function Install_NinjaOne{
    write-host "NinjaOne MSI $msifile "
    $FileExists = Test-Path $msifile -IsValid
    $DataStamp = get-date -Format yyyyMMddTHHmmss
    $logFile = '{0}-{1}.log' -f $msifile.fullname,$DataStamp
    $MSIArguments = @(
        "/i"
        ('"{0}"' -f $msifile.fullname)
        "/qn"
        "/norestart"
        "/L*v"
        $logFile
    )
    If ($FileExists -eq $True)
    {
        Start-Process "msiexec.exe" -ArgumentList $MSIArguments -passthru | wait-process
        write-host "Finished msi "$msifile
    }

    Else {Write-Host "File doesn't exists"}
}
Download_MSI_NinjaOne_Installer
$msifile = Get-ChildItem -Path $out -File -Filter '*.ms*'
Install_NinjaOne
```