Sembra che lo fareste usando WMI.
ottenere un'istanza di: Win32_DCOMApplicationSetting
come questo:
$dcom = Get-WMIObject -Class Win32_DCOMApplicationSetting -Filter 'Description="Something"'
Ora si ha accesso a metodi e SetAccessSecurityDescriptor
SetLaunchSecurityDescriptor
.
Da: http://msdn.microsoft.com/en-us/library/windows/desktop/aa384905(v=vs.85).aspx applicazioni
DCOM
istanze di applicazioni DCOM hanno diversi descrittori di protezione. A partire da con Windows Vista, utilizzare i metodi della classe Win32_DCOMApplicationSetting per ottenere o modificare i vari descrittori di sicurezza. I descrittori di sicurezza vengono restituiti come istanze della classe Win32_SecurityDescriptor .
Per ottenere o modificare le autorizzazioni di configurazione, chiamare il metodo GetConfigurationSecurityDescriptor o SetConfigurationSecurityDescriptor.
Per ottenere o modificare le autorizzazioni di accesso, chiamare i metodi GetAccessSecurityDescriptor o SetAccessSecurityDescriptor.
Per ottenere o modificare le autorizzazioni di avvio e attivazione, chiamare i metodi GetLaunchSecurityDescriptor o SetLaunchSecurityDescriptor.
Windows Server 2003, Windows XP, Windows 2000, Windows NT 4.0 e Windows Me/98/95: I metodi descrittori Win32_DCOMApplicationSetting sicurezza non sono disponibili.
C'è anche uno strumento chiamato DCOMPERM in cui codice sorgente è disponibile nel Windows SDK: http://www.microsoft.com/en-us/download/details.aspx?id=8279
È possibile trovare compilato versioni intorno in linea se si cerca DCOMPERM compilato.
Ecco le opzioni della riga di comando:
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)
Grazie Andy, mi ha aiutato molto! Alla fine ho usato una miscela di entrambi i metodi. Ho utilizzato il Win32_DCOMApplicationSetting per ottenere gli ID app, quindi ho utilizzato DComPerm per aggiungere le autorizzazioni necessarie. Qualcosa che ho trovato un po 'strano è che CMD ha eseguito DcomPerm con meno problemi rispetto a Powershell, quindi per ottenere ciò di cui avevo bisogno, ho scritto un file batch in cui alcune variabili sono state passate e chiamato da Powershell. – Vermin
@ Probabilmente la mia ipotesi sarebbe che i problemi che avevate con PowerShell sono probabilmente sintassi/analisi della riga di comando correlata. Forse post l'errore che hai ottenuto? –