From 0a714b8073c14dbf01dc6fd4a3929c40a4ae63a0 Mon Sep 17 00:00:00 2001 From: David Pinedo Date: Fri, 3 Jun 2016 12:08:12 -0600 Subject: winrtinstaller: fixes and diagnostics for powershell config script failure --- .../ConfigLayersAndVulkanDLL.ps1 | 202 ++++++++++++--------- windowsRuntimeInstaller/Diagnostic1.ps1 | 183 +++++++++++++++++++ windowsRuntimeInstaller/InstallerRT.nsi | 89 ++++----- 3 files changed, 350 insertions(+), 124 deletions(-) create mode 100644 windowsRuntimeInstaller/Diagnostic1.ps1 (limited to 'windowsRuntimeInstaller') diff --git a/windowsRuntimeInstaller/ConfigLayersAndVulkanDLL.ps1 b/windowsRuntimeInstaller/ConfigLayersAndVulkanDLL.ps1 index 3b782409..891984b3 100644 --- a/windowsRuntimeInstaller/ConfigLayersAndVulkanDLL.ps1 +++ b/windowsRuntimeInstaller/ConfigLayersAndVulkanDLL.ps1 @@ -39,21 +39,18 @@ Param( [int]$ossize ) -# Clear any pre-existing errors +# Clear any pre-existing errors and set default return value $Error.Clear(); +$script:scriptReturnValue=0 # Start logging -$log=$Env:Temp+"\VulkanRT" -New-Item -ItemType Directory -Force -Path $log | Out-Null -$logascii=$log+"\ConfigLayersAndVulkanDLL.log" - -# Temp to be used for debugging failure to install issue -#$logascii2=$Env:Temp+"\ConfigLayersAndVulkanDLL_debug.log" - -$log=$log+"\ConfigLayersAndVulkanDLL16.log" - +$logascii=$Env:Temp+"\ConfigLayersAndVulkanDLL.log" +$log=$Env:Temp+"\ConfigLayersAndVulkanDLL16.log" start-transcript -path $log +# Ignore errors related to log file +$Error.Clear(); + Write-Host "ConfigLayersAndVulkanDLL.ps1 called with inputs of : $majorabi $ossize" $startTime=Get-Date Write-Host "Start time : $startTime" @@ -72,6 +69,16 @@ function notNumeric ($x) { } } +function Get-CurrentLineNumber { + $MyInvocation.ScriptLineNumber +} + +function setScriptReturnValue($rvalue) { + if ($script:scriptReturnValue -eq 0) { + $script:scriptReturnValue = $rvalue + } +} + # The name of the versioned vulkan dll file is one of the following: # # vulkan------- @@ -209,7 +216,7 @@ function UpdateVulkanSysFolder([string]$dir, [int]$writeSdkName) if (notNumeric($major)) { Write-Warning "Ignoring $_ - bad major" - # Not a real d, so just clear it for now. + # Not a real error, so just clear it for now. $Error.Clear(); # NOTE: Inside a ForEach-Object block, the 'return' call behaves like a 'continue' for a For loop @@ -266,6 +273,7 @@ function UpdateVulkanSysFolder([string]$dir, [int]$writeSdkName) $script:VulkanDllList+="$major=$minor=$patch=$buildno=$prebuildno=$prerelease= $_ @$majorOrig@$minorOrig@$patchOrig@$buildnoOrig@$prereleaseOrig@$prebuildnoOrig@" if (!$?) { Write-Error "Error: UpdateVulkanSysFolder adding DLL $_ to list" + setScriptReturnValue(Get-CurrentLineNumber) } } @@ -278,6 +286,7 @@ function UpdateVulkanSysFolder([string]$dir, [int]$writeSdkName) [array]::sort($script:VulkanDllList) if (!$?) { Write-Error "Error: UpdateVulkanSysFolder sorting DLL list" + setScriptReturnValue(Get-CurrentLineNumber) } # Put the name of the most recent vulkan-*.dll in $mrVulkanDLL. @@ -288,6 +297,7 @@ function UpdateVulkanSysFolder([string]$dir, [int]$writeSdkName) Copy-Item $mrVulkanDll $vulkandll -force if (!$?) { Write-Error "Error: UpdateVulkanSysFolder encountered error during copy $mrVulkanDll $vulkandll" + setScriptReturnValue(Get-CurrentLineNumber) } # Copy the most recent version of vulkaninfo--*.exe to vulkaninfo.exe. @@ -298,6 +308,7 @@ function UpdateVulkanSysFolder([string]$dir, [int]$writeSdkName) Copy-Item $mrVulkaninfo vulkaninfo.exe -force if (!$?) { Write-Error "Error: UpdateVulkanSysFolder encountered error during copy $mrVulkaninfo vulkaninfo.exe" + setScriptReturnValue(Get-CurrentLineNumber) } # Create the name used in the registry for the SDK associated with $mrVulkanDll. @@ -319,6 +330,7 @@ function UpdateVulkanSysFolder([string]$dir, [int]$writeSdkName) Write-Host "sdkname = $sdktempname" if (!$?) { Write-Error "Error: UpdateVulkanSysFolder encountered error generating SDK name" + setScriptReturnValue(Get-CurrentLineNumber) } } @@ -326,6 +338,7 @@ function UpdateVulkanSysFolder([string]$dir, [int]$writeSdkName) Pop-Location if (!$?) { Write-Error "Error: UpdateVulkanSysFolder popping location" + setScriptReturnValue(Get-CurrentLineNumber) } # Only update the overall script-scope SDK name if we're told to @@ -343,6 +356,7 @@ if ($ossize -eq 64) { UpdateVulkanSysFolder $winfolder\SYSWOW64 0 if (!$?) { Write-Error "Error: Calling UpdateVulkanSysFolder for 64-bit OS" + setScriptReturnValue(Get-CurrentLineNumber) } } @@ -351,6 +365,7 @@ Write-Host "Calling UpdateVulkanSysFolder $winfolder\SYSTEM32 1" UpdateVulkanSysFolder $winfolder\SYSTEM32 1 if (!$?) { Write-Error "Error: Calling UpdateVulkanSysFolder for all OS" + setScriptReturnValue(Get-CurrentLineNumber) } # Create an array of vulkan sdk install dirs @@ -358,34 +373,42 @@ if (!$?) { Write-Host "Creating array of of Vulkan SDK Install dirs" $mrVulkanDllInstallDir="" $VulkanSdkDirs=@() -Get-ChildItem -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall | - ForEach-Object { - $regkey=$_ -replace ".*\\","" - if ($_ -match "\\VulkanSDK") { - # Get the install path from UninstallString - $tmp=Get-ItemProperty -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$regkey -Name UninstallString - if (!$?) { - Write-Error "Error: Get-ItemProperty failed for Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$regkey" - } - $tmp=$tmp -replace "\\Uninstall.exe.*","" - $tmp=$tmp -replace ".*=.","" - Write-Host "Adding $tmp to VulkanSDKDirs" - $VulkanSdkDirs+=$tmp - if ($regkey -eq $script:sdkname) { - # Save away the sdk install dir for the the most recent vulkandll - Write-Host "Setting mrVulkanDllInstallDir to $tmp" - $mrVulkanDllInstallDir=$tmp - } - } +$installSDKRegs = @(Get-ChildItem -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall) +if ($installSDKRegs -ne $null) { + ForEach ($curSDKReg in $installSDKRegs) { + if ($curSDKReg -ne $null) { + $regkey=$curSDKReg -replace ".*\\","" + if ($regkey -match "VulkanSDK") { + # Get the install path from UninstallString + $tmp=Get-ItemProperty -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$regkey -Name UninstallString + if (!$? -or $tmp -eq $null) { + Write-Warning "Error: Get-ItemProperty failed for Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$regkey" + $Error.Clear(); + continue; + } + $tmp=$tmp -replace "\\Uninstall.exe.*","" + $tmp=$tmp -replace ".*=.","" + Write-Host "Adding $tmp to VulkanSDKDirs" + $VulkanSdkDirs+=$tmp + if ($regkey -eq $script:sdkname) { + # Save away the sdk install dir for the the most recent vulkandll + Write-Host "Setting mrVulkanDllInstallDir to $tmp" + $mrVulkanDllInstallDir=$tmp + } + } + } } +} if (!$?) { Write-Error "Error: Failed creating array of of Vulkan SDK Install dirs" + setScriptReturnValue(Get-CurrentLineNumber) } # Search list of sdk install dirs for an sdk compatible with $script:sdkname. # We go backwards through VulkanDllList to generate SDK names, because we want the most recent SDK. -if ($mrVulkanDllInstallDir -eq "") { + +if ($mrVulkanDllInstallDir -eq "" -and $script:VulkanDllList.Length -gt 0) { Write-Host "Searching VulkanDllList" ForEach ($idx in ($script:VulkanDllList.Length-1)..0) { $tmp=$script:VulkanDllList[$idx] @@ -404,8 +427,8 @@ if ($mrVulkanDllInstallDir -eq "") { } Write-Host "Comparing $regEntry" $rval=Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$regEntry -ErrorAction SilentlyContinue - if (!$?) { - Write-Warning "Ignoring $regEntry because Get-ItemProperty failed to find corresponding SDK registry entry" + if (!$? -or $rval -eq $null) { + Write-Warning "Ignoring $regEntry - corresponding SDK registry entry does not exist" $Error.Clear(); continue } @@ -426,7 +449,8 @@ if ($mrVulkanDllInstallDir -eq "") { } } if (!$?) { - Write-Error "Error: Failed searching VulkanDLLList" + Write-Warning "Failed searching VulkanDLLList" + $Error.Clear(); } } @@ -446,45 +470,53 @@ $VulkanSdkDirs+="$windrive\VulkanSDK\0.9.3" # layers were installed that are not from an SDK, we don't mess with them. Write-Host "Removing old layer registry values from HKLM\SOFTWARE\Khronos\Vulkan\ExplicitLayers" -Get-Item -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ExplicitLayers | Select-Object -ExpandProperty Property | - ForEach-Object { - $regval=$_ - ForEach ($sdkdir in $VulkanSdkDirs) { - if ($regval -like "$sdkdir\*.json") { - Remove-ItemProperty -ErrorAction SilentlyContinue -Path HKLM:\SOFTWARE\Khronos\Vulkan\ExplicitLayers -name $regval - if (!$?) { - Write-Error "Error: Remove-ItemProperty failed for -Path HKLM:\SOFTWARE\Khronos\Vulkan\ExplicitLayers -name $regval" - } else { - Write-Host "Removed registry value $regval" +$regkeys = @(Get-Item -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ExplicitLayers | Select-Object -ExpandProperty Property) +if ($regkeys -ne $null) { + ForEach ($regval in $regkeys) { + if ($regval -ne $null) { + ForEach ($sdkdir in $VulkanSdkDirs) { + if ($regval -like "$sdkdir\*.json") { + Remove-ItemProperty -ErrorAction SilentlyContinue -Path HKLM:\SOFTWARE\Khronos\Vulkan\ExplicitLayers -name $regval + if (!$?) { + Write-Error "Error: Remove-ItemProperty failed for -Path HKLM:\SOFTWARE\Khronos\Vulkan\ExplicitLayers -name $regval" + } else { + Write-Host "Removed registry value $regval" + } } - } - } - } + } + } + } +} if (!$?) { Write-Error "Error: Failed Removing old layer registry values from HKLM\SOFTWARE\Khronos\Vulkan\ExplicitLayers" + setScriptReturnValue(Get-CurrentLineNumber) } # Remove 32-bit layer registry value if we're targeting a 64-bit OS if ($ossize -eq 64) { - Get-Item -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Khronos\Vulkan\ExplicitLayers | Select-Object -ExpandProperty Property | - ForEach-Object { - $regval=$_ - ForEach ($sdkdir in $VulkanSdkDirs) { - if ($regval -like "$sdkdir\*.json") { - Remove-ItemProperty -ErrorAction SilentlyContinue -Path HKLM:\SOFTWARE\WOW6432Node\Khronos\Vulkan\ExplicitLayers -name $regval - if (!$?) { - Write-Error "Error: Remove-ItemProperty failed for -Path HKLM:\SOFTWARE\WOW6432Node\Khronos\Vulkan\ExplicitLayers -name $regval" - } else { - Write-Host "Removed WOW6432Node registry value $regval" + $regkeys = @(Get-Item -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Khronos\Vulkan\ExplicitLayers | Select-Object -ExpandProperty Property) + if ($regkeys -ne $null) { + ForEach ($regval in $regkeys) { + if ($regval -ne $null) { + ForEach ($sdkdir in $VulkanSdkDirs) { + if ($regval -like "$sdkdir\*.json") { + Remove-ItemProperty -ErrorAction SilentlyContinue -Path HKLM:\SOFTWARE\WOW6432Node\Khronos\Vulkan\ExplicitLayers -name $regval + if (!$?) { + Write-Error "Error: Remove-ItemProperty failed for -Path HKLM:\SOFTWARE\WOW6432Node\Khronos\Vulkan\ExplicitLayers -name $regval" + } else { + Write-Host "Removed WOW6432Node registry value $regval" + } } } - } + } } + } - if (!$?) { - Write-Error "Error: Failed Removing old layer registry values from HKLM\SOFTWARE\WOW6432Node\Khronos\Vulkan\ExplicitLayers" - } + if (!$?) { + Write-Error "Error: Failed Removing old layer registry values from HKLM\SOFTWARE\WOW6432Node\Khronos\Vulkan\ExplicitLayers" + setScriptReturnValue(Get-CurrentLineNumber) + } } @@ -499,6 +531,7 @@ if ($mrVulkanDllInstallDir -ne "") { New-Item -Force -ErrorAction SilentlyContinue -Path HKLM:\SOFTWARE\Khronos\Vulkan\ExplicitLayers | out-null if (!$?) { Write-Error "Error: Failed creating HKLM\SOFTWARE\Khronos\Vulkan\ExplicitLayers" + setScriptReturnValue(Get-CurrentLineNumber) } } if ($ossize -eq 64) { @@ -507,6 +540,7 @@ if ($mrVulkanDllInstallDir -ne "") { New-Item -Force -ErrorAction SilentlyContinue -Path HKLM:\SOFTWARE\WOW6432Node\Khronos\Vulkan\ExplicitLayers | out-null if (!$?) { Write-Error "Error: Failed creating HKLM\SOFTWARE\WOW6432Node\Khronos\Vulkan\ExplicitLayers" + setScriptReturnValue(Get-CurrentLineNumber) } } } @@ -520,10 +554,12 @@ if ($mrVulkanDllInstallDir -ne "") { New-ItemProperty -Path HKLM:\SOFTWARE\Khronos\Vulkan\ExplicitLayers -Name $mrVulkanDllInstallDir\Bin\$_ -PropertyType DWord -Value 0 | out-null if (!$?) { Write-Error "Error: Failed creating $mrVulkanDllInstallDir\Bin\$_" + setScriptReturnValue(Get-CurrentLineNumber) } } if (!$?) { Write-Error "Error: Failed Get-ChildItem $mrVulkanDllInstallDir\Bin | ForEach-Object " + setScriptReturnValue(Get-CurrentLineNumber) } # Create registry values for the WOW6432Node registry location for 32-bit items on a 64-bit OS @@ -533,10 +569,12 @@ if ($mrVulkanDllInstallDir -ne "") { New-ItemProperty -Path HKLM:\SOFTWARE\WOW6432Node\Khronos\Vulkan\ExplicitLayers -Name $mrVulkanDllInstallDir\Bin32\$_ -PropertyType DWord -Value 0 | out-null if (!$?) { Write-Error "Error: Failed creating $mrVulkanDllInstallDir\Bin32\$_" + setScriptReturnValue(Get-CurrentLineNumber) } } if (!$?) { Write-Error "Error: Failed Get-ChildItem $mrVulkanDllInstallDir\Bin32 | ForEach-Object " + setScriptReturnValue(Get-CurrentLineNumber) } } else { # Create registry values in normal registry location for 32-bit items on a 32-bit OS @@ -546,14 +584,19 @@ if ($mrVulkanDllInstallDir -ne "") { New-ItemProperty -Path HKLM:\SOFTWARE\Khronos\Vulkan\ExplicitLayers -Name $mrVulkanDllInstallDir\Bin32\$_ -PropertyType DWord -Value 0 | out-null if (!$?) { Write-Error "Error: Failed creating $mrVulkanDllInstallDir\Bin\$_" + setScriptReturnValue(Get-CurrentLineNumber) } } if (!$?) { Write-Error "Error: Failed Get-ChildItem $mrVulkanDllInstallDir\Bin32 | ForEach-Object " + setScriptReturnValue(Get-CurrentLineNumber) } } } +# Debug - for testing handling of script failure in installer +#setScriptReturnValue(Get-CurrentLineNumber) + # Final log output Write-Host "ConfigLayersAndVulkanDLL.ps1 completed" $endTime=Get-Date @@ -564,19 +607,16 @@ Stop-Transcript # Convert logfile to ascii Get-Content $log | Out-File -encoding ascii -filepath $logascii -# Temp to be used for debugging failure to install issue (as VulkanRT folder might get removed) -#Get-Content $log | Out-File -encoding ascii -filepath $logascii2 - - # Remove the unicode log as we no longer need it. Remove-Item $log +exit $script:scriptReturnValue # SIG # Begin signature block # MIIccAYJKoZIhvcNAQcCoIIcYTCCHF0CAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB # gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR -# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUFNNSYRu98top6sj+5PNNXfdh -# aN+gghefMIIFKDCCBBCgAwIBAgIQA7RxzU1//sKaOyCyyw9fVDANBgkqhkiG9w0B +# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUWzO9uMOZloqpSF0mSPfjnVcK +# X2ygghefMIIFKDCCBBCgAwIBAgIQA7RxzU1//sKaOyCyyw9fVDANBgkqhkiG9w0B # AQsFADByMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYD # VQQLExB3d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEyIEFz # c3VyZWQgSUQgQ29kZSBTaWduaW5nIENBMB4XDTE2MDQwODAwMDAwMFoXDTE3MDgx @@ -707,22 +747,22 @@ Remove-Item $log # aWdpQ2VydCBTSEEyIEFzc3VyZWQgSUQgQ29kZSBTaWduaW5nIENBAhADtHHNTX/+ # wpo7ILLLD19UMAkGBSsOAwIaBQCgeDAYBgorBgEEAYI3AgEMMQowCKACgAChAoAA # MBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgor -# BgEEAYI3AgEVMCMGCSqGSIb3DQEJBDEWBBS1dRcwLYpAdOGb79bA8lUPXs2weTAN -# BgkqhkiG9w0BAQEFAASCAQDaFv54IUAa3PRmDo4gr25cTzNNVRBVQn29+lBWRhL6 -# Z4xafc4dV2NuhsySyM/7CviTF/T32E9GfMUPjsje1L02FuP+xydJ/KHFba2Qe5Tm -# rqQIQTDsdYBx4imOecLbzF8mcfMjbBTLz3YTWDShTIhTR+WqVMbzvASfJ/jUj6bP -# wxiuHho0Gus669fK9xNrUr0Yo9Jaw82KLCsJFE/NgEV3eoNWi3ufZF4Owq+HWqLj -# ZfzKTOb+A7oLHEfr2bX3lrwm5O/dcb4gb6dUP2m1zY6B9hPPO5lwtCVFdOShU+a4 -# Xq+MQ6RvjjXx/wRyBgF9e24k56EXce5hS9KSM/r4HJcFoYICDzCCAgsGCSqGSIb3 +# BgEEAYI3AgEVMCMGCSqGSIb3DQEJBDEWBBTl9vUhNixlC4qK2N6ftsmXNxTB5DAN +# BgkqhkiG9w0BAQEFAASCAQBmoK4vUOuN1W2tbF6prfT9lK/x424kuyT2GmMuBg1K +# 2QLmoPVPFokJllqckm2snV2PrVZ2jQf1HqZfoQ9k9tJQ9Iysobsdi+Xk35m9Jhnb +# qoDBI7HI8NVzgczSgcOGMtV1SkSHMxnobVPnqNVyD1nK6OCSIFe8lKVggiNHokxv +# bpPOWW1oPO9eayYSoysEqwygODgV5Jr0wSVLDuoAKlnbYH4Hjvtf0JWJncm/l6ZM +# yWIXaBUWNV6Dl2ZTeCXIlBrNxC3nfLn6uBkbox0xvcYk6tvksy7fQsSFFWYiqR26 +# 9sW4wJmqvlKO1PKNwdiGnY2fvJzffot8NPEKxbb7l2ySoYICDzCCAgsGCSqGSIb3 # DQEJBjGCAfwwggH4AgEBMHYwYjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lD # ZXJ0IEluYzEZMBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTEhMB8GA1UEAxMYRGln # aUNlcnQgQXNzdXJlZCBJRCBDQS0xAhADAZoCOv9YsWvW1ermF/BmMAkGBSsOAwIa # BQCgXTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0x -# NjA2MDExNjMwNTFaMCMGCSqGSIb3DQEJBDEWBBQTfVtazojkMGVHBXKiXef3VObs -# mTANBgkqhkiG9w0BAQEFAASCAQCXNZHaksqQrHFmc96ks9qPT2mR35sHOOIOVCZn -# kFPyFEjzoZmMQAhcQqHdEvgEoIr5DZ6yuLTvtu8bEN3gS2iSXD542PatUBy/DsCc -# uFn4QFVewop/g6hPgy3VMwFWhd1t3YJ1HZtppE9N68Eth8bFODeMmc6Ogrv7oCts -# YwjBdccKXgrdAN/2cBIZCa8+FEj+sdO0ZKToVlRivETPnI8Y/XFrrgF3+cOkDg4e -# ZU11g/Ww9RYLdZiqIRe06pChRmHNrY5AZA9W4UgKyCQESWd8e0lLR/6uGCZulWL6 -# U3LKVUyUUP/eAHLO9iGsm3pA9L27gcnyl41UPVIqQ7VhSvrO +# NjA2MDMxODA1NTFaMCMGCSqGSIb3DQEJBDEWBBQ8siiyF+3YjaCU9cWVOMiV0i6H +# WjANBgkqhkiG9w0BAQEFAASCAQCcC1//Fo3cFfFAFDvhOtpcuzFn6vsIm6eGjcAD +# l/sUEeAS69BbPrapFDxwGjMbeFWSQK0KhzbxEs5DN/5eRrj1xX9SnhunszqPCzJ7 +# 66XJvuncyzKxQvOGGMLPbGkVHsximVT0IX+pPEZS25gTLBk8e30R6w9ChgykAxbz +# Gyi4gg8HNvk20aTydXelUA8hRYdb2dn/RLTamZjxAdmhRUyPuClgh4ZvOohILwAn +# Egh5cdu417ircbhFIJhujK/yr2C4uJEmb+JDST96luQBKQtlg7e3OnTBYddc3YoZ +# S5dTEsAn3PlDvkcuxg79fgK+Wf/EMOGaEv3bJaeReFcRp1l8 # SIG # End signature block diff --git a/windowsRuntimeInstaller/Diagnostic1.ps1 b/windowsRuntimeInstaller/Diagnostic1.ps1 new file mode 100644 index 00000000..90cf4db7 --- /dev/null +++ b/windowsRuntimeInstaller/Diagnostic1.ps1 @@ -0,0 +1,183 @@ +# Copyright (c) 2015-2016 The Khronos Group Inc. +# Copyright (c) 2015-2016 Valve Corporation +# Copyright (c) 2015-2016 LunarG, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Author: David Pinedo +# + + +# This Powershell script is run by the Vulkan Runtime Installer when it +# encounters a problem when running the ConfigLayersAndVulkanDLL.ps1 script. +# It is run to help diagnose whether the installer is capabable of running +# Powershell scripts on the target system. + + +$outfile=$Env:Temp+"\VulkanRTinstall\Diagnostic1.log" +Write-Output "Diagnostic1" | Out-File -encoding ascii -filepath $outfile + +# SIG # Begin signature block +# MIIccAYJKoZIhvcNAQcCoIIcYTCCHF0CAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB +# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR +# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUXZIII3ISc6TV7crVquI9urb2 +# FNqgghefMIIFKDCCBBCgAwIBAgIQA7RxzU1//sKaOyCyyw9fVDANBgkqhkiG9w0B +# AQsFADByMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYD +# VQQLExB3d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEyIEFz +# c3VyZWQgSUQgQ29kZSBTaWduaW5nIENBMB4XDTE2MDQwODAwMDAwMFoXDTE3MDgx +# MDEyMDAwMFowZTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCENvbG9yYWRvMRUwEwYD +# VQQHEwxGb3J0IENvbGxpbnMxFTATBgNVBAoTDEx1bmFyRywgSW5jLjEVMBMGA1UE +# AxMMTHVuYXJHLCBJbmMuMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA +# 9g6eKks1n/j5xBMG0viQaVqoxYjNIt2sLiDhBa1JMfPVvQsclZwsJl2FHhnQEg1/ +# YLeNUqSukbgTNXTGjkvNoh/PbjjBzlxZbPwRKO8tbHMRKZJjcVkOWLLReUGHkxJ3 +# i4hD6zH0K9DKMubb0ohmaA28ALsl8d4igz78uGyqa3jNXbiyNLJhd467u2nCySdV +# PFdXCMklePhW9VLm8VXSRDlBcx6tsaTpJr8lRZsq13xO7lwifQw1w2QRQzlnezUY +# PVnXIz+54Nu0U6JKPaTlxgbk9SlcP4f77UJuieGQGCWh3uCcASYQgUMjisetLyFU +# WZuPYpSbNWVksMaiIlSIuwIDAQABo4IBxTCCAcEwHwYDVR0jBBgwFoAUWsS5eyoK +# o6XqcQPAYPkt9mV1DlgwHQYDVR0OBBYEFBP4/a3JE2uXZpm3r1yknye/WxPWMA4G +# A1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzB3BgNVHR8EcDBuMDWg +# M6Axhi9odHRwOi8vY3JsMy5kaWdpY2VydC5jb20vc2hhMi1hc3N1cmVkLWNzLWcx +# LmNybDA1oDOgMYYvaHR0cDovL2NybDQuZGlnaWNlcnQuY29tL3NoYTItYXNzdXJl +# ZC1jcy1nMS5jcmwwTAYDVR0gBEUwQzA3BglghkgBhv1sAwEwKjAoBggrBgEFBQcC +# ARYcaHR0cHM6Ly93d3cuZGlnaWNlcnQuY29tL0NQUzAIBgZngQwBBAEwgYQGCCsG +# AQUFBwEBBHgwdjAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t +# ME4GCCsGAQUFBzAChkJodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNl +# cnRTSEEyQXNzdXJlZElEQ29kZVNpZ25pbmdDQS5jcnQwDAYDVR0TAQH/BAIwADAN +# BgkqhkiG9w0BAQsFAAOCAQEAscucuwAp0HisTjMWJii1ZX5H7+GAc048OJctdrTS +# VlUc7kJgEirXQb1TQbSevvt1wE6s3xJWUapWnYvvgEPOq036WFA+NRVoWU5eIUkG +# MsYGXH5ASHVBH+5/13wFLC1nXTxxrQ6B19uFFr5ZpsaP93EdD5pLqRxKrqLc9Stc +# /faupcVkclisgXOEDsCzvgGhhaFCc/RSeXOOAZg2EsJNbaydg/xyvZqPDG17NboL +# rgrzN5r6FoCk535HuGvcpjbr60nlwwzuxwqzXuMhGUTOs5O5cPpJQt6+iXBrlBgh +# 4jPNL+ZvFfJLDq3CUdnSh3S13GJruyTWzF2AxTeRAnw2fzCCBTAwggQYoAMCAQIC +# EAQJGBtf1btmdVNDtW+VUAgwDQYJKoZIhvcNAQELBQAwZTELMAkGA1UEBhMCVVMx +# FTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNv +# bTEkMCIGA1UEAxMbRGlnaUNlcnQgQXNzdXJlZCBJRCBSb290IENBMB4XDTEzMTAy +# MjEyMDAwMFoXDTI4MTAyMjEyMDAwMFowcjELMAkGA1UEBhMCVVMxFTATBgNVBAoT +# DERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTExMC8GA1UE +# AxMoRGlnaUNlcnQgU0hBMiBBc3N1cmVkIElEIENvZGUgU2lnbmluZyBDQTCCASIw +# DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPjTsxx/DhGvZ3cH0wsxSRnP0PtF +# mbE620T1f+Wondsy13Hqdp0FLreP+pJDwKX5idQ3Gde2qvCchqXYJawOeSg6funR +# Z9PG+yknx9N7I5TkkSOWkHeC+aGEI2YSVDNQdLEoJrskacLCUvIUZ4qJRdQtoaPp +# iCwgla4cSocI3wz14k1gGL6qxLKucDFmM3E+rHCiq85/6XzLkqHlOzEcz+ryCuRX +# u0q16XTmK/5sy350OTYNkO/ktU6kqepqCquE86xnTrXE94zRICUj6whkPlKWwfIP +# EvTFjg/BougsUfdzvL2FsWKDc0GCB+Q4i2pzINAPZHM8np+mM6n9Gd8lk9ECAwEA +# AaOCAc0wggHJMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMBMG +# A1UdJQQMMAoGCCsGAQUFBwMDMHkGCCsGAQUFBwEBBG0wazAkBggrBgEFBQcwAYYY +# aHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEMGCCsGAQUFBzAChjdodHRwOi8vY2Fj +# ZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRBc3N1cmVkSURSb290Q0EuY3J0MIGB +# BgNVHR8EejB4MDqgOKA2hjRodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vRGlnaUNl +# cnRBc3N1cmVkSURSb290Q0EuY3JsMDqgOKA2hjRodHRwOi8vY3JsMy5kaWdpY2Vy +# dC5jb20vRGlnaUNlcnRBc3N1cmVkSURSb290Q0EuY3JsME8GA1UdIARIMEYwOAYK +# YIZIAYb9bAACBDAqMCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy5kaWdpY2VydC5j +# b20vQ1BTMAoGCGCGSAGG/WwDMB0GA1UdDgQWBBRaxLl7KgqjpepxA8Bg+S32ZXUO +# WDAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkqhkiG9w0BAQsF +# AAOCAQEAPuwNWiSz8yLRFcgsfCUpdqgdXRwtOhrE7zBh134LYP3DPQ/Er4v97yrf +# IFU3sOH20ZJ1D1G0bqWOWuJeJIFOEKTuP3GOYw4TS63XX0R58zYUBor3nEZOXP+Q +# sRsHDpEV+7qvtVHCjSSuJMbHJyqhKSgaOnEoAjwukaPAJRHinBRHoXpoaK+bp1wg +# XNlxsQyPu6j4xRJon89Ay0BEpRPw5mQMJQhCMrI2iiQC/i9yfhzXSUWW6Fkd6fp0 +# ZGuy62ZD2rOwjNXpDd32ASDOmTFjPQgaGLOBm0/GkxAG/AeB+ova+YJJ92JuoVP6 +# EpQYhS6SkepobEQysmah5xikmmRR7zCCBmowggVSoAMCAQICEAMBmgI6/1ixa9bV +# 6uYX8GYwDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERp +# Z2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTEhMB8GA1UEAxMY +# RGlnaUNlcnQgQXNzdXJlZCBJRCBDQS0xMB4XDTE0MTAyMjAwMDAwMFoXDTI0MTAy +# MjAwMDAwMFowRzELMAkGA1UEBhMCVVMxETAPBgNVBAoTCERpZ2lDZXJ0MSUwIwYD +# VQQDExxEaWdpQ2VydCBUaW1lc3RhbXAgUmVzcG9uZGVyMIIBIjANBgkqhkiG9w0B +# AQEFAAOCAQ8AMIIBCgKCAQEAo2Rd/Hyz4II14OD2xirmSXU7zG7gU6mfH2RZ5nxr +# f2uMnVX4kuOe1VpjWwJJUNmDzm9m7t3LhelfpfnUh3SIRDsZyeX1kZ/GFDmsJOqo +# SyyRicxeKPRktlC39RKzc5YKZ6O+YZ+u8/0SeHUOplsU/UUjjoZEVX0YhgWMVYd5 +# SEb3yg6Np95OX+Koti1ZAmGIYXIYaLm4fO7m5zQvMXeBMB+7NgGN7yfj95rwTDFk +# jePr+hmHqH7P7IwMNlt6wXq4eMfJBi5GEMiN6ARg27xzdPpO2P6qQPGyznBGg+na +# QKFZOtkVCVeZVjCT88lhzNAIzGvsYkKRrALA76TwiRGPdwIDAQABo4IDNTCCAzEw +# DgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYB +# BQUHAwgwggG/BgNVHSAEggG2MIIBsjCCAaEGCWCGSAGG/WwHATCCAZIwKAYIKwYB +# BQUHAgEWHGh0dHBzOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwggFkBggrBgEFBQcC +# AjCCAVYeggFSAEEAbgB5ACAAdQBzAGUAIABvAGYAIAB0AGgAaQBzACAAQwBlAHIA +# dABpAGYAaQBjAGEAdABlACAAYwBvAG4AcwB0AGkAdAB1AHQAZQBzACAAYQBjAGMA +# ZQBwAHQAYQBuAGMAZQAgAG8AZgAgAHQAaABlACAARABpAGcAaQBDAGUAcgB0ACAA +# QwBQAC8AQwBQAFMAIABhAG4AZAAgAHQAaABlACAAUgBlAGwAeQBpAG4AZwAgAFAA +# YQByAHQAeQAgAEEAZwByAGUAZQBtAGUAbgB0ACAAdwBoAGkAYwBoACAAbABpAG0A +# aQB0ACAAbABpAGEAYgBpAGwAaQB0AHkAIABhAG4AZAAgAGEAcgBlACAAaQBuAGMA +# bwByAHAAbwByAGEAdABlAGQAIABoAGUAcgBlAGkAbgAgAGIAeQAgAHIAZQBmAGUA +# cgBlAG4AYwBlAC4wCwYJYIZIAYb9bAMVMB8GA1UdIwQYMBaAFBUAEisTmLKZB+0e +# 36K+Vw0rZwLNMB0GA1UdDgQWBBRhWk0ktkkynUoqeRqDS/QeicHKfTB9BgNVHR8E +# djB0MDigNqA0hjJodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRBc3N1 +# cmVkSURDQS0xLmNybDA4oDagNIYyaHR0cDovL2NybDQuZGlnaWNlcnQuY29tL0Rp +# Z2lDZXJ0QXNzdXJlZElEQ0EtMS5jcmwwdwYIKwYBBQUHAQEEazBpMCQGCCsGAQUF +# BzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQQYIKwYBBQUHMAKGNWh0dHA6 +# Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRENBLTEuY3J0 +# MA0GCSqGSIb3DQEBBQUAA4IBAQCdJX4bM02yJoFcm4bOIyAPgIfliP//sdRqLDHt +# OhcZcRfNqRu8WhY5AJ3jbITkWkD73gYBjDf6m7GdJH7+IKRXrVu3mrBgJuppVyFd +# NC8fcbCDlBkFazWQEKB7l8f2P+fiEUGmvWLZ8Cc9OB0obzpSCfDscGLTYkuw4HOm +# ksDTjjHYL+NtFxMG7uQDthSr849Dp3GdId0UyhVdkkHa+Q+B0Zl0DSbEDn8btfWg +# 8cZ3BigV6diT5VUW8LsKqxzbXEgnZsijiwoc5ZXarsQuWaBh3drzbaJh6YoLbewS +# GL33VVRAA5Ira8JRwgpIr7DUbuD0FAo6G+OPPcqvao173NhEMIIGzTCCBbWgAwIB +# AgIQBv35A5YDreoACus/J7u6GzANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJV +# UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu +# Y29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYx +# MTEwMDAwMDAwWhcNMjExMTEwMDAwMDAwWjBiMQswCQYDVQQGEwJVUzEVMBMGA1UE +# ChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSEwHwYD +# VQQDExhEaWdpQ2VydCBBc3N1cmVkIElEIENBLTEwggEiMA0GCSqGSIb3DQEBAQUA +# A4IBDwAwggEKAoIBAQDogi2Z+crCQpWlgHNAcNKeVlRcqcTSQQaPyTP8TUWRXIGf +# 7Syc+BZZ3561JBXCmLm0d0ncicQK2q/LXmvtrbBxMevPOkAMRk2T7It6NggDqww0 +# /hhJgv7HxzFIgHweog+SDlDJxofrNj/YMMP/pvf7os1vcyP+rFYFkPAyIRaJxnCI +# +QWXfaPHQ90C6Ds97bFBo+0/vtuVSMTuHrPyvAwrmdDGXRJCgeGDboJzPyZLFJCu +# WWYKxI2+0s4Grq2Eb0iEm09AufFM8q+Y+/bOQF1c9qjxL6/siSLyaxhlscFzrdfx +# 2M8eCnRcQrhofrfVdwonVnwPYqQ/MhRglf0HBKIJAgMBAAGjggN6MIIDdjAOBgNV +# HQ8BAf8EBAMCAYYwOwYDVR0lBDQwMgYIKwYBBQUHAwEGCCsGAQUFBwMCBggrBgEF +# BQcDAwYIKwYBBQUHAwQGCCsGAQUFBwMIMIIB0gYDVR0gBIIByTCCAcUwggG0Bgpg +# hkgBhv1sAAEEMIIBpDA6BggrBgEFBQcCARYuaHR0cDovL3d3dy5kaWdpY2VydC5j +# b20vc3NsLWNwcy1yZXBvc2l0b3J5Lmh0bTCCAWQGCCsGAQUFBwICMIIBVh6CAVIA +# QQBuAHkAIAB1AHMAZQAgAG8AZgAgAHQAaABpAHMAIABDAGUAcgB0AGkAZgBpAGMA +# YQB0AGUAIABjAG8AbgBzAHQAaQB0AHUAdABlAHMAIABhAGMAYwBlAHAAdABhAG4A +# YwBlACAAbwBmACAAdABoAGUAIABEAGkAZwBpAEMAZQByAHQAIABDAFAALwBDAFAA +# UwAgAGEAbgBkACAAdABoAGUAIABSAGUAbAB5AGkAbgBnACAAUABhAHIAdAB5ACAA +# QQBnAHIAZQBlAG0AZQBuAHQAIAB3AGgAaQBjAGgAIABsAGkAbQBpAHQAIABsAGkA +# YQBiAGkAbABpAHQAeQAgAGEAbgBkACAAYQByAGUAIABpAG4AYwBvAHIAcABvAHIA +# YQB0AGUAZAAgAGgAZQByAGUAaQBuACAAYgB5ACAAcgBlAGYAZQByAGUAbgBjAGUA +# LjALBglghkgBhv1sAxUwEgYDVR0TAQH/BAgwBgEB/wIBADB5BggrBgEFBQcBAQRt +# MGswJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBDBggrBgEF +# BQcwAoY3aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0QXNzdXJl +# ZElEUm9vdENBLmNydDCBgQYDVR0fBHoweDA6oDigNoY0aHR0cDovL2NybDMuZGln +# aWNlcnQuY29tL0RpZ2lDZXJ0QXNzdXJlZElEUm9vdENBLmNybDA6oDigNoY0aHR0 +# cDovL2NybDQuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0QXNzdXJlZElEUm9vdENBLmNy +# bDAdBgNVHQ4EFgQUFQASKxOYspkH7R7for5XDStnAs0wHwYDVR0jBBgwFoAUReui +# r/SSy4IxLVGLp6chnfNtyA8wDQYJKoZIhvcNAQEFBQADggEBAEZQPsm3KCSnOB22 +# WymvUs9S6TFHq1Zce9UNC0Gz7+x1H3Q48rJcYaKclcNQ5IK5I9G6OoZyrTh4rHVd +# Fxc0ckeFlFbR67s2hHfMJKXzBBlVqefj56tizfuLLZDCwNK1lL1eT7EF0g49GqkU +# W6aGMWKoqDPkmzmnxPXOHXh2lCVz5Cqrz5x2S+1fwksW5EtwTACJHvzFebxMElf+ +# X+EevAJdqP77BzhPDcZdkbkPZ0XN1oPt55INjbFpjE/7WeAjD9KqrgB87pxCDs+R +# 1ye3Fu4Pw718CqDuLAhVhSK46xgaTfwqIa1JMYNHlXdx3LEbS0scEJx3FMGdTy9a +# lQgpECYxggQ7MIIENwIBATCBhjByMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGln +# aUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhE +# aWdpQ2VydCBTSEEyIEFzc3VyZWQgSUQgQ29kZSBTaWduaW5nIENBAhADtHHNTX/+ +# wpo7ILLLD19UMAkGBSsOAwIaBQCgeDAYBgorBgEEAYI3AgEMMQowCKACgAChAoAA +# MBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgor +# BgEEAYI3AgEVMCMGCSqGSIb3DQEJBDEWBBQYqTK+5RS95764dNPZ2T3z0jT+UDAN +# BgkqhkiG9w0BAQEFAASCAQBxPm4AI4omYJmPEnd/OaN+l/cm2ub2D432zRg8Nr0m +# 90TANmuNHLv9du3G4eKSqmKlAu9cVbhfqnioaiwC05bSO02gaH8q1bFBVANkD/e5 +# igGzGvYxP+Vqfa8xv8kiN0aNOOsznMrpCA8pcncPtNhiblyG0ipecLtCzTZoiDcA +# +dHLd54E9NcYqm/SZuHHD5Fk2jqwIDAAFHokU2eNZWGxB9Gx+ey3G4DekQEqkUDR +# LmEdq0OZeZULqeQQnGQ8grx0PmwxRTDBI7RkA/UGQTW4ibFfJfgdYjdQVWqguEtL +# 5dPmqZyOdF8AapUwGnDpzqPmZy+WPYetrOHHwf2y1v1hoYICDzCCAgsGCSqGSIb3 +# DQEJBjGCAfwwggH4AgEBMHYwYjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lD +# ZXJ0IEluYzEZMBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTEhMB8GA1UEAxMYRGln +# aUNlcnQgQXNzdXJlZCBJRCBDQS0xAhADAZoCOv9YsWvW1ermF/BmMAkGBSsOAwIa +# BQCgXTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0x +# NjA2MDMxODA2MzlaMCMGCSqGSIb3DQEJBDEWBBRxXYss0beJT3njEEWEltXbgfi9 +# 4zANBgkqhkiG9w0BAQEFAASCAQB1oq4vjrzr+8WHyhrhGzfMoTyYW6vGVBu6hVfB +# hsC0Wm1n6oebLNzGNmpaatmYtsV4syIDSdlQfIb9SkHJ173uTIUCWPS1jY1lqUF8 +# sXEYqgh74X5aDfTArA7geKdSBplnKg3oo+/8fF8NFE3wY8nQ5JXAWs8AgeQYeT5H +# KsOsWxCGlzN/3WvW3UfABUPzPMTUNdPpUh6WO/9L7HcN2uBg0CVemtpc3Da2IXyx +# +rKQkzeoCHAaUlEhvhUSQTvY4Sq0Wn2NKEWfHJrP7pFQvQ3xissPLnJu+HWPepKM +# 2W2kPrQBRL0MvZhtgrEx7Gmydf2GoU2UlMjll69spQ3yA2GG +# SIG # End signature block diff --git a/windowsRuntimeInstaller/InstallerRT.nsi b/windowsRuntimeInstaller/InstallerRT.nsi index 680a14a3..077beaea 100644 --- a/windowsRuntimeInstaller/InstallerRT.nsi +++ b/windowsRuntimeInstaller/InstallerRT.nsi @@ -86,10 +86,6 @@ Var IDir # Install count Var IC -# Error code from powershell script -Var PsErr - - ############################################# # StrRep - string replace @@ -238,10 +234,6 @@ Section # Turn on logging LogSet on - # Remove contents of temp dir - SetOutPath "$TEMP\VulkanRT" - RmDir /R "$TEMP\VulkanRT" - # If running on a 64-bit OS machine, disable registry re-direct since we're running as a 32-bit executable. ${If} ${RunningX64} @@ -251,15 +243,16 @@ Section ${Endif} # Create our temp directory, with minimal permissions - SetOutPath "$TEMP\VulkanRT" - AccessControl::DisableFileInheritance $TEMP\VulkanRT - AccessControl::SetFileOwner $TEMP\VulkanRT "Administrators" - AccessControl::ClearOnFile $TEMP\VulkanRT "Administrators" "FullAccess" - AccessControl::SetOnFile $TEMP\VulkanRT "SYSTEM" "FullAccess" - AccessControl::GrantOnFile $TEMP\VulkanRT "Everyone" "ListDirectory" - AccessControl::GrantOnFile $TEMP\VulkanRT "Everyone" "GenericExecute" - AccessControl::GrantOnFile $TEMP\VulkanRT "Everyone" "GenericRead" - AccessControl::GrantOnFile $TEMP\VulkanRT "Everyone" "ReadAttributes" + RmDir /R "$TEMP\VulkanRTinstall" + SetOutPath "$TEMP\VulkanRTinstall" + AccessControl::DisableFileInheritance $TEMP\VulkanRTinstall + AccessControl::SetFileOwner $TEMP\VulkanRTinstall "Administrators" + AccessControl::ClearOnFile $TEMP\VulkanRTinstall "Administrators" "FullAccess" + AccessControl::SetOnFile $TEMP\VulkanRTinstall "SYSTEM" "FullAccess" + AccessControl::GrantOnFile $TEMP\VulkanRTinstall "Everyone" "ListDirectory" + AccessControl::GrantOnFile $TEMP\VulkanRTinstall "Everyone" "GenericExecute" + AccessControl::GrantOnFile $TEMP\VulkanRTinstall "Everyone" "GenericRead" + AccessControl::GrantOnFile $TEMP\VulkanRTinstall "Everyone" "ReadAttributes" StrCpy $1 10 Call CheckForError @@ -418,12 +411,18 @@ Section # Run the ConfigLayersAndVulkanDLL.ps1 script to copy the most recent version of # vulkan--*.dll to vulkan-.dll, and to set up layer registry # entries to use layers from the corresponding SDK - nsExec::ExecToStack 'powershell -NoLogo -NonInteractive -WindowStyle Hidden -inputformat none -ExecutionPolicy RemoteSigned -File ConfigLayersAndVulkanDLL.ps1 ${VERSION_ABI_MAJOR} 64' - pop $PsErr - ${If} $PsErr != 0 + nsExec::ExecToStack 'powershell -NoProfile -NoLogo -NonInteractive -WindowStyle Hidden -inputformat none -ExecutionPolicy RemoteSigned -Command .\ConfigLayersAndVulkanDLL.ps1 ${VERSION_ABI_MAJOR} 64 ; exit $$LASTEXITCODE' + pop $0 + Rename "$TEMP\ConfigLayersAndVulkanDLL.log" "$TEMP\VulkanRTinstall\ConfigLayersAndVulkanDLL.log" + ${If} $0 != 0 + # PS Script failed, see if we can run a simple ps command and a simple ps script + nsExec::ExecToStack 'powershell -NoProfile -NoLogo -NonInteractive -WindowStyle Hidden -inputformat none -Command Write-Output Diagnostic0 | Out-File -encoding ascii -filePath "$TEMP\VulkanRTinstall\Diagnostic0.log"' + File Diagnostic1.ps1 + nsExec::ExecToStack 'powershell -NoProfile -NoLogo -NonInteractive -WindowStyle Hidden -inputformat none -ExecutionPolicy RemoteSigned -Command .\Diagnostic1.ps1' + Delete Diagnostic1.ps1 SetErrors ${EndIf} - StrCpy $1 45 + IntOp $1 10000 + $0 Call CheckForError # Else, running on a 32-bit OS machine @@ -446,12 +445,18 @@ Section # Run the ConfigLayersAndVulkanDLL.ps1 script to copy the most recent version of # vulkan--*.dll to vulkan-.dll, and to set up layer registry # entries to use layers from the corresponding SDK - nsExec::ExecToStack 'powershell -NoLogo -NonInteractive -WindowStyle Hidden -inputformat none -ExecutionPolicy RemoteSigned -File ConfigLayersAndVulkanDLL.ps1 ${VERSION_ABI_MAJOR} 32' - pop $PsErr - ${If} $PsErr != 0 + nsExec::ExecToStack 'powershell -NoProfile -NoLogo -NonInteractive -WindowStyle Hidden -inputformat none -ExecutionPolicy RemoteSigned -Command .\ConfigLayersAndVulkanDLL.ps1 ${VERSION_ABI_MAJOR} 32 ; exit $$LASTEXITCODE' + pop $0 + Rename "$TEMP\ConfigLayersAndVulkanDLL.log" "$TEMP\VulkanRTinstall\ConfigLayersAndVulkanDLL.log" + ${If} $0 != 0 + # PS Script failed, see if we can run a simple ps command and a simple ps script + nsExec::ExecToStack 'powershell -NoProfile -NoLogo -NonInteractive -WindowStyle Hidden -inputformat none -Command Write-Output Diagnostic0 | Out-File -encoding ascii -filePath "$TEMP\VulkanRTinstall\Diagnostic0.log"' + File Diagnostic1.ps1 + nsExec::ExecToStack 'powershell -NoProfile -NoLogo -NonInteractive -WindowStyle Hidden -inputformat none -ExecutionPolicy RemoteSigned -Command .\Diagnostic1.ps1' + Delete Diagnostic1.ps1 SetErrors ${EndIf} - StrCpy $1 60 + IntOp $1 20000 + $0 Call CheckForError ${Endif} @@ -462,7 +467,7 @@ Section # Finish logging and move log file to TEMP dir LogSet off - Rename "$INSTDIR\install.log" "$TEMP\VulkanRT\Install.log" + Rename "$INSTDIR\install.log" "$TEMP\VulkanRTinstall\Install.log" SectionEnd @@ -470,12 +475,10 @@ SectionEnd !ifdef UNINSTALLER Section "uninstall" - # Remove contents of temp dir - SetOutPath "$TEMP\VulkanRT" - RmDir /R "$TEMP\VulkanRT" - # Turn on logging - StrCpy $INSTDIR $TEMP\VulkanRT + RmDir /R "$TEMP\VulkanRTuninstall" + SetOutPath "$TEMP\VulkanRTuninstall" + StrCpy $INSTDIR $TEMP\VulkanRTuninstall LogSet on # If running on a 64-bit OS machine, disable registry re-direct since we're running as a 32-bit executable. @@ -553,7 +556,8 @@ Section "uninstall" # Copy the most recent version of vulkan--*.dll to vulkan-.dll # Copy the most recent version of vulkaninfo--*.exe to vulkaninfo.exe # Set up layer registry entries to use layers from the corresponding SDK - nsExec::ExecToStack 'powershell -NoLogo -NonInteractive -WindowStyle Hidden -inputformat none -ExecutionPolicy RemoteSigned -File "$IDir\ConfigLayersAndVulkanDLL.ps1" ${VERSION_ABI_MAJOR} 64' + nsExec::ExecToStack 'powershell -NoProfile -NoLogo -NonInteractive -WindowStyle Hidden -inputformat none -ExecutionPolicy RemoteSigned -File "$IDir\ConfigLayersAndVulkanDLL.ps1" ${VERSION_ABI_MAJOR} 64' + Rename "$TEMP\ConfigLayersAndVulkanDLL.log" "$TEMP\VulkanRTuninstall\ConfigLayersAndVulkanDLL.log" # Else, running on a 32-bit OS machine ${Else} @@ -570,7 +574,8 @@ Section "uninstall" # Copy the most recent version of vulkan--*.dll to vulkan-.dll # Copy the most recent version of vulkaninfo--*.exe to vulkaninfo.exe # Set up layer registry entries to use layers from the corresponding SDK - nsExec::ExecToStack 'powershell -NoLogo -NonInteractive -WindowStyle Hidden -inputformat none -ExecutionPolicy RemoteSigned -File "$IDir\ConfigLayersAndVulkanDLL.ps1" ${VERSION_ABI_MAJOR} 32' + nsExec::ExecToStack 'powershell -NoProfile -NoLogo -NonInteractive -WindowStyle Hidden -inputformat none -ExecutionPolicy RemoteSigned -File "$IDir\ConfigLayersAndVulkanDLL.ps1" ${VERSION_ABI_MAJOR} 32' + Rename "$TEMP\ConfigLayersAndVulkanDLL.log" "$TEMP\VulkanRTuninstall\ConfigLayersAndVulkanDLL.log" ${EndIf} @@ -621,7 +626,7 @@ Section "uninstall" StrCpy $1 80 Call un.CheckForError - # Finish logging and move log file to TEMP dir + # Finish logging LogSet off Rename "$INSTDIR\install.log" "$INSTDIR\Uninstall.log" @@ -667,19 +672,18 @@ Function CheckForError # Finish logging and move log file to TEMP dir LogSet off - Rename "$INSTDIR\install.log" "$TEMP\VulkanRT\install.log" + Rename "$INSTDIR\install.log" "$TEMP\VulkanRTinstall\install.log" # Copy the uninstaller to a temp folder of our own creation so we can completely # delete the old contents. - SetOutPath "$TEMP\VulkanRT" - CopyFiles "$INSTDIR\Uninstall${PRODUCTNAME}.exe" "$TEMP\VulkanRT" + SetOutPath "$TEMP\VulkanRTinstall" + CopyFiles "$INSTDIR\Uninstall${PRODUCTNAME}.exe" "$TEMP\VulkanRTinstall" - # No uninstall using the version in the temporary folder. - ExecWait '"$TEMP\VulkanRT\Uninstall${PRODUCTNAME}.exe" /S _?=$INSTDIR' + # Do uninstall using the version in the temporary folder. + ExecWait '"$TEMP\VulkanRTinstall\Uninstall${PRODUCTNAME}.exe" /S _?=$INSTDIR' # Delete the copy of the uninstaller we ran - Delete /REBOOTOK "$TEMP\VulkanRT\Uninstall${PRODUCTNAME}.exe" - RmDir /R /REBOOTOK "$TEMP\VulkanRT" + Delete /REBOOTOK "$TEMP\VulkanRTinstall\Uninstall${PRODUCTNAME}.exe" # Set an error message to output SetErrorLevel $1 @@ -700,8 +704,7 @@ Function un.CheckForError # Finish logging and move log file to TEMP dir LogSet off - Delete "$TEMP\VulkanRT\Uninstall.log" - Rename "$INSTDIR\install.log" "$TEMP\VulkanRT\Uninstall.log" + Delete "$TEMP\VulkanRTuninstall\Uninstall.log" Quit ${EndIf} -- cgit v1.2.3