Sieht aus wie Sie es mit WMI tun würden.
Erhalten Sie eine Instanz: Win32_DCOMApplicationSetting
wie folgt aus:
$dcom = Get-WMIObject -Class Win32_DCOMApplicationSetting -Filter 'Description="Something"'
Jetzt haben Sie Zugriff auf die SetAccessSecurityDescriptor
und SetLaunchSecurityDescriptor
Methoden.
Von: http://msdn.microsoft.com/en-us/library/windows/desktop/aa384905(v=vs.85).aspx
DCOM-Anwendungen haben
DCOM Anwendungsinstanzen mehrere Sicherheitsbeschreibungen. Starten Sie mit Windows Vista, verwenden Sie Methoden der Klasse Win32_DCOMApplicationSetting , um die verschiedenen Sicherheitsbeschreibungen zu erhalten oder zu ändern. Sicherheit Deskriptoren werden als Instanzen der Klasse Win32_SecurityDescriptor zurückgegeben.
Um Konfigurationsberechtigungen abzurufen oder zu ändern, rufen Sie die Methoden GetConfigurationSecurityDescriptor oder SetConfigurationSecurityDescriptor auf. Um die Zugriffsberechtigungen abzurufen oder zu ändern, rufen Sie die Methoden GetAccessSecurityDescriptor oder SetAccessSecurityDescriptor auf.
Um die Start- und Aktivierungsberechtigungen abzurufen oder zu ändern, rufen Sie die Methoden GetLaunchSecurityDescriptor oder SetLaunchSecurityDescriptor auf.
Windows Server 2003, Windows XP, Windows 2000, Windows NT 4.0 und Windows Me/98/95: Die Sicherheitsbeschreibung "Win32_DCOMApplicationSetting" ist nicht verfügbar.
Es gibt auch ein Tool namens DCOMPERM, in dem Quellcode in dem Windows SDK verfügbar: http://www.microsoft.com/en-us/download/details.aspx?id=8279
Sie Versionen zusammengestellt finden können um online, wenn Sie für DCOMPERM zusammengestellt suchen.
Hier sind die Befehlszeilenoptionen:
Syntax: dcomperm <option> [...]
Options:
Modify or list the machine access permission list
-ma <"set" or "remove"> <Principal Name> ["permit" or "deny"] ["level:l,r"]
-ma list
Modify or list the machine launch permission list
-ml <"set" or "remove"> <Principal Name> ["permit" or "deny"] ["level:l,r,ll,la,rl,ra"]
-ml list
Modify or list the default access permission list
-da <"set" or "remove"> <Principal Name> ["permit" or "deny"] ["level:l,r"]
-da list
Modify or list the default launch permission list
-dl <"set" or "remove"> <Principal Name> ["permit" or "deny"] ["level:l,r,ll,la,rl,ra"]
-dl list
Modify or list the access permission list for a specific AppID
-aa <AppID> <"set" or "remove"> <Principal Name> ["permit" or "deny"] ["level:l,r"]
-aa <AppID> default
-aa <AppID> list
Modify or list the launch permission list for a specific AppID
-al <AppID> <"set" or "remove"> <Principal Name> ["permit" or "deny"] ["level:l,r,ll,la,rl,ra"]
-al <AppID> default
-al <AppID> list
level:
ll - local launch (only applies to {ml, dl, al} options)
rl - remote launch (only applies to {ml, dl, al} options)
la - local activate (only applies to {ml, dl, al} options)
ra - remote activate (only applies to {ml, dl, al} options)
l - local (local access - means launch and activate when used with {ml, dl, al} options)
r - remote (remote access - means launch and activate when used with {ml, dl, al} options)
Danke Andy, das hat sehr geholfen! Am Ende habe ich eine Mischung aus beiden Methoden verwendet. Ich habe Win32_DCOMApplicationSetting verwendet, um die App-IDs abzurufen, und anschließend DComPerm zum Hinzufügen der erforderlichen Berechtigungen verwendet. Etwas seltsam fand ich, dass CMD DcomPerm mit weniger Problemen als Powershell ausführte. Um das zu erreichen, was ich brauchte, schrieb ich eine Batch-Datei, in der bestimmte Variablen übergeben wurden und diese von Powershell aufgerufen wurde. – Vermin
@Vermeine meine Vermutung wären die Probleme, die Sie mit PowerShell hatten, sind wahrscheinlich Syntax/Befehlszeile Parsing verwandt. Vielleicht posten Sie den Fehler, den Sie bekommen haben? –