@@ -125,6 +125,40 @@ private void FormatUILimits(NtJob job)
125125 WriteObject ( string . Empty ) ;
126126 }
127127
128+ private void FormatSilo ( NtJob job )
129+ {
130+ var basic_info = job . QuerySiloBasicInformation ( false ) ;
131+ if ( ! basic_info . IsSuccess )
132+ return ;
133+ WriteObject ( "[Silo]" ) ;
134+ WriteObject ( $ "Silo ID : { basic_info . Result . SiloId } ") ;
135+ WriteObject ( $ "Silo Parent ID: { basic_info . Result . SiloParentId } ") ;
136+ WriteObject ( $ "Process Count : { basic_info . Result . NumberOfProcesses } ") ;
137+ WriteObject ( string . Empty ) ;
138+ if ( ! basic_info . Result . IsInServerSilo )
139+ return ;
140+ var server_info = job . QueryServerSiloBasicInformation ( false ) ;
141+ if ( ! server_info . IsSuccess )
142+ return ;
143+ WriteObject ( "[Server Silo]" ) ;
144+ WriteObject ( $ "Session ID : { server_info . Result . ServiceSessionId } ") ;
145+ WriteObject ( $ "Exit Status : { server_info . Result . ExitStatus } ") ;
146+ WriteObject ( $ "State : { server_info . Result . State } ") ;
147+ WriteObject ( $ "Downlevel : { server_info . Result . IsDownlevelContainer } ") ;
148+ WriteObject ( string . Empty ) ;
149+ var user_data = job . QuerySiloUserSharedData ( false ) ;
150+ if ( ! user_data . IsSuccess )
151+ return ;
152+ WriteObject ( $ "Console ID : { user_data . Result . ActiveConsoleId } ") ;
153+ WriteObject ( $ "Foreground PID: { user_data . Result . ConsoleSessionForegroundProcessId } ") ;
154+ WriteObject ( $ "Service SID : { user_data . Result . ServiceSessionId } ") ;
155+ WriteObject ( $ "User SID : { user_data . Result . SharedUserSessionId } ") ;
156+ WriteObject ( $ "System Root : { user_data . Result . NtSystemRoot } ") ;
157+ WriteObject ( $ "NT Product : { user_data . Result . NtProductType } ") ;
158+ WriteObject ( $ "Multisession : { user_data . Result . IsMultiSessionSku } ") ;
159+ WriteObject ( string . Empty ) ;
160+ }
161+
128162 private void FormatJob ( NtJob job )
129163 {
130164 if ( Filter . HasFlag ( JobFormatFilter . BasicInfo ) )
@@ -143,6 +177,10 @@ private void FormatJob(NtJob job)
143177 {
144178 FormatUILimits ( job ) ;
145179 }
180+ if ( Filter . HasFlag ( JobFormatFilter . Silo ) )
181+ {
182+ FormatSilo ( job ) ;
183+ }
146184 }
147185
148186 private void FormatJobs ( IEnumerable < NtJob > jobs )
0 commit comments