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)
WinLogonIdsSid(21)
WinBuiltinAdministratorsSid(26)
および、
WinAccount* (38以降) は検証環境では、エラーが返ってきた
WinAccount* (38以降) は検証環境では、エラーが返ってきた
意外だったのは
WinLocalServiceSid でS-1-5-19
WinNetworkServiceSid でS-1-5-20 がちゃんと取得できたこと。
ただし、アカウントに変換しようとしたらエラーだった(・ω・)
Comments