SystemCheck.ps1


<#PSScriptInfo
 
.VERSION 1.0
 
.GUID 1e6ea925-0429-4d5a-99a4-2f225f0551af
 
.AUTHOR chens
 
.COMPANYNAME
 
.COPYRIGHT
 
.TAGS
 
.LICENSEURI
 
.PROJECTURI
 
.ICONURI
 
.EXTERNALMODULEDEPENDENCIES
 
.REQUIREDSCRIPTS
 
.EXTERNALSCRIPTDEPENDENCIES
 
.RELEASENOTES
 
 
.PRIVATEDATA
 
#>


<#
 
.DESCRIPTION
 Rusted Wizard Personal System check script
 
#>
 
param(
    [Parameter(Mandatory = $False)]
    [Switch]$AfterRestart
)

function CheckExitCode {
    param(
        [Parameter(Mandatory = $True)]
        [string]$StepName
    )
    if ($LASTEXITCODE -ne 0) {
        Write-Host -ForegroundColor Red "Step $StepName failed!"
        return
    }
    Write-Host -ForegroundColor Green "Step $StepName Completed with exit code 0"
}

if (-Not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) {
    Write-Host "You need to run this script as Administrator"
    return
}

sfc /scannow
CheckExitCode -StepName "System Integrity Verification"
if (!$AfterRestart) {
    dism /online /cleanup-image /checkhealth
    CheckExitCode -StepName "Check Image Health"
    dism /online /cleanup-image /scanhealth
    CheckExitCode -StepName "Scan Image Health"
    dism /online /cleanup-image /restorehealth
    CheckExitCode -StepName "Restore Image Health"
    dism /online /cleanup-image /startcomponentcleanup
    CheckExitCode -StepName "Clean Component Store"
    dism /online /cleanup-image /startcomponentcleanup /resetbase
    CheckExitCode -StepName "Clean Component Store with resetbase"
    dism /online /cleanup-image /checkhealth
    CheckExitCode -StepName "Check Image Health"
    dism /online /cleanup-image /scanhealth
    CheckExitCode -StepName "Scan Image Health"
    dism /online /cleanup-image /restorehealth
    CheckExitCode -StepName "Restore Image Health"
}




