ConfigMgr: SQL Query für MAC Addresse

SystemCenter Logo

Ich hab hier mal eine kurze, ausformulierte Query gebastelt, die das Auffinden eines Rechners mittels MAC Adresse erleichtern kann.

declare @MAC nvarchar(17);
set @MAC = '98:E7:F4:F7:12:0C'

SELECT     
    v_RA_System_ResourceNames.Resource_Names0 AS [Resource name], 
    v_RA_System_MACAddresses.MAC_Addresses0 AS [MAC Address],
    v_RA_System_IPAddresses.IP_Addresses0 AS [IP Address]
FROM         
    v_RA_System_MACAddresses 
INNER JOIN v_RA_System_ResourceNames ON v_RA_System_MACAddresses.ResourceID = v_RA_System_ResourceNames.ResourceID 
INNER JOIN v_RA_System_IPAddresses ON v_RA_System_MACAddresses.ResourceID = v_RA_System_IPAddresses.ResourceID
WHERE v_RA_System_MACAddresses.MAC_Addresses0 = @MAC

ConfigMgr: Task Sequence locked

SystemCenter Logo

Sollte die ConfigMgr Konsole mal unerwartet beenden und zufälliger Weise noch der Task Sequence Editor noch offen gewesen sein, kann das eine Sperre der Task Sequence in der Datenbank zur Folge haben. Es gibt einen kleinen Workaround um den Lock Datensatz aus der Datenbank zu entfernen. Lasst folgende Query auf dem Server (CAS / Primary) more

ConfigMgr: SMS_DMP_DOWNLOADER – Component stopped *Resolved*

SystemCenter Logo

Eine echt glanzvolle Leistung! Danke. Microsoft löscht beim Update auf 1606 einfach Regkey. Schaut Euch hier mal um: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\SMS_DMP_CONNECTOR Erstellt 2 neue leere string-values mit dem Namen “ProxyUserName” und “ProxyUserPassword“. Startet den SMS_EXECUTIVE Dienst neu SMS_DMP_DOWNLOADER startet dann automatisch und verbindet zu Microsoft um die Paket Meta Daten herunterzuladen. Lösung hier gefunden: Service connection point more

Powershell: Alle Sites von CAS extrahieren

Kurz und knackig:

Get-WmiObject -ComputerName '[Server-Name]' -Class 'SMS_SiteANDSubsites' -Namespace 'root\SMS\site_[Site-Code]' | 
    Select-Object ServerName, SiteName, SiteCode | 
    Export-Csv -Path C:\Temp\CM_Sites.csv
    
    
    

Natürlich müssen Server Namen und Site-Code geändert werden. Der Pfad für die CSV Datei kann, muss aber nicht gewählt werden.

Powershell: WMI Abfrage auf Sites in ConfigMgr 2012

Einfach den Server-Namen, SiteCode, Filter-Text anpassen und läuft.

$ServerName = <ServerName>
$SiteCode = <SiteCode>
$NameFilter = '<Naming Filter>'

Get-WmiObject -ComputerName $ServerName -Namespace "root\SMS\site_$SiteCode" -Class 'SMS_Site' -Filter "SiteName  like '%$NameFilter%'" | Select-Object SiteName, ServerName | Export-Csv -Path c:\temp\secsites.csv 


Könnte natürlich auch noch als Funktion ausgebaut werden. Für eine Quick-And-Dirty Anwendung reicht das sicher so.

Powershell: SQL Edition und Version live abfragen

