base SAM

Publié:
04 Juin 2003 à 16:06
par nicooo
Bonjour à tous.Je travaille sur une machine connectée à un réseau windows NT.Je dois récupérer certaines informations contenues dans la base SAM (base des utilisateurs NT).A priori, le "voisinage réseau" de mon poste affiche des informations issues de la base SAM et donc il me semble possible d'accéder à ses données (du moins mon chef en est persuadé).Ma première question est donc de savoir si effectivement il est possible d'accéder aux données de la base SAM en lecture ?Si oui, je devrai réaliser cette collecte de données à partir du logiciel......Lotus Notes !Ma deuxième question est de savoir si vous savez comment procéder avec Lotus ou si vous connaissez un lien pouvant m'aider dans ma recherche.Cordialement, Nicolas.
Re: base SAM

Publié:
04 Juin 2003 à 20:34
par diarno
Il est possible d'acceder a la "base de registre" a partir du lotus script avec une fonction api de windows.Je recherche le code et le met rapidement a dispo ici.
Re: base SAM

Publié:
04 Juin 2003 à 20:38
par diarno
Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (Byval hKey As Long, Byval lpSubKey As String, Byval ulOptions As Long,Byval samDesired As Long, phkResult As Long) As LongDeclare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (Byval hKey As Long, Byval lpValueName As String,Byval lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As LongDeclare Function RegCloseKey Lib "advapi32.dll" (Byval hKey As Long) As Long' définition du Long pour la clé:Const HKEY_LOCAL_MACHINE = &H80000002'Droits d'accès spécifiques au registreConst KEY_ALL_ACCESS = &H3FConst KEY_QUERY_VALUE = &H1Const KEY_ENUMERATE_SUB_KEYS = &H8Const KEY_NOTIFY = &H10Const KEY_READ = KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY 'Types prédéfinis des valeursConst REG_NONE = (0) 'No value typeConst REG_SZ = (1) 'Unicode nul terminated stringConst REG_BINARY = (3) 'Free form binaryConst REG_DWORD = (4) '32-bit numberSub Click(Source As Button) Messagebox(RecupNomStation) End SubFunction RecupNomStation() As String Dim NomStationRecupere As String NomStationRecupere = Lit_Valeur_Registre( "System\CurrentControlSet\Control\ComputerName\ComputerName" , "ComputerName" ) If NomStationRecupere = "NOK" Then RecupNomStation = "Non trouvé" Else RecupNomStation = NomStationRecupere End If End FunctionFunction Lit_Valeur_Registre( NomCle As String , NomValeurALire As String ) As String Dim HandleRetourCleOuverte As Long Dim TailleValeurLue As Long Dim ContenuValeurLue As String If RegOpenKeyEx(HKEY_LOCAL_MACHINE, NomCle , 0, KEY_READ , HandleRetourCleOuverte) <> ERROR_SUCCESS Then Lit_Valeur_Registre = "NOK" Else ContenuValeurLue = Space(80)'??????? TailleValeurLue = Len( ContenuValeurLue ) If RegQueryValueEx( HandleRetourCleOuverte , Byval NomValeurALire , 0 , REG_SZ, Byval ContenuValeurLue , TailleValeurLue ) <> ERROR_SUCCESS Then Lit_Valeur_Registre = "NOK" Else Lit_Valeur_Registre = ContenuValeurLue End If End If RegCloseKey(HandleRetourCleOuverte)'a quoi ca sert ca End Function