Caspol.exe (Richtlinientool für die Codezugriffssicherheit)
Aktualisiert: April 2011
Das Richtlinientool für die Codezugriffssicherheit (Code Access Security, CAS) Caspol.exe ermöglicht es Benutzern und Administratoren, die Sicherheitsrichtlinien auf der Richtlinienebene des Computers, des Benutzers und des Unternehmens zu ändern.
![]() |
---|
In .NET Framework, Version 4 und höheren Versionen wirkt sich Caspol.exe nur dann auf CAS-Richtlinien aus, wenn das Element <legacyCasPolicy> auf true festgelegt ist.Weitere Informationen finden Sie unter Änderungen der Sicherheit in .NET Framework 4. |
![]() |
---|
64-Bit-Computer enthalten 64-Bit- und 32-Bit-Versionen der Sicherheitsrichtlinie.Um sicherzustellen, dass die Richtlinienänderung für 32-Bit- und 64-Bit-Anwendungen gelten, führen Sie die 32-Bit-Version von Caspol.exe aus, indem Sie die Visual Studio-Eingabeaufforderung verwenden, und führen Sie die 64-Bit-Version aus, indem Sie die Visual Studio-Win64-Eingabeaufforderung (x64) verwenden. |
Dieses Tool wird automatisch mit Visual Studio und mit dem Windows SDK installiert. Um das Tool auszuführen, empfiehlt es sich, dass Sie die Visual Studio-Eingabeaufforderung oder Windows SDK-Eingabeaufforderung (CMD-Shell) verwenden. Mit diesen Hilfsprogrammen können Sie das Tool problemlos ausführen, ohne in den Installationsordner zu navigieren. Weitere Informationen finden Sie unter Visual Studio- und Windows SDK-Eingabeaufforderungen.
Wenn Visual Studio auf dem Computer installiert ist: Klicken Sie auf der Taskleiste auf Start, All Programs, Visual Studio und Visual Studio Tools, und klicken Sie dann auf Visual Studio Command Prompt.
– oder –
Wenn das Windows SDK auf Ihrem Computer installiert ist: Klicken Sie auf der Taskleiste auf Start, All Programs, klicken Sie auf den Ordner für das Windows SDK, und klicken anschließend auf Command Prompt (oder CMD Shell).
Geben Sie an der Eingabeaufforderung Folgendes ein:
caspol [options]
Parameter
Option |
Beschreibungen |
---|---|
-addfulltrust assembly_file oder -af assembly_file |
Fügt eine Assembly, die ein benutzerdefiniertes Sicherheitsobjekt implementiert, z. B. eine benutzerdefinierte Berechtigung oder Mitgliedschaftsbedingung, der Liste der vollständig vertrauenswürdigen Assemblys einer bestimmten Richtlinienebene hinzu. Das assembly_file-Argument gibt die hinzuzufügende Assembly an. Diese Datei muss mit einem starken Namen signiert werden. Sie können eine Assembly mit dem Strong Name-Tool (Sn.exe) mit einem starken Namen signieren. Wenn ein Berechtigungssatz, der eine benutzerdefinierte Berechtigung enthält, einer Richtlinie hinzugefügt wird, muss außerdem die Assembly, die diese Berechtigung implementiert, der Liste der vollständig vertrauenswürdigen Assemblys dieser Richtlinienebene hinzugefügt werden. Assemblys, die benutzerdefinierte Sicherheitsobjekte implementieren, z. B. benutzerdefinierte Codegruppen oder Mitgliedschaftsbedingungen, die in Sicherheitsrichtlinien wie der Computerrichtlinie angewendet werden, sollten generell der Liste der vollständig vertrauenswürdigen Assemblys hinzugefügt werden. ![]()
Wenn die Assembly, die das benutzerdefinierte Sicherheitsobjekt implementiert, auf andere Assemblys verweist, müssen Sie der Liste der vollständig vertrauenswürdigen Assemblys zunächst die Assemblys hinzufügen, auf die verwiesen wird.Benutzerdefinierte Sicherheitsobjekte, die mit Visual Basic, C++ und JScript erstellt wurden, verweisen entweder auf Microsoft.VisualBasic.dll, Microsoft.VisualC.dll oder Microsoft.JScript.dll.In der Standardeinstellung befinden sich diese Assemblys nicht in der Liste der vollständig vertrauenswürdigen Assemblys.Sie müssen die entsprechende Assembly zur Liste der vollständig vertrauenswürdigen Assemblys hinzufügen, bevor Sie ein benutzerdefiniertes Sicherheitsobjekt hinzufügen.Wenn Sie dies unterlassen, wird das Sicherheitssystem beschädigt, und sämtliche Assemblys können nicht mehr geladen werden.In diesem Fall wird die Sicherheit nicht durch die Option -all -reset von Caspol.exe repariert.Zum Wiederherstellen der Sicherheit müssen Sie die Sicherheitsdateien manuell bearbeiten und das benutzerdefinierte Sicherheitsobjekt entfernen.
|
-addgroup {parent_label | parent_name} mship pset_name [flags] oder -ag {parent_label | parent_name} mship pset_name [flags] |
Fügt der Hierarchie der Codegruppen eine neue Codegruppe hinzu. Es kann entweder parent_label oder parent_name angegeben werden. Das parent_label-Argument gibt die Bezeichnung an (z. B. 1. oder 1.1.) der übergeordneten Codegruppe der hinzuzufügenden Codegruppe an. Das parent_name-Argument gibt den Namen der Codegruppe an, die der hinzuzufügenden übergeordnet ist. Da sich parent_label und parent_name synonym verwenden lassen, müssen sie von Caspol.exe unterschieden werden können. Aus diesem Grund darf parent_name nicht mit einer Zahl beginnen. Außerdem kann parent_name nur die Zeichen A-Z, 0-9 und den Unterstrich enthalten. Das mship-Argument gibt die Mitgliedschaftsbedingung für die neue Codegruppe an. Weitere Informationen zu mship-Argumenten finden Sie in der Tabelle weiter unten in diesem Abschnitt. Das pset_name-Argument stellt den Namen des Berechtigungssatzes dar, der der neuen Codegruppe zugeordnet wird. Darüber hinaus können ein oder mehrere Flags für die neue Gruppe festgelegt werden. Weitere Informationen zu flags-Argumenten finden Sie in der Tabelle weiter unten in diesem Abschnitt. |
-addpset {psfile | psfile pset_name} oder -ap {named_psfile | psfile pset_name} |
Fügt einer Richtlinie einen neuen benannten Berechtigungssatz hinzu. Der Berechtigungssatz muss in XML verfasst und als .xml-Datei gespeichert sein. Wenn die XML-Datei den Namen des Berechtigungssatzes enthält, wird nur diese Datei (psfile) angegeben. Enthält die XML-Datei den Namen des Berechtigungssatzes nicht, müssen sowohl der Name der XML-Datei (psfile) als auch der Name des Berechtigungssatzes (pset_name) angegeben werden. Beachten Sie, dass alle in einem Berechtigungssatz verwendeten Berechtigungen in Assemblys definiert sein müssen, die im globalen Assemblycache enthalten sind. |
-a[ll] |
Gibt an, dass alle folgenden Optionen für die Computer-, Benutzer- und Unternehmensrichtlinie gelten. Die Option -all bezieht sich immer auf die Richtlinie des aktuell angemeldeten Benutzers. Verwenden Sie die -customall-Option, um auf die Benutzerrichtlinie eines anderen Benutzers zu verweisen. |
-chggroup {label |name} {mship | pset_name | flags} oder -cg {label |name} {mship | pset_name | flags} |
Ändert bei einer Codegruppe die Mitgliedschaftsbedingung, den Berechtigungssatz oder die Festlegung für das exclusive-Flag, das levelfinal-Flag, das name-Flag oder das description-Flag. Sie können entweder label oder name festlegen. Das label-Argument gibt die Bezeichnung (z. B. 1. oder 1.1.) der Codegruppe. Durch das name-Argument wird der Name der zu ändernden Codegruppe festgelegt. Da sich label und name synonym verwenden lassen, müssen sie von Caspol.exe unterschieden werden können. Aus diesem Grund darf name nicht mit einer Zahl beginnen. Außerdem kann name nur die Zeichen A-Z, 0-9 und den Unterstrich enthalten. Das pset_name-Argument gibt den Namen des der Codegruppe zuzuordnenden Berechtigungssatzes an. Informationen zu mship-Argumenten und flags-Argumenten finden Sie in den Tabellen weiter unten in diesem Abschnitt. |
-chgpset psfile pset_name oder -cp psfile pset_name |
Ändert einen benannten Berechtigungssatz. Das psfile-Argument liefert die neue Definition des Berechtigungssatzes. Dabei handelt es sich um eine serialisierte Berechtigungssatzdatei im XML-Format. Das pset_name-Argument stellt den Namen des zu ändernden Berechtigungssatzes dar. |
-customall path oder -ca path |
Gibt an, dass alle folgenden Optionen für die Computer- und Unternehmensrichtlinie sowie die benutzerdefinierte Benutzerrichtlinie gelten. Der Speicherort für die benutzerdefinierte Sicherheitskonfigurationsdatei des Benutzers muss mit dem path-Argument angegeben werden. |
-cu[stomuser] path |
Ermöglicht die Verwaltung einer benutzerdefinierten Benutzerrichtlinie, die nicht für den Benutzer gilt, für den Caspol.exe gerade ausgeführt wird. Der Speicherort für die benutzerdefinierte Sicherheitskonfigurationsdatei des Benutzers muss mit dem path-Argument angegeben werden. |
-enterprise oder -en |
Gibt an, dass alle folgenden Optionen für die Richtlinie auf Organisationsebene gelten. Benutzer, die keine Administratoren der Organisation sind, verfügen nicht über ausreichende Rechte zum Ändern der Unternehmensrichtlinie. Sie können sich diese allerdings anzeigen lassen. In Szenarien, die sich nicht auf die Organisation beziehen, werden die Computer- und die Benutzerrichtlinie von dieser Richtlinie standardmäßig nicht beeinflusst. |
-e[xecution] {on | off} |
Aktiviert oder deaktiviert den Mechanismus, der die Berechtigung zum Ausführen vor dem Beginn der Codeausführung überprüft. ![]()
Dieser Schalter wurde in .NET Framework 4 und höheren Versionen entfernt.Weitere Informationen finden Sie unter Änderungen der Sicherheit in .NET Framework 4.
|
-f[orce] |
Unterdrückt den Test auf Selbstzerstörung des Tools und ändert die Richtlinie entsprechend den Benutzerangaben. In der Regel überprüft Caspol.exe, ob eine Richtlinienänderung die Ausführungsfähigkeit von Caspol.exe selbst beeinträchtigt. Trifft dies zu, speichert Caspol.exe die Richtlinienänderung nicht und gibt eine Fehlermeldung aus. Um zu erzwingen, dass die Richtlinie von Caspol.exe geändert wird, auch wenn dadurch die Ausführung von Caspol.exe nicht mehr möglich ist, wird die –force-Option verwendet. |
-h[elp] |
Zeigt die Befehlssyntax und Optionen für Caspol.exe an. |
-l[ist] |
Listet die Hierarchie der Codegruppen sowie die Berechtigungssätze für den angegebenen Computer, Benutzer oder die Organisation bzw. für alle Richtlinienebenen auf. Caspol.exe zeigt zuerst die Bezeichnung der Codegruppe an und dann deren Namen, sofern vorhanden. |
-listdescription oder -ld |
Listet alle Codegruppenbeschreibungen für die angegebene Richtlinienebene auf. |
-listfulltrust oder -lf |
Zeigt den Inhalt der Liste der vollständig vertrauenswürdigen Assemblys für die angegebene Richtlinienebene an. |
-listgroups oder -lg |
Zeigt die Codegruppen der angegebenen bzw. aller Richtlinienebenen an. Caspol.exe zeigt zuerst die Bezeichnung der Codegruppe an und dann deren Namen, sofern vorhanden. |
-listpset oder -lp |
Zeigt die Berechtigungssätze für die angegebene bzw. alle Richtlinienebenen an. |
-m[achine] |
Gibt an, dass alle folgenden Optionen für die Richtlinie auf Computerebene gelten. Benutzer, die keine Administratoren sind, verfügen nicht über ausreichende Rechte zum Ändern der Computerrichtlinie. Sie können sich diese allerdings anzeigen lassen. Für Administratoren ist -machine die Standardeinstellung. |
-polchgprompt {on | off} oder -pp {on | off} |
Aktiviert oder deaktiviert die Eingabeaufforderung, die immer dann angezeigt wird, wenn Caspol.exe ausgeführt wird und die verwendete Option Richtlinienänderungen bewirkt. |
-quiet oder -q |
Deaktiviert vorübergehend die Eingabeaufforderung, die normalerweise für eine Option angezeigt wird, die Richtlinienänderungen bewirkt. Die Einstellung für die Eingabeaufforderung für globale Änderungen wird nicht verändert. Verwenden Sie die Option nur für einen einzelnen Befehl, um zu verhindern, dass die Eingabeaufforderung für alle Caspol.exe-Befehle deaktiviert wird. |
-r[ecover] |
Stellt Richtlinien aus einer Sicherungsdatei wieder her. Bei jeder Änderung einer Richtlinie speichert Caspol.exe die alte Version in einer Sicherungsdatei. |
-remfulltrust assembly_file oder -rf Assemblydatei |
Entfernt eine Assembly aus der Liste der vollständig vertrauenswürdigen Assemblys einer Richtlinienebene. Diese Operation sollte ausgeführt werden, wenn ein Berechtigungssatz, der eine benutzerdefinierte Berechtigung enthält, von einer Richtlinie nicht mehr verwendet wird. Sie sollten eine Assembly, die eine benutzerdefinierte Berechtigung implementiert, jedoch nur dann aus der Liste der vollständig vertrauenswürdigen Assemblys entfernen, wenn die Assembly keine weiteren verwendeten benutzerdefinierten Berechtigungen implementiert. Wenn eine Assembly aus der Liste entfernt wird, sollten darüber hinaus alle Assemblys entfernt werden, die von dieser abhängen. |
-remgroup {label |name} oder -rg {label | name} |
Entfernt die mit ihrer Bezeichnung bzw. dem Namen angegebene Codegruppe. Wenn die angegebene Codegruppe untergeordnete Codegruppen hat, werden diese von Caspol.exe entfernt. |
-rempset pset_name oder -rp pset_name |
Entfernt den angegebenen Berechtigungssatz aus der Richtlinie. Das pset_name-Argument gibt den zu entfernenden Berechtigungssatz an. Caspol.exe entfernt den Berechtigungssatz nur dann, wenn er keiner Codegruppe zugeordnet ist. Die vorgegebenen, systemintegrierten Berechtigungssätze können nicht entfernt werden. Weitere Informationen finden Sie unter Benannte Berechtigungssätze. |
-reset oder -rs |
Setzt Richtlinien auf ihren Standardzustand zurück und speichert sie auf dem Datenträger. Dies empfiehlt sich, wenn eine geänderte Richtlinie irreparabel beschädigt ist und Sie erneut mit den installierten Standardeinstellungen beginnen möchten. Das Zurücksetzen bietet sich auch dann an, wenn die Standardrichtlinie als Ausgangspunkt für Änderungen an bestimmten Sicherheitskonfigurationsdateien verwendet werden soll. Weitere Informationen finden Sie unter Manuelles Bearbeiten der Sicherheitskonfigurationsdateien. |
-resetlockdown oder -rsld |
Setzt Richtlinien auf eine restriktivere Version des Standardzustands zurück und speichert sie auf dem Datenträger. Erstellt eine Sicherungskopie der vorherigen Computerrichtlinie und speichert sie in der Datei security.config.bac. Die überschriebene Richtlinie entspricht bis auf eine Ausnahme der Standardrichtlinie: Code der Zonen Local Intranet, Trusted Sites und Internet werden keine Berechtigungen gewährt, und die entsprechenden Codegruppen weisen keine untergeordneten Codegruppen auf. |
-resolvegroup assembly_file oder -rsg Assemblydatei |
Zeigt die Codegruppen an, zu denen eine bestimmte Assembly (assembly_file) gehört. Diese Option zeigt standardmäßig die Computer-, Benutzer- und Unternehmensrichtlinienebenen an, denen die Assembly angehört. Um nur eine Richtlinienebene anzuzeigen, verwenden Sie diese Option mit einer der Optionen -machine, -user oder -enterprise. |
-resolveperm assembly_file oder -rsp assembly_file |
Zeigt alle Berechtigungen an, die der Assembly auf der angegebenen bzw. der Standardebene der Sicherheitsrichtlinie erteilt werden, wenn die Assembly ausgeführt werden darf. Das assembly_file-Argument gibt die Assembly an. Wenn die -all-Option angegeben wird, berechnet Caspol.exe die Berechtigungen für die Assembly anhand der Benutzer-, Computer- und Unternehmensrichtlinie, andernfalls gelten die Standardverhaltensregeln. |
-s[ecurity] {on | off} |
Aktiviert oder deaktiviert die Codezugriffssicherheit. Durch Festlegen der -s off-Option wird die rollenbasierte Sicherheit nicht deaktiviert. ![]()
Dieser Schalter wurde in .NET Framework 4 und höheren Versionen entfernt.Weitere Informationen finden Sie unter Änderungen der Sicherheit in .NET Framework 4.
![]()
Wenn die Codezugriffssicherheit deaktiviert ist, werden alle Codezugriffsforderungen erfolgreich ausgeführt.Das Deaktivieren der Codezugriffssicherheit macht das System anfällig gegenüber Angriffen von böswilligem Code wie Viren und Würmern.Das Deaktivieren der Sicherheit führt zu einem gewissen Leistungsanstieg, sollte jedoch nur vorgenommen werden, wenn andere Sicherheitsmaßnahmen ergriffen wurden, um eine Verletzung der allgemeinen Systemsicherheit auszuschließen.Beispiele für solche Sicherheitsmaßnahmen sind u. a. das Trennen von Verbindungen mit öffentlichen Netzwerken und die physikalische Sicherung von Computern.
|
-u[ser] |
Gibt an, dass alle folgenden Optionen für die Benutzerebenenrichtlinie des Benutzers gelten, für den Caspol.exe ausgeführt wird. Für Benutzer, die keine Administratoren sind, ist -user die Standardeinstellung. |
-? |
Zeigt die Befehlssyntax und Optionen für Caspol.exe an. |
Das mship-Argument, das die Mitgliedschaftsbedingung für eine Codegruppe angibt, kann mit der -addgroup-Option und der -chggroup-Option verwendet werden. Jedes mship-Argument wird als .NET Framework-Klasse implementiert. mship wird mit einem der folgenden Argumente angegeben:
Argument |
Beschreibungen |
---|---|
-allcode |
Gibt den gesamten Code an. Weitere Informationen zu dieser Mitgliedschaftsbedingung finden Sie unter AllMembershipCondition-Klasse. |
-appdir |
Gibt das Anwendungsverzeichnis an. Wenn Sie –appdir als Mitgliedschaftbedingung angeben, wird der URL-Beweis des Codes mit dem Anwendungsverzeichnisbeweis dieses Codes verglichen. Wenn die Beweiswerte identisch sind, ist die Mitgliedschaftsbedingung erfüllt. Weitere Informationen zu dieser Mitgliedschaftsbedingung finden Sie unter ApplicationDirectoryMembershipCondition-Klasse. |
-custom xmlfile |
Fügt eine benutzerdefinierte Mitgliedschaftsbedingung hinzu. Das obligatorische xmlfile-Argument gibt die .xml-Datei an, die die XML-Serialisierung der benutzerdefinierten Mitgliedschaftsbedingung enthält. |
-hash hashAlg {-hex hashValue | -Datei assembly_file } |
Gibt Code an, der über den angegebenen Assemblyhash verfügt. Um einen Hash als Codegruppen-Mitgliedschaftsbedingung verwenden zu können, muss entweder der Hashwert oder die Assemblydatei angegeben werden. Weitere Informationen zu dieser Mitgliedschaftsbedingung finden Sie unter HashMembershipCondition-Klasse. |
-pub { -cert cert_file_name | -file signed_file_name | -hex hex_string } |
Gibt Code an, der über den angegebenen Softwareherausgeber verfügt. Dieser wird anhand einer Zertifikatsdatei, der Signatur einer Datei oder der hexadezimalen Darstellung eines X509-Zertifikats bestimmt. Weitere Informationen zu dieser Mitgliedschaftsbedingung finden Sie unter PublisherMembershipCondition-Klasse. |
-site website |
Gibt Code an, der über die entsprechende Ursprungssite verfügt. Beispiele: -site www.proseware.com Weitere Informationen zu dieser Mitgliedschaftsbedingung finden Sie unter SiteMembershipCondition-Klasse. |
-strong -file file_name {name | -noname} {version | -noversion} |
Gibt Code mit einem spezifischen starken Namen an, wie er vom Dateinamen, dem Assemblynamen als Zeichenfolge und der Assemblyversion im Format major.minor.build.revision bestimmt wird. Beispiele: -strong -file Assembly.exe Assembly 1.2.3.4 Weitere Informationen zu dieser Mitgliedschaftsbedingung finden Sie unter StrongNameMembershipCondition-Klasse. |
-url URL |
Gibt Code an, der von der angegebenen URL stammt. Die URL muss ein Protokoll wie http:// oder ftp:// enthalten. Außerdem kann ein Platzhalterzeichen (*) verwendet werden, um mehrere Assemblys von einer bestimmten URL anzugeben. ![]()
Da eine URL anhand mehrerer Namen gekennzeichnet werden kann, kann durch Verwenden einer URL als Mitgliedschaftsbedingung die Identität von Code nicht sicher festgestellt werden.Verwenden Sie nach Möglichkeit Mitgliedschaftsbedingungen mit einem starken Namen, Herausgebermitgliedschaftsbedingungen oder Hashmitgliedschaftsbedingungen.
Weitere Informationen zu dieser Mitgliedschaftsbedingung finden Sie unter UrlMembershipCondition-Klasse. |
-zone zonename |
Gibt Code mit der angegebenen Ursprungszone an. Das zonename-Argument kann einen der folgenden Werte annehmen: MyComputer, Intranet, Trusted, Internet oder Untrusted. Weitere Informationen zu dieser Mitgliedschaftsbedingung finden Sie unter ZoneMembershipCondition-Klasse. |
Das flags-Argument, das mit der Option –addgroup und der Option –chggroup verwendet werden kann, wird wie folgt angegeben:
Argument |
Beschreibungen |
---|---|
-description "Beschreibung" |
Gibt bei Verwendung mit der Option -addgroup die Beschreibung für eine hinzuzufügende Codegruppe an. Gibt bei Verwendung mit der Option -chggroup die Beschreibung für eine zu bearbeitende Codegruppe an. Das description-Argument muss in doppelte Anführungszeichen eingeschlossen sein. |
-exclusive {on|off} |
on gibt an, dass lediglich der Berechtigungssatz berücksichtigt wird, der der hinzuzufügenden bzw. zu ändernden Codegruppe zugeordnet ist, wenn ein Code die Mitgliedschaftsbedingung der Codegruppe erfüllt. Wenn für diese Option off festgelegt ist, berücksichtigt Caspol.exe die Berechtigungssätze aller auf der Richtlinienebene übereinstimmenden Codegruppen. |
-levelfinal {on|off} |
on gibt an, dass keine Richtlinienebene unterhalb der Ebene der hinzugefügten bzw. geänderten Codegruppe berücksichtigt wird. In der Regel wird diese Option auf Ebene der Computerrichtlinie verwendet. Wenn dieses Flag z. B. auf Computerebene für eine Codegruppe festgelegt wird und ein Code die Mitgliedschaftsbedingung dieser Codegruppe erfüllt, wird von Caspol.exe nicht die Benutzerebenenrichtlinie für diesen Code berechnet oder auf diesen angewendet. |
-name "Name" |
Gibt bei Verwendung mit der Option -addgroup den Skriptnamen für eine hinzuzufügende Codegruppe an. Gibt bei Verwendung mit der Option -chggroup den Skriptnamen für eine zu bearbeitende Codegruppe an. Das name-Argument muss in doppelten Anführungszeichen stehen. Das name-Argument darf nicht mit einer Zahl beginnen, und kann nur die Zeichen A-Z, 0-9 und den Unterstrich enthalten. Bei einem Verweis auf Codegruppen kann name anstelle ihrer numerischen Bezeichnung verwendet werden. name empfiehlt sich besonders für Scripting-Zwecke. |
Hinweise
Die Sicherheitsrichtlinie teilt sich in drei Richtlinienebenen auf: Computerrichtlinie, Benutzerrichtlinie und Unternehmensrichtlinie. Der Satz von Berechtigungen, den eine Assembly erhält, wird von der Schnittmenge der auf diesen drei Richtlinienebenen zulässigen Berechtigungssätze bestimmt. Jede Richtlinienebene wird durch eine hierarchische Codegruppenstruktur dargestellt. Jede Codegruppe verfügt über eine Mitgliedschaftsbedingung, die bestimmt, welcher Code ein Element dieser Gruppe darstellt. Außerdem wird jeder Codegruppe ein benannter Berechtigungssatz zugeordnet. Dieser Berechtigungssatz gibt die Berechtigungen an, die dem Code, der die Mitgliedschaftsbedingung erfüllt, von der Laufzeit erteilt werden. Jede Ebene der Sicherheitsrichtlinie wird von einer Hierarchie der Codegruppen und dem zugehörigen benannten Berechtigungssatz definiert und verwaltet. Die Ebene der Sicherheitsrichtlinie wird mit der –user-Option, der -customuser-Option, der –machine-Option sowie der -enterprise-Option festgelegt.
Weitere Informationen zu Sicherheitsrichtlinien und die Bestimmung der Berechtigungszuteilung an Codes durch die Laufzeit finden Sie unter Sicherheitsrichtlinienverwaltung.
Verweise auf Codegruppen und Berechtigungssätze
Für das vereinfachte Erstellen von Verweisen auf Codegruppen in einer Hierarchie wird mit der -list-Option eine Liste mit Einzügen angezeigt. In dieser sind die Codegruppen und deren numerische Bezeichnungen (1, 1.1, 1.1.1 usw.) aufgeführt. Die anderen Befehlszeilenoperationen bzgl. Codegruppen verwenden für Verweise auf bestimmte Codegruppen ebenfalls die numerischen Bezeichnungen.
Bei Verweisen auf benannte Berechtigungssätze wird der entsprechende Name verwendet. Die –list-Option zeigt eine Liste der Codegruppen an, der eine Liste der in dieser Richtlinie verfügbaren, benannten Berechtigungssätze folgt. Eine Liste und Beschreibung der systemintegrierten Berechtigungssätze, die von der Laufzeit zur Verfügung gestellt werden, finden Sie unter Benannte Berechtigungssätze.
Verhalten von Caspol.exe
Alle Optionen außer -s[ecurity] {on | off} die Version von .NET Framework wird verwendet, mit der Caspol.exe installiert wurde. Wenn eine Version von Caspol.exe ausgeführt wird, die mit der Laufzeitversion X installiert wurde, gelten die Änderungen nur für diese Version. Andere eventuell vorhandene Parallelinstallationen der Laufzeit sind davon nicht betroffen. Wenn Sie Caspol.exe von der Befehlszeile ausführen und sich nicht in einem Verzeichnis für eine bestimmte Laufzeitversion befinden, erfolgt die Ausführung des Tools vom ersten Laufzeitversionsverzeichnis im Pfad aus. Dieses ist i. d. R. das Verzeichnis der zuletzt installierten Laufzeitversion.
Die -s[ecurity] {in | off} Option ist eine computerweite Operation. Durch das Deaktivieren der Codezugriffssicherheit werden die Sicherheitsüberprüfungen für sämtlichen verwalteten Code und alle Benutzer des Computers beendet. Wenn mehrere Versionen von .NET Framework parallel installiert sind, deaktivieren Sie mit diesem Befehl die Sicherheit für alle auf dem Computer installierten Versionen der Laufzeit. Obwohl die –list-Option anzeigt, dass die Sicherheit deaktiviert ist, haben die anderen Benutzer keine klaren Anzeichen dafür, dass die Sicherheit deaktiviert wurde.
Führen Benutzer ohne Administratorrechte Caspol.exe aus, beziehen sich alle Optionen auf die Richtlinie der Benutzerebene, es sei denn, die ‑machine-Option wurde angegeben. Führt ein Administrator Caspol.exe aus, beziehen sich alle Optionen auf die Computerrichtlinie, es sei denn, die ‑user-Option wurde angegeben.
Damit Caspol.exe ausgeführt werden kann, müssen Berechtigungen erteilt sein, die dem Berechtigungssatz Alles entsprechen. Das Tool verfügt über einen Schutzmechanismus. Dieser verhindert, dass Richtlinien dahingehend geändert werden, dass Caspol.exe nicht mehr die für seine Ausführung erforderlichen Berechtigungen erhält. Beim Versuch einer solchen Änderung informiert Caspol.exe Sie darüber, dass die beabsichtigte Richtlinienänderung das Tool außer Funktion setzen würde, und die Richtlinienänderung wird verweigert. Dieser Schutzmechanismus kann für einen bestimmten Befehl mithilfe der –force-Option überschrieben werden.
Manuelles Bearbeiten der Sicherheitskonfigurationsdateien
Zu den drei von Caspol.exe unterstützten Richtlinienebenen gehören drei Sicherheitskonfigurationsdateien: eine für die Computerrichtlinie, eine weitere für die Benutzerrichtlinie eines bestimmten Benutzers und eine für die Unternehmensrichtlinie. Diese Dateien werden nur auf Datenträgern erstellt, wenn die Computer-, Benutzer- oder Unternehmensrichtlinie mit Caspol.exe geändert wurde. Mit der Option -reset in Caspol.exe speichern Sie bei Bedarf die Standardsicherheitsrichtlinie auf einem Datenträger.
In den meisten Fällen ist davon abzuraten, die Sicherheitskonfigurationsdateien manuell zu bearbeiten. Allerdings kann es Szenarien geben, in denen die Änderung dieser Dateien notwendig ist, z. B. wenn ein Administrator die Sicherheitskonfiguration für einen bestimmten Benutzer bearbeiten möchte.
Beispiele
-addfulltrust
Angenommen, ein Berechtigungssatz wurde mit einer benutzerdefinierten Berechtigung der Computerrichtlinie hinzugefügt. Diese benutzerdefinierte Berechtigung ist in MyPerm.exe implementiert. MyPerm.exe wiederum verweist auf Klassen in MyOther.exe. Beide Assemblys müssen der vollständig vertrauenswürdigen Assemblyliste hinzugefügt werden. Mit dem folgenden Befehl wird die MyPerm.exe-Assembly der Liste der vollständig vertrauenswürdigen Assemblys für die Computerrichtlinie hinzugefügt.
caspol -machine -addfulltrust MyPerm.exe
Mit dem folgenden Befehl wird die MyOther.exe-Assembly der Liste der vollständig vertrauenswürdigen Assemblys für die Computerrichtlinie hinzugefügt.
caspol -machine -addfulltrust MyOther.exe
-addgroup
Der folgende Befehl fügt dem Stamm der Codegruppenhierarchie für die Computerrichtlinie eine untergeordnete Codegruppe hinzu. Die neue Codegruppe ist ein Element der Zone Internet und wird dem Berechtigungssatz Execution zugeordnet.
caspol -machine -addgroup 1. -zone Internet Execution
Durch den folgenden Befehl wird eine untergeordnete Codegruppe hinzugefügt, die der Freigabe \\netserver\netshare Berechtigungen für das lokale Intranet gewährt.
caspol -machine -addgroup 1. -url \\netserver\netshare\* LocalIntranet
-addpset
Der folgende Befehl fügt der Benutzerrichtlinie den Berechtigungssatz Mypset hinzu.
caspol -user -addpset Mypset.xml Mypset
-chggroup
Mit dem folgenden Befehl wird der Berechtigungssatz in der Benutzerrichtlinie der mit 1.2. bezeichneten Codegruppe geändert. an den Ausführungsberechtigungssatz.
caspol -user -chggroup 1.2. Execution
Mit dem folgenden Befehl wird die Mitgliedschaftsbedingung in der Standardrichtlinie der Codegruppe 1.2.1 geändert. und ändert die Einstellung der exklusiven Kennzeichnung. Die Mitgliedschaftbedingung wird mit Code definiert, der aus der Zone Internet stammt und dessen exclusive-Flag aktiviert ist.
caspol -chggroup 1.2.1. -zone Internet -exclusive on
-chgpset
Durch den folgenden Befehl wird der Berechtigungssatz mit dem Namen Mypset in einen anderen Berechtigungssatz geändert, der in newpset.xml enthalten ist. Beachten Sie, dass das Ändern von Berechtigungssätzen, die von der Codegruppenhierarchie verwendet werden, von der aktuellen Version nicht unterstützt wird.
caspol -chgpset Mypset newpset.xml
-force
Der folgende Befehl verknüpft die Stammcodegruppe der Benutzerrichtlinie (die Gruppe mit der Bezeichnung 1) mit dem benannten Berechtigungssatz Nothing. Dadurch wird das Ausführen von Caspol.exe verhindert.
caspol -force -user -chggroup 1 Nothing
-recover
Der folgende Befehl stellt die zuletzt gespeicherte Computerrichtlinie wieder her.
caspol -machine -recover
-remgroup
Der folgende Befehl entfernt die Codegruppe mit der Bezeichnung 1.1. Untergeordnete Codegruppen dieser Codegruppe werden ebenfalls gelöscht.
caspol -remgroup 1.1.
-rempset
Der folgende Befehl entfernt den Berechtigungssatz Execution aus der Benutzerrichtlinie.
caspol -user -rempset Execution
Der folgende Befehl entfernt Mypset auf der Ebene der Benutzerrichtlinie.
caspol -rempset MyPset
-resolvegroup
Der folgende Befehl zeigt alle Codegruppen der Computerrichtlinie an, denen myassembly angehört.
caspol -machine -resolvegroup myassembly
Der folgende Befehl zeigt alle Codegruppen der Computerrichtlinie, der Organisationsrichtlinie und der angegebenen benutzerdefinierten Benutzerrichtlinie an, denen myassembly angehört.
caspol -customall "c:\config_test\security.config" -resolvegroup myassembly
-resolveperm
Der folgende Befehl berechnet die Berechtigungen für testassembly anhand der Ebene der Computer- und der Benutzerrichtlinie.
caspol -all -resolveperm testassembly
Siehe auch
Referenz
Visual Studio- und Windows SDK-Eingabeaufforderungen
Weitere Ressourcen
Verwaltung der Sicherheitsrichtlinien
Änderungsprotokoll
Datum |
Versionsgeschichte |
Grund |
---|---|---|
April 2011 |
Hinzugefügte Informationen zur Verwendung der Visual Studio- und Windows SDK-Eingabeaufforderungen. |
Informationsergänzung. |
August 2010 |
Informationen zur 64-Bit-Version von Caspol.exe wurden hinzugefügt. |
Informationsergänzung. |
August 2010 |
Syntax im letzten Beispiel wurde korrigiert. |
Kundenfeedback. |