Uac/Uac.ps1
#region Copyright & License # Copyright © 2012 - 2022 François Chabot # # 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. #endregion Set-StrictMode -Version Latest <# .SYNOPSIS Ensures the current process is running in elevated mode. .DESCRIPTION This command will throw if the current process is not running in elevated mode and will silently complete otherwise. .EXAMPLE PS> Assert-Elevated .EXAMPLE PS> Assert-Elevated -Verbose With the -Verbose switch, this command will confirm this process is running in elevated mode. .NOTES © 2022 be.stateless. #> function Assert-Elevated { [CmdletBinding()] [OutputType([void])] param() Resolve-ActionPreference -Cmdlet $PSCmdlet -SessionState $ExecutionContext.SessionState if (-not(Test-Elevated)) { throw 'A process running in elevated mode is required to run this function!' } Write-Verbose -Message 'Process is running in elevated mode.' } <# .SYNOPSIS Returns whether the current process is running in elevated mode. .DESCRIPTION This command will return $true if the current process is running in elevated mode, or $false otherwise. .EXAMPLE PS> Test-Elevated .NOTES © 2022 be.stateless. #> function Test-Elevated { [CmdletBinding()] [OutputType([bool])] param() Resolve-ActionPreference -Cmdlet $PSCmdlet -SessionState $ExecutionContext.SessionState # only if OS is later than XP (i.e. from Vista upward), i.e. if ([System.Environment]::OSVersion.Version.Major -gt 5) $wid = [System.Security.Principal.WindowsIdentity]::GetCurrent() [bool]( ([Security.Principal.WindowsPrincipal] $wid).IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator) ) } # SIG # Begin signature block # MIII0QYJKoZIhvcNAQcCoIIIwjCCCL4CAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB # gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR # AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUMb/l7bRWcBrKTpdO0kw/kBSg # 0L+gggVMMIIFSDCCAzCgAwIBAgIJAJkr3mJdTBkUMA0GCSqGSIb3DQEBCwUAMEEx # PzA9BgNVBAMeNgBpAGMAcgBhAGYAdABzAG8AZgB0AHcAYQByAGUAQABzAHQAYQB0 # AGUAbABlAHMAcwAuAGIAZTAeFw0yMTA2MjUxNDEyMjNaFw00MTA2MjAxNDEyMjNa # MEExPzA9BgNVBAMeNgBpAGMAcgBhAGYAdABzAG8AZgB0AHcAYQByAGUAQABzAHQA # YQB0AGUAbABlAHMAcwAuAGIAZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC # ggIBAOeqdUHBv7sxSeX3aj6yPKj7PAvs8izpVXjyEBl5aR8mQneVcXuF53AH7EW1 # 6E5p4+Az5pJPGUD5c3tXhiGMF7vgLhQjO6hlaVBRIqiIYHikNLwMNy6YBMc/QQYM # rPhqHEFsZ53dkBIIj3M8e3kFcTFA09n25yDtTPDab4nd9yUhc9Qc8+nfpIzfYsoP # 1pZ3nCzhw6hN2/44v1dkQrG3dRYwt+px65p6NPNZWEJpt4VCJjIFh+lBYJdxm9d4 # X/rAnlHIkbv7liOavWDzgHVabS3hdAWtcDmynm+7+FcZDFqPWNCl3e4SS7xe4s/R # CKFKA0IsfKkSk9YJlLgeSQIEXUOOWXJAGaLqnRD8xWLZsc4Oi9GZg7XV1mv/S88c # oztXnwtAN3OOlRKBh2QbomMgxeMO0GvsLE/cq5Q/YKAoz+KGr/7LcZq9jzQ8IPus # ZvWLeDXmxPiwJjpZc1koLgfGIEX2NStQTT3QmacWr9thrWcKvI+4uBmI4exS9B4a # R3nV91w5EY+2RoYsHqej9LWwNamO96+jMX9pxprTX+EkLUuMAikw/po8sBC9MUUn # 5pMWmUv7DCtQOLGGBDDMMMkn4ZcjpCEEdPGHRKfqNnD27ssGtDjiNzfQrsm67toU # bBwUF+gyJq/YckWquYJhA9ZOFWEADuIwGnsOzsoRvuQyY+p9AgMBAAGjQzBBMA4G # A1UdDwEB/wQEAwIHgDAWBgNVHSUBAf8EDDAKBggrBgEFBQcDAzAXBgNVHREEEDAO # ggxzdGF0ZWxlc3MuYmUwDQYJKoZIhvcNAQELBQADggIBACithYM3qckZRc9+Xbfu # a6gWr3HwjrW+FHKgjfrcOm8ZnLVapb9xFqsqrRQqd3RXWQDINEGrtI2rSfrzyfoK # UiTgldIfQNP1ZcGY229d++90t3hdo2mlt05hjYlbMENloJHpsEP0vQZmwOcEimCT # ex1pymYM+P9pj3j8UD1PT1eIZot6or8fBRl63UybyDSrM7L4UOkkAOniKxWy5pW6 # 6duS8SR+SZpr3Bv44NyXPj0Nv+MIpLmsLrd7XPBFmnGxzY01ZO9vzi9KEhM2wT5i # jPqHDNOvfPiADtAa+EyUBzdJiqy9heCz/TMZQgMWGwtfqJNxWZmsHcha2anW4Qt+ # mzrLO4GojWoVog9uVSAq+l0a+YQsd1u1kUmm4vgZCFyUA+lEp4LkI7ca2VBHkLPD # w+u2DoDMRiqFPZjO7BCKjGc0jj9B/qGR3JVt+tqDdB621xXf2YGF2oFvxZQ/keGt # 0ujfJ+JwN3nCulDAA4773q6KUnfykyrvAgITNbRJL6TngeRKtw9VIJBPxzqMzLpV # 5ggXNituwLaD1CCBJ1oo9DZHpL9gplXp1wGrelJOTiJhh+pdNsPtRH7CrranWa5h # LFLuigqin0eewQ5giJ1VaiBVEseOmiZog+27UpFIv40aDzgGL3YxB/Mu0ojwrQtp # WLmqJCmWnR5qxOm0yK+zNWe0MYIC7zCCAusCAQEwTjBBMT8wPQYDVQQDHjYAaQBj # AHIAYQBmAHQAcwBvAGYAdAB3AGEAcgBlAEAAcwB0AGEAdABlAGwAZQBzAHMALgBi # AGUCCQCZK95iXUwZFDAJBgUrDgMCGgUAoHgwGAYKKwYBBAGCNwIBDDEKMAigAoAA # oQKAADAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgorBgEEAYI3AgELMQ4w # DAYKKwYBBAGCNwIBFTAjBgkqhkiG9w0BCQQxFgQUgIRUZSsO9tGSk3gKrjRyu6gT # OCswDQYJKoZIhvcNAQEBBQAEggIAv9K6pYtzkYbrTvwAwBiR55hmgf1KoVC4wBqg # ZF8079ndEZmCHZ1k5abk5O/ABGZr0P5IL6aKWV+4NE2+zn3n1j94ZLQtD3cNXoLJ # 3DcESIaAOUjDR6+hrSdFxTmg2V7W2DR59MfZY4OWzOum0cB2pZY5UXeAiGOBtJBa # WwM1O0cyLdtc/Uk1y+6fUagszfmApMoF+XxK3HXI0/XZLnaUlSE5w4cPEDH1Sr7w # d6vuCUAoAjK2pGUiDW5vCkyLPFNZGHfXoUaYCSV4hNmjwlHv+MZJdM1UbDic8ttW # DLOUBJBIOTuq+mYIusWyYn0doKkFlSj80va9y01nz4lcmXg7jbiaVBWP0NbthZv8 # X78mV+fHcQrxEwes+5VuvQfuYhCIbBvEK1/LAuK14z0/dCXU0mPEXANFSmo3eLwQ # TqBjsvPF9Bz5VBXRBVuliCH23Fcc205VvDq52pVEvcYZfq8un7NG8dZOexv0vGco # hK+nrjv2FUs9BR9MMdZdNK+m+DlkC/dIhn3E6M3p7Y3qyJWExURLkIQHbktMMmAE # NM119p1ObPohlXQa44Qtzg08f6nc/LjkfwayLmCvlRe253g1b17kav8+HpIkPZpa # 8/av1DhmKlnTk75qmQdZJIfIlzLqVLx/suFlFUuEztJLiVwz/dnZKPrhSDxxX6hD # TlN8J44= # SIG # End signature block |