SSブログ

管理者権限を持っているか確認[C/C++] [開発環境]

管理者権限の有無によって処理を変える処理を行いたいので、管理者権限を持っているか確認する方法を調べた。

検索するとIsUserAnAdminを使う例がたくさん出てきたが自分の環境(Windows7)では管理者権限を確認できなかった。そこでCheckTokenMembershipを使う以下のコードを使ったら管理者権限を確認できた。

#include "stdafx.h"
#include <Windows.h>


BOOL IsAnAdmin(VOID)
{
    BOOL b = FALSE;
    SID_IDENTIFIER_AUTHORITY NtAuthority = SECURITY_NT_AUTHORITY;
    PSID AdministratorsGroup;

    b = AllocateAndInitializeSid(
            &NtAuthority,
            2,
            SECURITY_BUILTIN_DOMAIN_RID,
            DOMAIN_ALIAS_RID_ADMINS,
            0, 0, 0, 0, 0, 0,
            &AdministratorsGroup);
    if(b) {
        if (!CheckTokenMembership( NULL, AdministratorsGroup, &b)) {
             b = FALSE;
        }
        FreeSid(AdministratorsGroup);
    }

    return(b);
}

int _tmain(int argc, _TCHAR* argv[])
{
    if(IsAnAdmin())
        printf("管理者権限で起動しました\n");
    else
        printf("通常権限で起動しました\n");
   
    getchar();

    return 0;
}

 

AllocateAndInitializeSid()

セキュリティ識別子(SID)を割り当て、最大8つの副権限(サブオーソリティ)を使って初期化します。

CheckTokenMembership()

指定した SID(セキュリティ ID)がアクセストークン内で有効になっているかどうかを調べます。

Well-known SIDs

「SID(Security Identifier。セキュリティ識別子)」と呼ばれる一意のID番号列を使用して管理されている。

参考サイト


nice!(0)  コメント(4)  トラックバック(0) 

nice! 0

コメント 4

LesGrealm

Canadian Healthcare Mall http://abuycialisb.com - п»їcialis Alli Sales And Canada <a href=http://abuycialisb.com>Buy Cialis</a> Comprar Viagra Sin Receta En Valencia
by LesGrealm (2020-02-12 10:14) 

StevFelo

Alternative Viagra Products http://abcialisnews.com - Buy Cialis Vardenafil Online Pharmacy <a href=http://abcialisnews.com>п»їcialis</a> Propecia Kjope
by StevFelo (2020-03-04 10:28) 

MatgehasY

Viagra Efectos Jovenes http://apcialisle.com/# - п»їcialis Zithromax I.V. <a href=http://apcialisle.com/#>Cialis</a> Zithromax Sun Sensitivity
by MatgehasY (2020-03-04 17:56) 

Janinsany

Propecia Worked For Me Thinning Hair <a href=https://apcialisle.com/#>Cialis</a> Veterinary Amoxicillin 250mg 5ml <a href=https://apcialisle.com/#>п»їcialis</a> Comment To Last Conseils Plus Longs
by Janinsany (2020-03-22 00:36) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。