/
githubmirror
/
PowerShell
Обзор
Документация
Войти
/
githubmirror
/
PowerShell
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/Microsoft.PowerShell.Commands.Management/cimSupport/cmdletization/cim/QueryJob.cs
92 строки
3 KB
xtqqczze
Seal internal types in `Microsoft.PowerShell.Commands.Management` (#25849)
22 авг 2025, 08:01
Не верифицирован
22 авг 2025, 08:01
781c9a5
Код
Авторство
О чём код?
// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. using System; using System.Globalization; using System.Text; using Microsoft.Management.Infrastructure; using Dbg = System.Management.Automation.Diagnostics; namespace Microsoft.PowerShell.Cmdletization.Cim { /// <summary> /// Job that handles executing a WQL (in the future CQL?) query on a remote CIM server. /// </summary> internal sealed class QueryInstancesJob : QueryJobBase { private readonly string _wqlQuery; private readonly bool _useEnumerateInstances; internal QueryInstancesJob(CimJobContext jobContext, CimQuery cimQuery, string wqlCondition) : base(jobContext, cimQuery) { Dbg.Assert(wqlCondition != null, "Caller should verify that wqlCondition is not null"); var wqlQueryBuilder = new StringBuilder(); wqlQueryBuilder.Append("SELECT * FROM "); wqlQueryBuilder.Append(this.JobContext.ClassName); wqlQueryBuilder.Append(' '); wqlQueryBuilder.Append(wqlCondition); _wqlQuery = wqlQueryBuilder.ToString(); if (string.IsNullOrWhiteSpace(wqlCondition)) { _useEnumerateInstances = true; } else { if (jobContext.CmdletInvocationContext.CmdletDefinitionContext.UseEnumerateInstancesInsteadOfWql) { _useEnumerateInstances = true; } } } internal override IObservable<CimInstance> GetCimOperation() { this.WriteVerboseStartOfCimOperation(); IObservable<CimInstance> observable; if (_useEnumerateInstances) { observable = this.JobContext.Session.EnumerateInstancesAsync( this.JobContext.Namespace, this.JobContext.ClassNameOrNullIfResourceUriIsUsed, this.CreateOperationOptions()); } else { observable = this.JobContext.Session.QueryInstancesAsync( this.JobContext.Namespace, "WQL", _wqlQuery, this.CreateOperationOptions()); } return observable; } internal override string Description { get { return this.FailSafeDescription; } } internal override string FailSafeDescription { get { return string.Format( CultureInfo.InvariantCulture, CmdletizationResources.CimJob_SafeQueryDescription, this.JobContext.CmdletizationClassName, this.JobContext.Session.ComputerName, _wqlQuery); } } } }