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
-
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"
endifjetzt 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.htmlSiehe 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 TipAhoj
-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