SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

SCCM の通信確認のため IIS ログと TCP コネクションを確認

leave a comment

SCCM のログを確認する場合、CMTrace を使用することがあるかと思います。
Configuration Manager のログ ファイルのテクニカル リファレンス
SCCM のログは多数あり、初期の構築時の簡易の通信確認をする場合、IIS ログと TCP コネクションの確認で済むケースもありますので、簡単なスクリプトで対応してみました。

while($true){cls;netsh http flush logbuffer | out-null;Get-Content C:\inetpub\logs\LogFiles\W3SVC1\<ログ> -tail 25 | Select-String "<IP アドレス>";start-sleep -Seconds 5}

IIS のログに関しては、キャッシュされて定期的にフラッシュする仕組みですので、フラッシュを手動で実施するようにしています。
Flush IIS HTTP and FTP Logs to Disk
フラッシュされた内容が Get-Content の Waitでうまく取得できていないようだったので、都度取得するようにしています。
Tail した結果に対して、IP でフィルターしているので、大量のログが出力されている場合ヒットしない可能性があるのは気を付けないといけませんが、簡易確認なので。
TCP のコネクション確認は以下でできます。

while($true){cls;Get-NetTCPConnection -RemoteAddress <IP アドレス> -ErrorAction SilentlyContinue; Start-Sleep -Seconds 5}

net stat -ano あたりの結果を使用することもできますが、TCP コネクションのコマンドレットが使える環境なのでコマンドレットで。
これで、IIS にアクセスがあったかと、コネクションの確立を度のポートで実施しようとしているかを確認することができるのかなと。
SCCM のデータベースから、DB的にクライアントを登録されているかは以下で確認できそうです。
ビューの情報については System Center 2012 Configuration Manager での SQL Server のビュー?で公開されています。
最初のクエリを実行することで、コレクション単位でのコンピューターの認識状態が確認できますので、後はそこで取得したマシン ID (リソース ID) を使用して、基本的な情報が取得されているかを確認しています。

