Parece que lo harías con WMI.
Obtener una instancia de: Win32_DCOMApplicationSetting
así:
$dcom = Get-WMIObject -Class Win32_DCOMApplicationSetting -Filter 'Description="Something"'
Ahora usted tienen acceso a los métodos y SetAccessSecurityDescriptor
SetLaunchSecurityDescriptor
.
Desde: http://msdn.microsoft.com/en-us/library/windows/desktop/aa384905(v=vs.85).aspx aplicaciones
DCOM
instancias de aplicaciones DCOM tienen varios descriptores de seguridad. Iniciando con Windows Vista, use los métodos de la clase Win32_DCOMApplicationSetting para obtener o cambiar los diversos descriptores de seguridad. Los descriptores de seguridad se devuelven como instancias de la clase Win32_SecurityDescriptor .
Para obtener o cambiar los permisos de configuración, llame al GetConfigurationSecurityDescriptor o métodos SetConfigurationSecurityDescriptor.
Para obtener o cambiar los permisos de acceso, llame al Métodos GetAccessSecurityDescriptor o SetAccessSecurityDescriptor.
Para obtener o cambiar los permisos de inicio y activación, llame a los métodos GetLaunchSecurityDescriptor o SetLaunchSecurityDescriptor.
Windows Server 2003, Windows XP, Windows 2000, Windows NT 4.0 y Windows Me/98/95: Los métodos de descriptor de seguridad Win32_DCOMApplicationSetting no están disponibles.
También hay una herramienta llamada DCOMPERM en el que el código fuente está disponible en el SDK de Windows: http://www.microsoft.com/en-us/download/details.aspx?id=8279
Puede encontrar versiones compiladas alrededor en línea si busca DCOMPERM compilado.
Aquí están las opciones de línea de comandos:
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)
Gracias Andy, eso ha ayudado mucho! Al final usé una mezcla de ambos métodos. Usé Win32_DCOMApplicationSetting para obtener los ID de la aplicación y luego utilicé DComPerm para agregar los permisos necesarios. Algo que encontré un poco extraño fue que CMD ejecutó DcomPerm con muchos menos problemas que Powershell, así que para lograr lo que necesitaba, escribí un archivo de proceso por lotes donde se transfirieron ciertas variables y lo llamé Powershell. – Vermin
@Vermin, supongo que los problemas que tuvo con PowerShell probablemente estén relacionados con la sintaxis/análisis de línea de comandos. Tal vez publicar el error que tienes? –