Site in der Domäne ermitteln



  • --------------------------------------------------------------------------------
    Guten Tag,

    ich hoffe hier bin ich richtig.

    MSVC/MFC

    ich möchte gerne den Namen des Standortes (in der Dom. unter Standort & Dienste eingetragen) ermitteln, an dem sich der Benutzer in der Domäne z.Z. angemeldet hat. Wie komme ich an diese Info?

    Danke
    -Uwe


  • Mod

    Ich habe keine Ahnung welchen Standort Du meinst.

    Ansonsten GetCOmputerNameEx
    http://msdn.microsoft.com/en-us/library/ms724301(VS.85).aspx



  • Hallo Martin,

    in einer Domäne über mehrere Standorte kann man auf dem DC unter "Standorte und Dienste" den einzelnen Standorten einen Klarnamen geben. z.B. den Namen der Stadt in dem sich der Standort befindet.

    unter der Scriptsprache Kix32 (oder auch Kixtart bekannt) gibt es die Systemvariable "SITE", die das zurückgibt

    if @SITE = "Frankfurt"
    ? "Hallo Mainhattan"
    endif

    jetzt suche ich nach der Möglichkeit, dies unter VC zu ermitteln.

    Danke für Deine Antwort

    Ahoj
    -Uwe



  • Vielleicht bringt Dich das hier etwas weiter:
    http://www.codeguru.com/forum/archive/index.php/t-474513.html

    Siehe auch die diversen Interfaces:
    http://msdn.microsoft.com/en-us/library/aa772202



  • Hallo Jochen,

    IADsADSystemInfo
    For example, you can get the domain, site, and distinguished name of the local computer.

    get_SiteName()

    das wird bestimmt das gesuchte sein.
    Vielen Dank für Deinen Tip

    Ahoj
    -Uwe



  • Ohne Fehlerbehandlung und Speicher-Freigeben sieht das dann so aus:

    #include <Windows.h>
    #include <tchar.h>
    #include <stdio.h>
    #include <comutil.h>
    #include <Iads.h>
    
    #pragma comment(lib, "Activeds.lib")
    #pragma comment(lib, "Adsiid.lib")
    
    int _tmain()
    {
    	CoInitialize(NULL);
    
    	IADsADSystemInfo *pADsys;
    	HRESULT hr = CoCreateInstance(CLSID_ADSystemInfo,
                                  NULL,
                                  CLSCTX_INPROC_SERVER,
                                  IID_IADsADSystemInfo,
                                  (void**)&pADsys);
    
    	BSTR anyDCName;
    	if SUCCEEDED(pADsys->GetAnyDCName(&anyDCName))
    		printf("AnyDCName: %S\n", anyDCName);
    
    	VARIANT trees;
    	VariantInit(&trees);
    	if SUCCEEDED(pADsys->GetTrees(&trees))
    	{
    		printf("Trees: %S\n", L"");
    	}
    
    	BSTR computerName;
    	if SUCCEEDED(pADsys->get_ComputerName(&computerName))
    		printf("ComputerName: %S\n", computerName);
    
    	BSTR domainDNSName;
    	if SUCCEEDED(pADsys->get_DomainDNSName(&domainDNSName))
    		printf("domainDNSName: %S\n", domainDNSName);
    
    	BSTR domainShortName;
    	if SUCCEEDED(pADsys->get_DomainShortName(&domainShortName))
    		printf("domainShortName: %S\n", domainShortName);
    
    	BSTR forestDNSName;
    	if SUCCEEDED(pADsys->get_ForestDNSName(&forestDNSName))
    		printf("forestDNSName: %S\n", forestDNSName);
    
    	VARIANT_BOOL isNativeMode;
    	if SUCCEEDED(pADsys->get_IsNativeMode(&isNativeMode))
    		printf("isNativeMode: %d\n", isNativeMode);
    
    	BSTR PDCRoleOwner;
    	if SUCCEEDED(pADsys->get_PDCRoleOwner(&PDCRoleOwner))
    		printf("PDCRoleOwner: %S\n", PDCRoleOwner);
    
    	BSTR schemaRoleOwner;
    	if SUCCEEDED(pADsys->get_SchemaRoleOwner(&schemaRoleOwner))
    		printf("schemaRoleOwner: %S\n", schemaRoleOwner);
    
    	BSTR siteName;
    	if SUCCEEDED(pADsys->get_SiteName(&siteName))
    		printf("siteName: %S\n", siteName);
    
    	BSTR userName;
    	if SUCCEEDED(pADsys->get_UserName(&userName))
    		printf("userName: %S\n", userName);
    }
    


  • Hallo Jochen,

    nochmals vielen Danke für das Sample.

    Ahoj
    -Uwe


Anmelden zum Antworten