共用方式為


測試是否在域控制器上執行

下列程式代碼會使用 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);
}