測試是否在域控制器上執行
下列程式代碼會使用 VerifyVersionInfo 函式來判斷呼叫行程是否在 Windows 2000 Server 域控制器上執行。 您的服務安裝程式可以在 LocalSystem 帳戶下安裝服務之前使用此測試。 如果測試指出您是在域控制器上執行,您可以安裝服務以在使用者帳戶下執行,或顯示域控制器上以 LocalSystem 身分執行的危險對話框警告(也就是服務隨後將不受限制地存取 Active Directory 網域服務,這是可能損害整個網路的最高強大安全性內容)。
BOOL Is_Win2000_DomainController ()
{
OSVERSIONINFOEX osvi;
DWORDLONG dwlConditionMask = 0;
// Initialize the OSVERSIONINFOEX structure.
ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX));
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
osvi.dwMajorVersion = 5;
osvi.wProductType = VER_NT_DOMAIN_CONTROLLER;
// Initialize the condition mask.
VER_SET_CONDITION( dwlConditionMask, VER_MAJORVERSION,
VER_GREATER_EQUAL );
VER_SET_CONDITION( dwlConditionMask, VER_PRODUCT_TYPE,
VER_EQUAL );
// Perform the test.
return VerifyVersionInfo(
&osvi,
VER_MAJORVERSION | VER_PRODUCT_TYPE,
dwlConditionMask);
}