Platform SDK: Active Directory, ADSI, and Directory Services

IADsSession Property Methods

The property methods of the IADsSession interface get or set the properties described in the following table. For a general discussion of property methods, see Interface Property Methods.

Properties in Vtable Order

Property Description
Computer

[Visual Basic]
Access: Read
Data Type: BSTR

[C++]
HRESULT get_Computer
([out] BSTR *pbstrComputer);

Name of the client workstation.
ComputerPath

[Visual Basic]
Access: Read
Data Type: BSTR

[C++]
HRESULT get_ComputerPath
([out] BSTR *pbstrComputerPath);

ADsPath of the computer object for the client workstation.
ConnectTime

[Visual Basic]
Access: Read
Data Type: LONG

[C++]
HRESULT get_ConnectTime
([out] LONG *plConnectTime);

Number of minutes that have elapsed since the session started.
IdleTime

[Visual Basic]
Access: Read
Data Type: LONG

[C++]
HRESULT get_IdleTime
([out] LONG *plIdleTime);

The idle time of the session, in minutes.
User

[Visual Basic]
Access: Read
Data Type: BSTR

[C++]
HRESULT get_User
([out] BSTR *pbstrUser);

The name of the user of the session.
UserPath

[Visual Basic]
Access: Read
Data Type: BSTR

[C++]
HRESULT get_UserPath
([out] BSTR *pbstrUserPath);

The ADsPath of the user object for the user of this session.

Example Code [Visual Basic]

The following Visual Basic code snippet illustrates how to examine sessions for a file service.

Dim fso as IADsFileServiceOperations
'  Bind to a file service operations object on "myComputer" in the local domain.
Set fso = GetObject("WinNT://myComputer/LanmanServer")
' Enumerates sessions
If (IsEmpty(fso) = False) Then
For Each session In fso.sessions
MsgBox "Session Computer: " & session.Computer
MsgBox "Session User: " & session.User
Next Session
End If

Example Code [C++]

The following C++ code snippet enumerates a collection of sessions.

IADsFileServiceOperations *pFso;
IADsSession *pSes;
HRESULT hr ;
LPWSTR adsPath =L"WinNT://aMachine/LanmanServer";
hr = ADsGetObject(adsPath, 
IID_IADsFileServiceOperations, 
(void**)&pFso);
if (FAILED(hr)) exit(hr);
IADsCollection *pColl;
hr = pFso->Sessions(&pColl);
pFso->Release();

// Now to enumerate sessions. 
IUnknown *pUnk = NULL;
hr = pColl->get__NewEnum(&pUnk);
if (FAILED(hr) ) exit(hr);
pColl->Release();

IEnumVARIANT *pEnum;
hr = pUnk->QueryInterface(IID_IEnumVARIANT,(void**)&pEnum);
if (FAILED(hr)) exit(hr);
pUnk->Release();

// Now Enumerate
BSTR bstr;
VARIANT var;
ULONG lFetch;
IDispatch *pDisp;

VariantInit(&var);
hr = pEnum->Next(1, &var, &lFetch);
while(hr == S_OK)
{
if (lFetch == 1)    
    {
pDisp = V_DISPATCH(&var);
pDisp->QueryInterface(IID_IADsSession, (void**)&pSes);
pSes->get_Computer(&bstr);
printf("Session host: %S\n",bstr);
SysFreeString(bstr);

pSes->get_User(&bstr);
printf("Session user: %S\n",bstr);
SysFreeString(bstr);

pRes->Release();
    }
VariantClear(&var);
pDisp=NULL;
hr = pEnum->Next(1, &var, &lFetch);
};

hr = pEnum->Release();

See Also

IADsFileServiceOperations::Sessions, IADsSession