Windows 2000 で 使える WELL_KNOWN_SID_TYPE を列挙してみた

    for (int x= WinNullSid; x<WinBuiltinDeviceOwnersSid-1;x++){
        int r=CreateWellKnownSid(x, NULL, pSid, &dwSidSize);
        if(r==1) {
            ConvertSidToStringSid(pSid, &lpszSid);
            printf("SID: %d / %s\n", x,lpszSid);
        } else
            printf("SID: %d /  This value is not available\n", x);
        LocalFree(lpszSid);
    }
試したコード

使えたのは以下の通り
WinNullSid
WinWorldSid
WinLocalSid
WinCreatorOwnerSid
WinCreatorGroupSid
WinCreatorOwnerServerSid
WinCreatorGroupServerSid
WinNtAuthoritySid
WinNetworkSid
WinBatchSid
WinInteractiveSid
WinServiceSid
WinAnonymousSid
WinProxySid
WinEnterpriseControllersSid
WinSelfSid
WinAuthenticatedUserSid
WinRestrictedCodeSid
WinTerminalServerSid
WinRemoteLogonIdSid
WinLocalSystemSid
WinLocalServiceSid
WinNetworkServiceSid
WinBuiltinDomainSid
WinBuiltinUsersSid
WinBuiltinGuestsSid
WinBuiltinPowerUsersSid
WinBuiltinAccountOperatorsSid
WinBuiltinSystemOperatorsSid
WinBuiltinPrintOperatorsSid
WinBuiltinBackupOperatorsSid
WinBuiltinReplicatorSid
WinBuiltinPreWindows2000CompatibleAccessSid
WinBuiltinRemoteDesktopUsersSid
WinBuiltinNetworkConfigurationOperatorsSid

WinDialupSid(8)
WinLogonIdsSid(21)
WinBuiltinAdministratorsSid(26)
および、
WinAccount* (38以降) は検証環境では、エラーが返ってきた

意外だったのは
WinLocalServiceSid でS-1-5-19
WinNetworkServiceSid でS-1-5-20 がちゃんと取得できたこと。

ただし、アカウントに変換しようとしたらエラーだった(・ω・)

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です