# Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you 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. $ErrorActionPreference = 'Stop' $privileges = whoami.exe /priv 2>$null $hasAssign = $privileges -match 'SeAssignPrimaryTokenPrivilege\s+.*Enabled' $hasQuota = $privileges -match 'SeIncreaseQuotaPrivilege\s+.*Enabled' $identity = [Security.Principal.WindowsIdentity]::GetCurrent() $principal = [Security.Principal.WindowsPrincipal]::new($identity) $isAdmin = $principal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator) [pscustomobject]@{ user = $identity.Name isAdministrator = $isAdmin seAssignPrimaryToken = $hasAssign seIncreaseQuota = $hasQuota atomicCreateProcessAsUserReady = $hasAssign -and $hasQuota failClosedRequired = -not ($hasAssign -and $hasQuota) } | ConvertTo-Json -Compress