Configuration Manager 2012 – Débloquer la collection « All Systems »

Comme vous le savez sans doute, les collections par défaut comme « All Systems« , ne sont pas modifiables dans Configuration Manager 2012. En revanche, lorsque l’on fait un « Computer association », par exemple à l’aide du CMDLet Import-CMComputerInformation, il est tout à fait possible de créer un règle directe sur la collection « All Systems ».

Le problème ici, est donc une collection par défaut sur laquelle il n’est pas possible de supprimer les règles.

Je vous propose donc dans ce post, une solution pour corriger cela.

Voici le symptôme, suite à l’exécution du cmdlet:

Import-CMComputerInformation -CollectionName "All Systems" -ComputerName "LAB-SCCM"
 -MacAddress "XX:XX:XX:XX:XX:XX"

Nous nous retrouvons dans la situation suivante:

Lock-AllSystems-01

Si vous utilisez donc fréquemment cette méthode d’import, vous vous retrouverez rapidement avec une importante quantité de règles directes. De manière à supprimer ces règles, aucune méthode « traditionnelle » ne fonctionne, que ce soit Powershell, WMI, ou autre.

Tout se passera donc côté base de données. Attention toute fois, cette méthode n’est absolument pas supportée par Microsoft. Assurez vous donc de disposer des Backups adéquats. Une fois connecté sur notre serveur SQL, lancez la requête suivante (Elle vous permettra de compter le nombre de règles directes sur la collection « All Systems« ):

SELECT dbo.v_Collection.CollectionID, dbo.v_Collection.Name, 
dbo.v_Collection.MemberCount, Count(*) As 'Direct Member Rule Count'
FROM dbo.v_CollectionRuleDirect INNER JOIN dbo.v_Collection ON 
dbo.v_CollectionRuleDirect.CollectionID = dbo.v_Collection.CollectionID where dbo.v_collection.name = 'All Systems' 
Group by dbo.v_Collection.CollectionID, dbo.v_Collection.Name, dbo.v_Collection.MemberCount 

Lock-AllSystems-02

Donc de manière à supprimer cette règle, nous allons récupérer 2 attributs de la collection, à savoir le Flag, ainsi que le limittocollectionID. Notez bien ces valeurs, nous en aurons besoin pour remettre les valeurs après nos modifications.
Voici la requête SQL:

Select CollectionName, Flags,LimitToCollectionID 
from [dbo].[Collections_G] 
where CollectionName = 'All Systems' 

Lock-AllSystems-03

Nous allons maintenant « déverrouiller » la collection « All Systems« , avec la requête suivante:

update [dbo].[Collections_G] set 
Flags = 2,
LimitToCollectionID = 'SMS00000' 
where CollectionName = 'All Systems' 

Lock-AllSystems-04

Si nous revenons maintenant dans la console Configuration Manager éditer la collection, nous pouvons supprimer nos règles directement ou via le cmdlet « Remove-CMDeviceCollectionDirectMembershipRule« :

Lock-AllSystems-05

Il ne nous reste plus qu’à remettre la collection avec ses valeurs par défaut, avec la requête suivante:

update [dbo].[Collections_G] set 
Flags = 4100,
LimitToCollectionID = NULL 
where CollectionName = 'All Systems'

Lock-AllSystems-07

En revanche, je le répète, cette manipulation, n’est absolument pas supportée, elle est donc effectuée à vos risques et périls :) !!

Please follow and like us:

No Responses

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Social media & sharing icons powered by UltimatelySocial