# SIG # Begin signature block
# MIIV9QYJKoZIhvcNAQcCoIIV5jCCFeICAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUqSrUkpyfEvDsxknOpwyIgWT7
# lJ2gghKxMIIF2DCCBMCgAwIBAgIRAOQnBJX2jJHW0Ox7SU6k3xwwDQYJKoZIhvcN
# AQELBQAwfjELMAkGA1UEBhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9n
# aWVzIFMuQS4xJzAlBgNVBAsTHkNlcnR1bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
# eTEiMCAGA1UEAxMZQ2VydHVtIFRydXN0ZWQgTmV0d29yayBDQTAeFw0xODA5MTEw
# OTI2NDdaFw0yMzA5MTEwOTI2NDdaMHwxCzAJBgNVBAYTAlVTMQ4wDAYDVQQIDAVU
# ZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9u
# MTEwLwYDVQQDDChTU0wuY29tIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
# UlNBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA+Q/doyt9y9Aq/uxn
# habnLhu6d+Hj9a+k7PpKXZHEV0drGHdrdvL9k+Q9D8IWngtmw1aUnheDhc5W7/IW
# /QBi9SIJVOhlF05BueBPRpeqG8i4bmJeabFf2yoCfvxsyvNB2O3Q6Pw/YUjtsAMU
# HRAOSxngu07shmX/NvNeZwILnYZVYf16OO3+4hkAt2+hUGJ1dDyg+sglkrRueiLH
# +B6h47LdkTGrKx0E/6VKBDfphaQzK/3i1lU0fBmkSmjHsqjTt8qhk4jrwZe8jPkd
# 2SKEJHTHBD1qqSmTzOu4W+H+XyWqNFjIwSNUnRuYEcM4nH49hmylD0CGfAL0XAJP
# KMuucZ8POsgz/hElNer8usVgPdl8GNWyqdN1eANyIso6wx/vLOUuqfqeLLZRRv2v
# A9bqYGjqhRY2a4XpHsCz3cQk3IAqgUFtlD7I4MmBQQCeXr9/xQiYohgsQkCz+W84
# J0tOgPQ9gUfgiHzqHM61dVxRLhwrfxpyKOcAtdF0xtfkn60Hk7ZTNTX8N+TD9l0W
# viFz3pIK+KBjaryWkmo++LxlVZve9Q2JJgT8JRqmJWnLwm3KfOJZX5es6+8uyLzX
# G1k8K8zyGciTaydjGc/86Sb4ynGbf5P+NGeETpnr/LN4CTNwumamdu0bc+sapQ3E
# IhMglFYKTixsTrH9z5wJuqIz7YcCAwEAAaOCAVEwggFNMBIGA1UdEwEB/wQIMAYB
# Af8CAQIwHQYDVR0OBBYEFN0ECQei9Xp9UlMSkpXuOIAlDaZZMB8GA1UdIwQYMBaA
# FAh2zcsH/yT2xc3tu5C84oQ3RnX3MA4GA1UdDwEB/wQEAwIBBjA2BgNVHR8ELzAt
# MCugKaAnhiVodHRwOi8vc3NsY29tLmNybC5jZXJ0dW0ucGwvY3RuY2EuY3JsMHMG
# CCsGAQUFBwEBBGcwZTApBggrBgEFBQcwAYYdaHR0cDovL3NzbGNvbS5vY3NwLWNl
# cnR1bS5jb20wOAYIKwYBBQUHMAKGLGh0dHA6Ly9zc2xjb20ucmVwb3NpdG9yeS5j
# ZXJ0dW0ucGwvY3RuY2EuY2VyMDoGA1UdIAQzMDEwLwYEVR0gADAnMCUGCCsGAQUF
# BwIBFhlodHRwczovL3d3dy5jZXJ0dW0ucGwvQ1BTMA0GCSqGSIb3DQEBCwUAA4IB
# AQAflZojVO6FwvPUb7npBI9Gfyz3MsCnQ6wHAO3gqUUt/Rfh7QBAyK+YrPXAGa0b
# oJcwQGzsW/ujk06MiWIbfPA6X6dCz1jKdWWcIky/dnuYk5wVgzOxDtxROId8lZwS
# aZQeAHh0ftzABne6cC2HLNdoneO6ha1J849ktBUGg5LGl6RAk4ut8WeUtLlaZ1Q8
# qBvZBc/kpPmIEgAGiCWF1F7u85NX1oH4LK739VFIq7ZiOnnb7C7yPxRWOsjZy6Si
# TyWo0ZurLTAgUAcab/HxlB05g2PoH/1J0OgdRrJGgia9nJ3homhBSFFuevw1lvRU
# 0rwrROVH13eCpUqrX5czqyQRMIIGWzCCBEOgAwIBAgIQV156WorWyKgnVBrnbADy
# +TANBgkqhkiG9w0BAQsFADB4MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMx
# EDAOBgNVBAcMB0hvdXN0b24xETAPBgNVBAoMCFNTTCBDb3JwMTQwMgYDVQQDDCtT
# U0wuY29tIENvZGUgU2lnbmluZyBJbnRlcm1lZGlhdGUgQ0EgUlNBIFIxMB4XDTIy
# MDcwOTE3MzEwN1oXDTI1MDcwODE3MzEwN1owZDELMAkGA1UEBhMCQ0ExGTAXBgNV
# BAgMEEJyaXRpc2ggQ29sdW1iaWExEDAOBgNVBAcMB0J1cm5hYnkxEzARBgNVBAoM
# ClNoaWtlIENoZW4xEzARBgNVBAMMClNoaWtlIENoZW4wggGiMA0GCSqGSIb3DQEB
# AQUAA4IBjwAwggGKAoIBgQC2KsqxstUq33DhMCd4NE3QmFI/ffLA3g1k0FRuwkuJ
# J0SdwT14OFJf221xmGnF4Y0ibGvD21/FeyVZxlA4unJlajZJF/WMMspZeriwWWGE
# 84rE+z56lAhZnTLuM8Id2lDsuVv6C9vxNrerRRV9UErxqrk0OLdvdT8OFh9X0PNF
# E+Q4YFQQsrkT9dBN+bxe/n9cZgdlAgtGRN/ZdYE6Xs6Dc4DMaHLl0g+C8iN80DnV
# m6kRkg/4eW6Le9wDA7sn0BwuxxgUpttmCdZGAj8Y+M/I+G9AAHpB3Gdq9ptx+mB4
# S7pVIcBG5wkkmcG6R3aiWVfM/Rsil7/heXfcN4RNIYmwPnWB4ILwdEpCrx8NZqbt
# 894MjI0Oh6rGkEsbKCklDKBf95AFei1FL5NVIeBFDbJpf5Ag+dZdSzCRQvqTBznY
# ZRjP1n6FB7RpU+7k9ONjtsWykoeUwdBoEKiLpavxXGuP5a6WX3q3XHoIsEcbaz3S
# RzxyUl2djpYzvHx/IMN6ggMCAwEAAaOCAXMwggFvMAwGA1UdEwEB/wQCMAAwHwYD
# VR0jBBgwFoAUVML+EJUAk81q9efA19myS7iPDOMwWAYIKwYBBQUHAQEETDBKMEgG
# CCsGAQUFBzAChjxodHRwOi8vY2VydC5zc2wuY29tL1NTTGNvbS1TdWJDQS1Db2Rl
# U2lnbmluZy1SU0EtNDA5Ni1SMS5jZXIwUQYDVR0gBEowSDAIBgZngQwBBAEwPAYM
# KwYBBAGCqTABAwMBMCwwKgYIKwYBBQUHAgEWHmh0dHBzOi8vd3d3LnNzbC5jb20v
# cmVwb3NpdG9yeTATBgNVHSUEDDAKBggrBgEFBQcDAzBNBgNVHR8ERjBEMEKgQKA+
# hjxodHRwOi8vY3Jscy5zc2wuY29tL1NTTGNvbS1TdWJDQS1Db2RlU2lnbmluZy1S
# U0EtNDA5Ni1SMS5jcmwwHQYDVR0OBBYEFDf3renyUjaxIiWGHDyaNg9qLVNPMA4G
# A1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEAatpx4vhhKY3FbIF4tycY
# GOlZP1fb7D+nhYyuLtG2fCLE3HUH5uUOXqwJ3cn9dJTyJ3U98q0GSo+dWwai9J7v
# f29jQNkVrPaA9qYOZJFvqd2zwfD/OjIuDziu/fR8BZXBL/rDQmQHXy1V1pL69Can
# KIL2k9nZ2lJtHIAdSkbAcdkNaWMllupsNYrna2gzF4sznukX0vLbRDN4SPxFKreD
# VGkDSP58I3IMcqE8VNQcELHYeI7Baf6D+98MTVk1Rz1BkACai3mC/0zn6n5mvpnY
# pKb83Fd2YqHMPSRLd2u9PvEd/NU4UzbegYnqmxAC9JElGkSOALKJ9Vp3EsbAIHwH
# xem2/SS3HlfnjHg5kGkm8AXir0F+JPp8afsxaWji+l56kw4MbFlBoCtd0aBfeOPo
# Cs65ehcmnphpnU0UoLW1Ec72etnKzsFiT3xRDVScfqojiM92yTyIt0/Fhlj9kcZg
# g6EGA4TEJYNmDltB1MO6ZtDYW9vyYxu9Kc4n9CTDmeahzgf95bD7tKzSctwPaTwZ
# HZ0GCGs4EeE/pdGJwjUXwV8HsZ8VkTMY3o3pWQrzmTSZWzYhqryO2l5rsnfixiud
# jz2SmjX1umwrAFNbHB5/AH7k/fHpAxWfehnUyIqYn8txgUDLaQKEZMTECDkEdRVt
# VwruJdIF/LuBo1ToLL87DZAwggZyMIIEWqADAgECAghkM1HTxzifCDANBgkqhkiG
# 9w0BAQsFADB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcM
# B0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NM
# LmNvbSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFJTQTAeFw0xNjA2MjQy
# MDQ0MzBaFw0zMTA2MjQyMDQ0MzBaMHgxCzAJBgNVBAYTAlVTMQ4wDAYDVQQIDAVU
# ZXhhczEQMA4GA1UEBwwHSG91c3RvbjERMA8GA1UECgwIU1NMIENvcnAxNDAyBgNV
# BAMMK1NTTC5jb20gQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBDQSBSU0EgUjEw
# ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCfgxNzqrDGbSHL24t6h3TQ
# cdyOl3Ka5LuINLTdgAPGL0WkdJq/Hg9Q6p5tePOf+lEmqT2d0bKUVz77OYkbkStW
# 72fL5gvjDjmMxjX0jD3dJekBrBdCfVgWQNz51ShEHZVkMGE6ZPKX13NMfXsjAm3z
# detVPW+qLcSvvnSsXf5qtvzqXHnpD0OctVIFD+8+sbGP0EmtpuNCGVQ/8y8Ooct8
# /hP5IznaJRy4PgBKOm8yMDdkHseudQfYVdIYyQ6KvKNc8HwKp4WBwg6vj5lc02Al
# vINaaRwlE81y9eucgJvcLGfE3ckJmNVz68Qho+Uyjj4vUpjGYDdkjLJvSlRyGMwn
# h/rNdaJjIUy1PWT9K6abVa8mTGC0uVz+q0O9rdATZlAfC9KJpv/XgAbxwxECMzNh
# F/dWH44vO2jnFfF3VkopngPawismYTJboFblSSmNNqf1x1KiVgMgLzh4gL32Bq5B
# NMuURb2bx4kYHwu6/6muakCZE93vUN8BuvIE1tAx3zQ4XldbyDgeVtSsSKbt//m4
# wTvtwiS+RGCnd83VPZhZtEPqqmB9zcLlL/Hr9dQg1Zc0bl0EawUR0tOSjAknRO1P
# NTFGfnQZBWLsiePqI3CY5NEv1IoTGEaTZeVYc9NMPSd6Ij/D+KNVt/nmh4LsRR7F
# bjp8sU65q2j3m2PVkUG8qQIDAQABo4H7MIH4MA8GA1UdEwEB/wQFMAMBAf8wHwYD
# VR0jBBgwFoAU3QQJB6L1en1SUxKSle44gCUNplkwMAYIKwYBBQUHAQEEJDAiMCAG
# CCsGAQUFBzABhhRodHRwOi8vb2NzcHMuc3NsLmNvbTARBgNVHSAECjAIMAYGBFUd
# IAAwEwYDVR0lBAwwCgYIKwYBBQUHAwMwOwYDVR0fBDQwMjAwoC6gLIYqaHR0cDov
# L2NybHMuc3NsLmNvbS9zc2wuY29tLXJzYS1Sb290Q0EuY3JsMB0GA1UdDgQWBBRU
# wv4QlQCTzWr158DX2bJLuI8M4zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQEL
# BQADggIBAPUPJodwr5miyvXWyfCNZj05gtOII9iCv49UhCe204MH154niU2EjlTR
# IO5gQ9tXQjzHsJX2vszqoz2OTwbGK1mGf+tzG8rlQCbgPW/M9r1xxs19DiBAOdYF
# 0q+UCL9/wlG3K7V7gyHwY9rlnOFpLnUdTsthHvWlM98CnRXZ7WmTV7pGRS6AvGW+
# 5xI+3kf/kJwQrfZWsqTU+tb8LryXIbN2g9KR+gZQ0bGAKID+260PZ+34fdzZcFt6
# umi1s0pmF4/n8OdX3Wn+vF7h1YyfE7uVmhX7eSuF1W0+Z0duGwdc+1RFDxYRLhHD
# sLy1bhwzV5Qe/kI0Ro4xUE7bM1eV+jjk5hLbq1guRbfZIsr0WkdJLCjoT4xCPGRo
# 6eZDrBmRqccTgl/8cQo3t51Qezxd96JSgjXktefTCm9r/o35pNfVHUvnfWII+NnX
# rJlJ27WEQRQu9i5gl1NLmv7xiHp0up516eDap8nMLDt7TAp4z5T3NmC2gzyKVMtO
# DWgqlBF1JhTqIDfM63kXdlV4cW3iSTgzN9vkbFnHI2LmvM4uVEv9XgMqyN0eS3FE
# 0HU+MWJliymm7STheh2ENH+kF3y0rH0/NVjLw78a3Z9UVm1F5VPziIorMaPKPlDR
# ADTsJwjDZ8Zc6Gi/zy4WZbg8Zv87spWrmo2dzJTw7XhQf+xkR6OdMYICrjCCAqoC
# AQEwgYwweDELMAkGA1UEBhMCVVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdI
# b3VzdG9uMREwDwYDVQQKDAhTU0wgQ29ycDE0MDIGA1UEAwwrU1NMLmNvbSBDb2Rl
# IFNpZ25pbmcgSW50ZXJtZWRpYXRlIENBIFJTQSBSMQIQV156WorWyKgnVBrnbADy
# +TAJBgUrDgMCGgUAoHgwGAYKKwYBBAGCNwIBDDEKMAigAoAAoQKAADAZBgkqhkiG
# 9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgorBgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIB
# FTAjBgkqhkiG9w0BCQQxFgQUuUOR61We0mAx5nevJXF1UsIexzEwDQYJKoZIhvcN
# AQEBBQAEggGARsiiXejtExRlq52r34um6mqSw20x8aJPivHJ4uA58wVuBj4v7fn0
# lDunoTUn0RfVdYYkr7NKDQb19tUiP6ppxBo5oLWJQpDp3gC+rPX6m3jPnIQxw+k6
# 0QPQxaDZCPccdj+jTSGDxJSm7xbAr3FPkQF+s77k1FbUkrJ4x7t5j/STNYhSOllr
# 6Q/qPVbG28l8DPKyNqvz/6XFzKRXXEJvxfQUhOhOCAsvKO+de7eUtsZxPY2qMx9T
# js4/Kqv4ui/hhBtW6MzLxaFa1xQaywRe3NgDialG656BFYZ4ahWZnOKNvkIrOWim
# MqiI71ZnD0NWBhhkID608j8YLZVMUccMt+qrlcQBcJW9cICb9QDNIIWrpEOs45Yv
# 2xqKlJLltV5bHqZ5hBXAQdEsEINMFYF4sCfqxhX0qxpGmIaVnM6zO40vEzDwtIXo
# OhBNhOsXvEpK7RIDAdtqfruEkLV/TPhTx+qnho6YX2hhxwWuk36sfjQNFGjMVcOt
# qhKBXcEYzxZt
# SIG # End signature block