J'écris un script pour activer la case à cocher Appliquer l'accès au niveau du composant vérifie et coche la case avant le rôle.PowerShell pour activer l'ensemble de boîtes de sécurité COM +
C'est le code que j'ai jusqu'à présent (changement au nom de la COM + app):
$comAdmin = New-Object -ComObject COMAdmin.COMAdminCatalog
$apps = $comAdmin.GetCollection('Applications')
$apps.Populate()
$targetApp = '<appname>'
$app = $apps | Where-Object -FilterScript {
$_.Name -eq $targetApp
}
$components = $apps.GetCollection('Components',$app.key)
$components.Populate()
foreach ($component in $components)
{
$componentName = $component.Name
$componentID = $component.Value('CLSID')
}
$accesschecks = $component.Value('ComponentAccessChecksEnabled')
$component.Value('ComponentAccessChecksEnabled') = $true
$components.SaveChanges()
$comAdmin = New-Object -ComObject COMAdmin.COMAdminCatalog
$apps = $comAdmin.GetCollection('Applications')
$apps.Populate()
$app = $apps|Where-Object -FilterScript {
$_.Name -eq $targetApp
}
$components = $apps.GetCollection('Components', $app.Key)
$components.Populate()
$components.GetCollection('RolesForComponent', $component.Key)
foreach ($component in $components)
{
$component.Value('ComponentAccessChecksEnabled') = $true
$component.value('RolesForComponentEnabled') = #t
'{0,-30}{2,-10}{1}{1}' -f $component.Name, $component.Value('CLSID'), $component.Value('ComponentAccessChecksEnabled'), $component.Key
}
$components.SaveChanges()
La première partie des scripts fonctionne, il permet à la case à cocher. Mais la deuxième partie ne vérifie pas la case à cocher avant le rôle. Il ressemble maintenant à ceci:
J'ai besoin peu d'aide pour obtenir le script à travailler pour cocher la case. Des idées?