SystemtippDieser Artikel bezieht sich auf ein anderes Betriebssystem als das von Ihnen verwendete. Für Sie möglicherweise nicht relevante Artikelinhalte wurden deaktiviert.
Microsoft Windows 2000, Windows NT oder Windows XP ermöglicht den Zugriff auf eine Vielzahl von Leistungsdaten, die zusammen den Zustand des Computers darstellt. Diese Leistungsdaten werden in den Registrierungsschlüssel HKEY_PERFORMANCE_DATA gespeichert. Die Standardkonfiguration von Windows NT ermöglicht jeder Abfrage diese Leistungsdaten, einschließlich der Remotebenutzer.
In einigen Umgebungen sollten Sie den Zugriff auf diese Leistungsdaten zu beschränken, da einige Leistungsdaten nicht vertrauliche angesehen werden können. Ein Beispiel für potenziell vertrauliche Leistungsdaten ist die Liste der Prozesse im System ausgeführt. Dieser Artikel beschreibt die Zugriff auf diese Leistungsdaten regulieren programmgesteuert mithilfe der Win32-API.
Die Sicherheit auf den folgenden Registrierungsschlüssel bestimmt, welche Benutzer oder Gruppen auf die Leistungsdaten zugreifen können:
HKEY_LOCAL_MACHINE\
SOFTWARE\
Microsoft\
Windows NT\
CurrentVersion\
Perflib
damit der Benutzer auf Leistungsdaten für die Abfrage, müssen Sie KEY_READ Zugriff auf den oben genannten Registrierungsschlüssel haben. Ein Beispiel für angemessene Sicherheit auf die Leistung Daten, interaktiv wäre (der Arbeitsstation interaktiv angemeldeten Benutzer) und Administratoren KEY_ALL_ACCESS Zugriff gewähren Zugriff auf KEY_READ. Diese spezielle Konfiguration verhindern, dass nicht-Administrator remote Benutzer Leistungsdaten Abfragen.
Beachten Sie, dass dieser Vorgang ausgeführt werden kann, mithilfe des Registrierung-Editor-Dienstprogramms (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;
}
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 146906
(http://support.microsoft.com/kb/146906/en-us/
)
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
Waren diese Informationen hilfreich?
Ja
Nein
Etwas
Wie hoch war der Aufwand für Sie persönlich, um diesen Artikel zu verwenden?
Sehr gering
Gering
Mittel
Hoch
Sehr hoch
Sagen Sie uns bitte, wie wir diese Informationen noch verbessern können
Danke! Dieses Feedback hilft uns dabei, die Supportartikel weiter zu verbessern. Weitere Informationen finden Sie auf der Hilfe und Support-Startseite.