71 lines
2.6 KiB
PowerShell
71 lines
2.6 KiB
PowerShell
<#
|
|
2 .SYNOPSIS
|
|
3 Get the collection membership of a configuration manager client device or computer.
|
|
4
|
|
5 .DESCRIPTION
|
|
6 Get the collection membership of a configuration manager client device or computer.
|
|
7 This function will query System Center Configuration manager for a given computer name
|
|
8 and return the collections for which it is a member.
|
|
9
|
|
10 .PARAMETER ComputerName
|
|
11 Provide a computer name.
|
|
12
|
|
13 .PARAMETER SiteServer
|
|
14 Specify the name or FQDN of your SCCM site server. By default it gathers the site server
|
|
15 from the computer from which the function is called.
|
|
16
|
|
17 .PARAMETER SiteCode
|
|
18 Specify the site code of your SCCM environment. By default it gathers the site code
|
|
19 from the computer from which the function is called.
|
|
20
|
|
21 .PARAMETER Credential
|
|
22 Provide a credential object for accessing the site server.
|
|
23
|
|
24 .EXAMPLE
|
|
25 Get-CMClientDeviceCollectionMembership
|
|
26
|
|
27 Gets the collection membership of the local host.
|
|
28
|
|
29 .EXAMPLE
|
|
30 Get-CMClientDeviceCollectionMembership -Computer DESKTOP01
|
|
31
|
|
32 Gets the collection membership of DESKTOP01
|
|
33
|
|
34 .EXAMPLE
|
|
35 Get-CMClientDeviceCollectionMembership -Computer DESKTOP01 -Summary
|
|
36
|
|
37 Gets the collection membership of DESKTOP01 in a summary format.
|
|
38
|
|
39 .NOTES
|
|
40 Created by: Jason Wasser @wasserja
|
|
41 Modified: 6/8/2017 10:49:50 AM
|
|
42 #>
|
|
function Get-CMClientDeviceCollectionMembership {
|
|
[CmdletBinding()]
|
|
param (
|
|
[string]$ComputerName = $env:COMPUTERNAME,
|
|
[string]$SiteServer = (Get-WmiObject -Namespace root\ccm -ClassName SMS_Authority).CurrentManagementPoint,
|
|
[string]$SiteCode = (Get-WmiObject -Namespace root\ccm -ClassName SMS_Authority).Name.Split(':')[1],
|
|
[switch]$Summary,
|
|
[System.Management.Automation.PSCredential]$Credential = [System.Management.Automation.PSCredential]::Empty
|
|
)
|
|
|
|
|
|
begin {}
|
|
process {
|
|
Write-Verbose -Message "Gathering collection membership of $ComputerName from Site Server $SiteServer using Site Code $SiteCode."
|
|
$Collections = Get-WmiObject -ComputerName $SiteServer -Namespace root/SMS/site_$SiteCode -Credential $Credential -Query "SELECT SMS_Collection.* FROM SMS_FullCollectionMembership, SMS_Collection where name = '$ComputerName' and SMS_FullCollectionMembership.CollectionID = SMS_Collection.CollectionID"
|
|
if ($Summary) {
|
|
$Collections | Select-Object -Property Name,CollectionID
|
|
}
|
|
else {
|
|
$Collections
|
|
}
|
|
|
|
}
|
|
end {}
|
|
}
|
|
|
|
# Get-CMClientDeviceCollectionMembership -ComputerName w2012a | Select name,LimitToCollectionName
|
|
|