Запрос коллекции устройств SCCM: поиск всех клиентов в интрасети

Я пытаюсь создать запрос WMI для коллекции устройств, чтобы найти все компьютеры, которые в настоящее время находятся за пределами нашей интрасети. Я могу сделать это в Powershell, выполнив:

(Get-WmiObject -namespace root\ccm -query "select InInternet from ClientInfo").InInternet

Но я не могу найти соответствующий запрос в SCCM.

В диспетчере конфигурации на клиенте вы можете увидеть «Тип подключения» и указать, является ли оно в настоящее время Интранет или Интернет.

Кто-нибудь знает, возможно ли это в запросе SCCM?


person Casey Hoffmann    schedule 19.04.2017    source источник


Ответы (2)


Насколько я знаю, SCCM не собирает тип подключения, вероятно, потому, что он слишком часто меняется (или, по крайней мере, может). Единственный запрос на стороне сервера, о котором я могу думать, - это проверить, был ли последний MP одним из MP с доступом в Интернет. Бывший:

SELECT * FROM SMS_R_System WHERE ResourceID IN ( SELECT ResourceID FROM SMS_G_System_CH_ClientSummary WHERE LastMPServerName IN ('InternetEnabledMP.DMZ.contoso.local','MySecondInternetEnabledMP.DMZ.contoso.local'))"
person Frode F.    schedule 19.04.2017

если (Get-WmiObject -namespace root\ccm -query "select InInternet from ClientInfo").InInternet может вернуть правильные данные, вы все равно сможете получить все результаты от клиентов один за другим, выполнив команду на удаленной машине, используя свойство -computername:

Import-Module 'C:\Program Files (x86)\Microsoft Configuration Manager\AdminConsole\bin\ConfigurationManager.psd1' 
cd cts:
$devices = (Get-CMDevice -CollectionName "All Desktop and Server Clients").name
Foreach ($device in $devices)
{
   if(Test-Connection -ComputerName $device -Count 1 -Quiet)
    {
        $InInternet = (Get-WmiObject -ComputerName $device -Namespace root\ccm -Query 'select InInternet from ClientInfo').InInternet
        $properties = @{'name' = $device; 'IsInternet' = $InInternet}
        $Object = New-Object -TypeName PSObject -Property $properties
        Write-Output $Object
   }else{
       Write-Warning "Try connection to $device failed!"
    }
}

Сценарий не является полным сценарием, поскольку он не перехватывает исключения при попытке подключения к целевой машине для получения свойства. Но он должен быть в состоянии сказать, что я имею в виду здесь, и должен быть в состоянии работать. Возможно, вам потребуется запустить скрипт с правами администратора.

person Bifeng Dong - MSFT    schedule 20.04.2017
comment
Просто хочу знать, есть ли у вас ответ на вопрос. - person Bifeng Dong - MSFT; 08.05.2017