DECLARE @machineid int = 16777233
select * from CollectionMembers
select SiteID,MachineID,ArchitectureKey,Name,Domain,SMSID,SiteCode,IsDirect,IsAssigned,IsClient,Priority from CollectionMembers
select  all SMS_R_System.ItemKey,SMS_R_System.SMS_Unique_Identifier0,SMS_R_System.SMS_UUID_Change_Date0,SMS_R_System.Previous_SMS_UUID0,
SMS_R_System.Active0,SMS_R_System.AD_Site_Name0,SMS_R_System.AlwaysInternet0,
SMS_R_System.AMTFullVersion0,SMS_R_System.AMTStatus0,SMS_R_System.Build01,SMS_R_System.Client0,SMS_R_System.AgentEdition0,
SMS_R_System.Client_Type0,SMS_R_System.Client_Version0,SMS_R_System.CPUType0,SMS_R_System.Creation_Date0,SMS_R_System.Decommissioned0,
SMS_R_System.DeviceOwner0,SMS_R_System.Distinguished_Name0,SMS_R_System.EAS_DeviceID,SMS_R_System.Full_Domain_Name0,SMS_R_System.Hardware_ID0,
SMS_R_System.InternetEnabled0,SMS_R_System.Is_AOAC_Capable0,SMS_R_System.Is_MachineChanges_Persisted0,SMS_R_System.IsClientAMT30Compatible0,
SMS_R_System.Is_Assigned_To_User0,SMS_R_System.Is_Portable_Operating_System0,
SMS_R_System.Is_Virtual_Machine0,SMS_R_System.Is_Write_Filter_Capable0,SMS_R_System.Last_Logon_Timestamp0,
SMS_R_System.User_Domain0,SMS_R_System.User_Name0,SMS_R_System.ManagementAuthority,SMS_R_System.MDMStatus,
SMS_R_System.MDMDeviceCategoryID0,SMS_R_System.Name0,SMS_R_System.Netbios_Name0,SMS_R_System.Object_GUID0,SMS_R_System.Obsolete0,
SMS_R_System.Operating_System_Name_and0,SMS_R_System.OSBranch01,SMS_R_System.Primary_Group_ID0,SMS_R_System.PublisherDeviceID,
SMS_R_System.Resource_Domain_OR_Workgr0,SMS_R_System.ItemKey,
SMS_R_System.DiscArchKey,SMS_R_System.SerialNumber,SMS_R_System.SID0,SMS_R_System.SMBIOS_GUID0,SMS_R_System.SMS_Unique_Identifier0,
SMS_R_System.Community_Name0,SMS_R_System.SuppressAutoProvision0,SMS_R_System.Unknown0,SMS_R_System.User_Account_Control0,
SMS_R_System.Virtual_Machine_Host_Name0,SMS_R_System.Virtual_Machine_Type0,SMS_R_System.WipeStatus0,SMS_R_System.WTGUniqueKey
from vSMS_R_System AS SMS_R_System
where SMS_R_System.ItemKey = @machineid
SELECT X.Id, X.Type, X.Value
FROM (
SELECT DiscItemAgents.ItemKey As Id, 0 As Type, AgentName As Value FROM Agents JOIN DiscItemAgents ON Agents.AgentID=DiscItemAgents.AgentID
UNION ALL  SELECT DiscItemAgents.ItemKey As Id, 1 As Type, AgentSite As Value FROM DiscItemAgents
UNION ALL  SELECT DiscItemAgents.ItemKey As Id, 2 As Type, convert(nchar(8),AgentTime,112)+convert(nchar(13),AgentTime,114) As Value FROM DiscItemAgents
UNION ALL  SELECT System_IP_Address_ARR.ItemKey As Id, 3 As Type, IP_Addresses0 As Value FROM System_IP_Address_ARR
UNION ALL  SELECT System_IP_Subnets_ARR.ItemKey As Id, 4 As Type, IP_Subnets0 As Value FROM System_IP_Subnets_ARR
UNION ALL  SELECT System_IPv6_Addre_ARR.ItemKey As Id, 5 As Type, IPv6_Addresses0 As Value FROM System_IPv6_Addre_ARR
UNION ALL  SELECT System_IPv6_Prefi_ARR.ItemKey As Id, 6 As Type, IPv6_Prefixes0 As Value FROM System_IPv6_Prefi_ARR
UNION ALL  SELECT System_MAC_Addres_ARR.ItemKey As Id, 7 As Type, MAC_Addresses0 As Value FROM System_MAC_Addres_ARR
UNION ALL  SELECT System_Resource_N_ARR.ItemKey As Id, 8 As Type, Resource_Names0 As Value FROM System_Resource_N_ARR
UNION ALL  SELECT System_System_Group_Name_ARR.ItemKey As Id, 9 As Type, System_Group_Name0 As Value FROM System_System_Group_Name_ARR
UNION ALL  SELECT System_SMS_Assign_ARR.ItemKey As Id, 10 As Type, SMS_Assigned_Sites0 As Value FROM System_SMS_Assign_ARR
UNION ALL  SELECT System_SMS_Instal_ARR.ItemKey As Id, 11 As Type, SMS_Installed_Sites0 As Value FROM System_SMS_Instal_ARR
UNION ALL  SELECT System_SMS_Resident_ARR.ItemKey As Id, 12 As Type, SMS_Resident_Sites0 As Value FROM System_SMS_Resident_ARR
UNION ALL  SELECT System_System_Container_Name_A.ItemKey As Id, 13 As Type, System_Container_Name0 As Value FROM System_System_Container_Name_A
UNION ALL  SELECT System_System_Group_Name_F_ARR.ItemKey As Id, 14 As Type, System_Group_Name0 As Value FROM System_System_Group_Name_F_ARR
UNION ALL  SELECT System_System_OU_Name_ARR.ItemKey As Id, 15 As Type, System_OU_Name0 As Value FROM System_System_OU_Name_ARR
UNION ALL  SELECT System_System_Rol_ARR.ItemKey As Id, 16 As Type, System_Roles0 As Value FROM System_System_Rol_ARR) As X
WHERE X.Id = @machineid
select
SiteID,MachineID,Name,SMSID, AgentTime,EvalTime,HealthCheckDescription,
sd.Obsolete0,sd.Active0,SiteCode,
IsDirect,IsAssigned,Domain,IsClient,ArchitectureKey,Priority
from CollectionMembers c
left join
DiscItemAgents d
on
d.ItemKey = c.MachineID
left join
System_DISC sd
on
sd.ItemKey = c.MachineID
left join
v_CH_EvalResults vce
on
vce.ResourceID = c.MachineID
where SiteID NOT IN ('SMS00001', 'SMS000US')
order by c.Name,c.SiteID,c.SMSID,d.AgentTime DESC
Share

Written by Masayuki.Ozawa

1月 20th, 2017 at 8:18 am

Posted in System Center

Tagged with

Leave a Reply