forked from dotnet/diagnostics
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDisableSignatureCheck.ps1
49 lines (48 loc) · 1.72 KB
/
DisableSignatureCheck.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Param(
[switch] $Restore,
[string] $RepoRoot
)
$windowsNode = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\"
$relevantNodeName = "MiniDumpSettings"
$relevantNode = "$windowsNode\$relevantNodeName"
$propName = "DisableAuxProviderSignatureCheck"
$stateFileDirectory = "$RepoRoot\artifacts\tmp"
$stateFileName = "$stateFileDirectory\SignatureCheck.state"
if ($Restore)
{
if (Test-Path $stateFileName)
{
Write-Host "Restoring state"
$value = Get-Content -Path $stateFileName
Write-Host "Restoring state: Set-ItemProperty $relevantNode -Name $propName -Value $value"
Set-ItemProperty $relevantNode -Name $propName -Value $value -Type "DWORD"
Write-Host "Restoring state: after Set-ItemProperty"
}
}
else
{
$value = 0
if (Test-Path $relevantNode)
{
try
{
Write-Host "Disabling state: Get-ItemPropertyValue -Path $relevantNode -Name $propName"
$value = Get-ItemPropertyValue -Path $relevantNode -Name $propName
}
catch
{
Write-Host "Disabling state: exception"
}
}
else
{
Write-Host "Disabling state: New-Item -Path $windowsNode -Name $relevantNodeName"
New-Item -Path $windowsNode -Name $relevantNodeName | Out-Null
}
New-Item -Path $stateFileDirectory -Force -ItemType 'Directory' | Out-Null
Write-Host "Disabling state: Writing state $value file to $stateFileName"
Out-File -Encoding ascii -InputObject $value -FilePath $stateFileName
Write-Host "Disabling state: Set-ItemProperty $relevantNode -Name $propName -Value 1"
Set-ItemProperty $relevantNode -Name $propName -Value 1 -Type "DWORD"
Write-Host "Disabling state: after Set-ItemProperty"
}