Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Microsoft Windows 2000, Windows NT ou Windows XP fornece acesso a uma variedade de dados de desempenho colectivamente representa o estado do computador. Estes dados de desempenho são armazenados na chave de registo HKEY_PERFORMANCE_DATA. A configuração predefinida do Windows NT permite todos os utilizadores a consultar estes dados de desempenho, incluindo os utilizadores remotos.
Em alguns ambientes, poderá restringir o acesso a estes dados de desempenho porque alguns dados de desempenho poderão ser considerados importantes. Um exemplo de dados de desempenho potencialmente importantes é a lista de processos em execução no sistema. Este artigo descreve como regular o acesso a estes dados de desempenho programaticamente utilizando a API do Win32.
A segurança na seguinte chave de registo determina que utilizadores ou grupos podem obter acesso os dados de desempenho:
HKEY_LOCAL_MACHINE\
SOFTWARE\
Microsoft\
Windows NT\
CurrentVersion\
Perflib
em modo de utilizadores para dados de desempenho da consulta, tem acesso KEY_READ a chave de registo acima. Um exemplo de segurança razoável no desempenho dados seriam concessão KEY_ALL_ACCESS administradores aceder e interactivo (utilizadores com sessão iniciada a estação de trabalho interactivamente) KEY_READ aceder. Esta configuração específica seria impede que não seja administrador remoto consultar dados de desempenho.
Tenha em atenção que esta operação pode ser executada utilizando o utilitário editor de registo (Regedt32.exe).
/*
This sample illustrates how to regulate access to the performance data
provided by the registry key HKEY_PERFORMANCE_DATA.
The security on the following registry key dictates which users or groups
can gain access to the performance data:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib
This sample opens the registry key for WRITE_DAC access, which allows
for a new Dacl to be applied to the registry key.
A Dacl is then built, which grants the following users access:
Administrators are granted full control to allow for future updates to the
security on the key and to allow for querying performance data.
Interactively logged on users, through the well-known Interactive Sid,
are granted KEY_READ access, which allows for querying performance
data.
The new Dacl is then applied to the registry key using the
RegSetKeySecurity() Win32 API.
This sample relies on the import library Advapi32.lib.
Note that not all errors will cause an information message to be
displayed.
*/
#include <windows.h>
#include <stdio.h>
#define RTN_OK 0
#define RTN_USAGE 1
#define RTN_ERROR 13
int
__cdecl
main(
void
)
{
SID_IDENTIFIER_AUTHORITY sia = SECURITY_NT_AUTHORITY;
PSID pInteractiveSid = NULL;
PSID pAdministratorsSid = NULL;
SECURITY_DESCRIPTOR sd;
PACL pDacl = NULL;
DWORD dwAclSize;
HKEY hKey;
LONG lRetCode;
BOOL bSuccess = FALSE; // assume this function fails
//
// open the performance key for WRITE_DAC access
//
lRetCode = RegOpenKeyEx(
HKEY_LOCAL_MACHINE,
TEXT("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Perflib"),
0,
WRITE_DAC,
&hKey
);
if(lRetCode != ERROR_SUCCESS) {
fprintf(stderr, "RegOpenKeyEx error! (rc=%lu)\n", lRetCode);
return RTN_ERROR;
}
//
// prepare a Sid representing any Interactively logged-on user
//
if(!AllocateAndInitializeSid(
&sia,
1,
SECURITY_INTERACTIVE_RID,
0, 0, 0, 0, 0, 0, 0,
&pInteractiveSid
)) goto cleanup;
//
// prepare a Sid representing the well-known admin group
//
if(!AllocateAndInitializeSid(
&sia,
2,
SECURITY_BUILTIN_DOMAIN_RID,
DOMAIN_ALIAS_RID_ADMINS,
0, 0, 0, 0, 0, 0,
&pAdministratorsSid
)) goto cleanup;
//
// compute size of new acl
//
dwAclSize = sizeof(ACL) +
2 * ( sizeof(ACCESS_ALLOWED_ACE) - sizeof(DWORD) ) +
GetLengthSid(pInteractiveSid) +
GetLengthSid(pAdministratorsSid) ;
//
// allocate storage for Acl
//
pDacl = (PACL)HeapAlloc(GetProcessHeap(), 0, dwAclSize);
if(pDacl == NULL) goto cleanup;
if(!InitializeAcl(pDacl, dwAclSize, ACL_REVISION))
goto cleanup;
//
// grant the Interactive Sid KEY_READ access to the perf key
//
if(!AddAccessAllowedAce(
pDacl,
ACL_REVISION,
KEY_READ,
pInteractiveSid
)) goto cleanup;
//
// grant the Administrators Sid GENERIC_ALL access to the perf key
//
if(!AddAccessAllowedAce(
pDacl,
ACL_REVISION,
KEY_ALL_ACCESS,
pAdministratorsSid
)) goto cleanup;
if(!InitializeSecurityDescriptor(&sd, SECURITY_DESCRIPTOR_REVISION))
goto cleanup;
if(!SetSecurityDescriptorDacl(&sd, TRUE, pDacl, FALSE)) {
fprintf(stderr, "SetSecurityDescriptorDacl error! (rc=%lu)\n",
GetLastError());
goto cleanup;
}
//
// apply the security descriptor to the registry key
//
lRetCode = RegSetKeySecurity(
hKey,
(SECURITY_INFORMATION)DACL_SECURITY_INFORMATION,
&sd
);
if(lRetCode != ERROR_SUCCESS) {
fprintf(stderr, "RegSetKeySecurity error! (rc=%lu)\n",
lRetCode);
goto cleanup;
}
bSuccess = TRUE; // indicate success
cleanup:
RegCloseKey(hKey);
RegCloseKey(HKEY_LOCAL_MACHINE);
//
// free allocated resources
//
if(pDacl != NULL)
HeapFree(GetProcessHeap(), 0, pDacl);
if(pInteractiveSid != NULL)
FreeSid(pInteractiveSid);
if(pAdministratorsSid != NULL)
FreeSid(pAdministratorsSid);
if(!bSuccess) return RTN_ERROR;
return RTN_OK;
}
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 146906
(http://support.microsoft.com/kb/146906/en-us/
)
Quanto esforço foi necessário para seguir os procedimentos deste artigo?
Muito baixo
Baixo
Moderado
Alto
Muito alto
O que podemos fazer para melhor estas informações?
Para proteger a sua privacidade, não inclua as informações de contacto nos comentários.
Obrigado! Os seus comentários serão utilizados para nos ajudar a melhorar o conteúdo do suporte. Para obter mais opções de assistência, visite a Home Page da Ajuda e Suporte.