In einer Hierarchie mit mehr als 70 Siteservern einer ConfigMgr 2012 R2 Umgebung stellt sich vielleicht mal die Frage der verwendeten Editionen und deren Versionen. Basierend auf einer schon früher veröffentlichten SQL Query Abfrage habe ich dann folgendes kurzes Script erstellt: Das Script holt sich aus der WMI des Servers eine Liste aller SiteServer (CAS more

Powershell / ConfigMgr2012: Non-Persistant Cache löschen

Ein zu kleiner CCM-Cache kann verhindern, dass neue Pakete, die nicht mehr in den Cache geladen werden können, nicht mehr installiert werden. Mit folgendem Snippet kann der Cache geleert werden Die Ursprüngliche Idee war dieses Snippet als Script in ein ConfigMgr Paket einzubinden und vorrangig den Cache zu bereinigen. Folgender Befehl muss dazu genutzt werden more

ConfigMgr2012: Alle Laptops für alle OUs in Active Directory filtern

SystemCenter Logo

Und wieder mal eine kleine aber nützliche Query. Diesmal filtere ich alle Laptops (… etc…) nach Chassistype.

select distinct
    SYS.Netbios_Name0 as [Computer Name],
	GSSE.ChassisTypes0 as [Chassis Type],
	GSOS.Caption0 as [OS],
	RASS.System_OU_Name0 as [OU Name]
from v_R_System as SYS
inner join v_GS_SYSTEM_ENCLOSURE as GSSE on GSSE.ResourceID = SYS.ResourceID
inner join v_GS_OPERATING_SYSTEM as GSOS on GSOS.ResourceID = SYS.ResourceID
inner join v_RA_System_SystemOUName as RASS on RASS.ResourceID = SYS.ResourceID
where GSSE.ChassisTypes0 in ('8', '9', '10', '14') 

Da es für die Chassistypes eine ganze Liste gibt und diese auch nicht immer nachvollziehbar und logisch verwendet sind….. ( 🙂 ) müssen gleich einige Typen berücksichtigt werden. Die Liste an verfügbaren Chassistype Codes hab ich mal mit gepostet.

1 = "Other"
2 = "Unknown"
3 = "DeskTop"
4 = "Low Profile Desktop"
5 = "Pizza Box"
6 = "Mini Tower"
7 = "Tower"
8 = "Portable"
9 = "Laptop"
10 = "Notebook"
11 = "Handheld"
12 = "Docking Station"
13 = "All-in-One"
14 = "Sub-Notebook"
15 = "Space Saving"
16 = "Lunch Box"
17 = "Main System Chassis"
18 = "Expansion Chassis"
19 = "Sub-Chassis"
20 = "Bus Expansion Chassis"
21 = "Peripheral Chassis"
22 = "Storage Chassis"
23 = "Rack Mount Chassis"
24 = "Sealed-Case PC"
25 = "Tablet"

Den effektiven Filter mach ich persönlich gerne in Excel mit einer Pivot Tabelle.

ConfigMgr 2012: Schell mal den Last Logon anschauen

SystemCenter Logo

Ganz rudimentär. Einfach Computer Name eingeben und Last Logged on User und Timestamp bekommen.

Alle Felder befinden sich in der selben View, somit für ein ganz einfaches Resultat auch keine JOINS.

select 
    SYS.Netbios_Name0 AS [Computer Name],
	SYS.Last_Logon_Timestamp0 AS [Last Logon Timestamp],
	SYS.User_Name0 AS [Last Logged on User]
from v_R_System AS SYS
where SYS.Netbios_Name0 like 'MachineNumber'

Das lässt sich natürlich auch ganz schön als SSRS Report verwirklichen mit einem Parameter Eingabefeld.

Powershell: Computer soll sich selbst zur einer AD Gruppe hinzufügen

Wenn das Active Directory nicht manuelle OU’s für Desktops und Laptops hat, die auch noch akribisch gepflegt werden, gibt es hin und wieder die Notwendigkeit die Computer der Einen oder Anderen Benutzergruppe, also die Rechner der Laptop-Anwender bzw. Desktop Anwender separat zu bedienen. Der Microsoft Configuration Manager macht das recht einfach möglich. Nun kann ich more

ConfigMgr 2012: Paket Source Pfad

SystemCenter Logo

Mit folgender SQL Query können alle Pakete mit einem definierten Sub-String gelistet werden:

select distinct
    PKG.PackageID,
	PKG.Name,
	PKG.Description,
	PKG.PkgSourcePath
from v_Package AS PKG
where PKG.PkgSourcePath LIKE '%path sub string%'

Dies kann bei einer Source Pfad Migration nützlich sein. Vorsicht beim Ändern des Paket Source Pfad, da damit automatisch eine Replikation des Paketes angestossen wird. Bei der Nutzung von zeitlichen Replikations-Einschränkungen wird damit ein Paket, das eventuell auch in einer Task Sequenz referenziert ist nicht verfügbar. Die Folge ist, dass Installationen nicht gestartet werden können bzw. auch Task Sequenzen an dieser Stelle scheitern

ConfigMgr 2012: Liste für Pakete ohne Deployment

SystemCenter Logo

Ca. ein Jahr nach der Migration der Pakete von ConfigMgr 2007 nach ConfigMgr 2012 ist es Zeit für einen Rückblick auf den Paket-Datenstand. In kurzer Zeit fand ich heraus, dass viele Paket noch ohne Deployment einfach so im System herumgeister, Speicherplatz verbrauchen und nichts nützen.

Kurzum: Zeit für einen Clean-Up ungebrauchter Pakete.

Nun braucht nicht jedes Paket ein Deployment. Pakete aus Task-Sequenzen sind solche Ausnahmen. Reports die das alles schön aussortieren sind ganz nett. Ich bevorzuge eine einfach Query um diese dann Nach belieben in Excel weiter zu verarbeiten:

select 
    PKG.PackageID,
	PKG.Name AS "Package Name",
	PKG.Manufacturer,
	PKG.Description,
	PKG.PkgSourcePath,
	PKG.SourceDate,
	PKG.LastRefreshTime,
	ADV.AdvertisementName,
	TSP.Name AS "TS-Name"
from
	v_Package AS PKG
LEFT JOIN v_Advertisement AS ADV ON PKG.PackageID = ADV.PackageID
LEFT JOIN v_TaskSequencePackage AS TSP ON PKG.PackageID = TSP.PackageID

ConfigMgr 2012: IE11 auf Client erkennen

SystemCenter Logo

Internet Explorer kann recht einfach über Microsoft Configuration Manager identifiziert werden.

Es gibt dazu einen RegKey der Version: HKLM\Software\Microsoft\Internet Explorer
Hier wird die Version hinterlegt.

Leider wird die Version recht unschön dargestellt, kann aber weiterverwendet werden. Internet Explorer 11 beginnt mit einer Version-Nummer von 9.11.x

Nun kann auf diesen RegKey ein Configuration Item erstellt werden, das dann über eine Configuration Baseline an eine Collection verteilt werden kann.

ConfigMgr2012: Collection Query: Alle Devices mit spezifischer Datei

SystemCenter Logo

Abhängig davon welche Dateien in ConfigMgr2012 inventarisiert sind können diese natürlich auch für automatische befüllte Collections verwendet werden.

Mit folgender WQL Query können diese gesammelt werden:

select 
    SMS_R_SYSTEM.ResourceID,
    SMS_R_SYSTEM.ResourceType,
    SMS_R_SYSTEM.Name,
    SMS_R_SYSTEM.SMSUniqueIdentifier,
    SMS_R_SYSTEM.ResourceDomainORWorkgroup,
    SMS_R_SYSTEM.Client 
from 
    SMS_R_System inner 
join 
    SMS_G_System_SoftwareFile 
    on SMS_G_System_SoftwareFile.ResourceID = SMS_R_System.ResourceId 
inner join 
    SMS_G_System_OPERATING_SYSTEM 
    on SMS_G_System_OPERATING_SYSTEM.ResourceID = SMS_R_System.ResourceId 
where 
    SMS_G_System_SoftwareFile.FileName = "FileName" and SMS_G_System_OPERATING_SYSTEM.Caption not like "%Server%" 
order by 
    SMS_R_System.NetbiosName

Mit der Kondition:

SMS_G_System_OPERATING_SYSTEM.Caption not like “%Server%

können weiteres Devices mit Server-OS ausgeschlossen werden. Dies hilft bei der Isolierung der Client Devices.