Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
LSA udostępnia funkcje, których administratorzy mogą używać do wykonywania zapytań i ustawiania informacji o zasadach globalnych dla komputera lokalnego i domeny.
Aby można było zarządzać informacjami o zasadach, aplikacja musi uzyskać dostęp do dojścia do lokalnego obiektu zasad , zgodnie z instrukcjami w Otwieranie dojścia obiektu zasad. Ta obsługa jest wymagana przez funkcje, które zarządzają informacjami o zasadach.
Aby pobrać informacje o lokalnych zasadach zabezpieczeń, wywołaj LsaQueryInformationPolicy. Aby ustawić zasady zabezpieczeń lokalnych, wywołaj LsaSetInformationPolicy. Opis wyliczenia POLICY_INFORMATION_CLASS zawiera szczegółowe informacje o typach danych o zasadach, które można odczytać lub ustawić.
W poniższym przykładzie pokazano, jak uzyskać informacje o domenie konta systemu, mając uchwyt do obiektu polityki systemu.
#include <windows.h>
BOOL GetAccountDomainInfo(LSA_HANDLE PolicyHandle)
{
NTSTATUS ntsResult = STATUS_SUCCESS;
PPOLICY_ACCOUNT_DOMAIN_INFO pPADInfo = NULL;
PWCHAR name = NULL;
UINT nameSize;
ntsResult = LsaQueryInformationPolicy(
PolicyHandle, // Open handle to a Policy object.
PolicyAccountDomainInformation, // The information to get.
(PVOID *)&pPADInfo // Storage for the information.
);
if (ntsResult == STATUS_SUCCESS)
{
// There is no guarantee that the LSA_UNICODE_STRING buffer
// is null-terminated, so copy the name to a buffer that is.
nameSize = pPADInfo->DomainName.Length + 1 * sizeof(WCHAR);
name = (WCHAR *) LocalAlloc(LPTR, nameSize);
if (!name)
{
wprintf(L"Failed LocalAlloc\n");
exit(1);
}
wcsncpy_s(name, nameSize, pPADInfo->DomainName.Buffer,
pPADInfo->DomainName.Length);
wprintf(L"The account domain name is %ws\n", name);
LocalFree(name);
if (STATUS_SUCCESS != LsaFreeMemory(pPADInfo))
wprintf(L"LsaFreeMemory error\n");
}
else
{
// Show the corresponding win32 error code.
wprintf(
L"Error obtaining account domain information - (win32) %lu\n",
LsaNtStatusToWinError(ntsResult));
}
return !ntsResult;
}