private List<string> SetUpComputerInfoUsingWsman(IEnumerable<string> computerNames, CancellationToken token)
		{
			bool flag = false;
			List<string> strs = new List<string>();
			CimOperationOptions cimOperationOption = new CimOperationOptions();
			cimOperationOption.Timeout = TimeSpan.FromMilliseconds(2000);
			cimOperationOption.CancellationToken = new CancellationToken?(token);
			CimOperationOptions cimOperationOption1 = cimOperationOption;
			foreach (string computerName in computerNames)
			{
				try
				{
					CimSession cimSession = RemoteDiscoveryHelper.CreateCimSession(computerName, this.Credential, this.WsmanAuthentication, token, this);
					using (cimSession)
					{
						IEnumerable<CimInstance> cimInstances = cimSession.QueryInstances("root/cimv2", "WQL", "Select * from Win32_OperatingSystem", cimOperationOption1);
						foreach (CimInstance cimInstance in cimInstances)
						{
							flag = true;
							if (this._computerInfos.ContainsKey(computerName))
							{
								continue;
							}
							RestartComputerCommand.ComputerInfo computerInfo = new RestartComputerCommand.ComputerInfo();
							computerInfo.LastBootUpTime = cimInstance.CimInstanceProperties["LastBootUpTime"].Value.ToString();
							computerInfo.RebootComplete = false;
							RestartComputerCommand.ComputerInfo computerInfo1 = computerInfo;
							this._computerInfos.Add(computerName, computerInfo1);
							strs.Add(computerName);
						}
						if (!flag)
						{
							string str = StringUtil.Format(ComputerResources.RestartComputerSkipped, computerName, ComputerResources.CannotGetOperatingSystemObject);
							ErrorRecord errorRecord = new ErrorRecord(new InvalidOperationException(str), "RestartComputerSkipped", ErrorCategory.OperationStopped, computerName);
							base.WriteError(errorRecord);
						}
					}
				}
				catch (CimException cimException1)
				{
					CimException cimException = cimException1;
					string str1 = StringUtil.Format(ComputerResources.RestartComputerSkipped, computerName, cimException.Message);
					ErrorRecord errorRecord1 = new ErrorRecord(new InvalidOperationException(str1), "RestartComputerSkipped", ErrorCategory.OperationStopped, computerName);
					base.WriteError(errorRecord1);
				}
				catch (Exception exception1)
				{
					Exception exception = exception1;
					CommandProcessorBase.CheckForSevereException(exception);
					string str2 = StringUtil.Format(ComputerResources.RestartComputerSkipped, computerName, exception.Message);
					ErrorRecord errorRecord2 = new ErrorRecord(new InvalidOperationException(str2), "RestartComputerSkipped", ErrorCategory.OperationStopped, computerName);
					base.WriteError(errorRecord2);
				}
			}
			return strs;
		}
		private List<string> SetUpComputerInfoUsingDcom(IEnumerable<string> computerNames, ConnectionOptions options)
		{
			List<string> strs = new List<string>();
			ObjectQuery objectQuery = new ObjectQuery("Select * From Win32_OperatingSystem");
			EnumerationOptions enumerationOption = new EnumerationOptions();
			enumerationOption.UseAmendedQualifiers = true;
			enumerationOption.DirectRead = true;
			EnumerationOptions enumerationOption1 = enumerationOption;
			ManagementObjectSearcher managementObjectSearcher = null;
			ManagementObjectCollection managementObjectCollections = null;
			foreach (string computerName in computerNames)
			{
				try
				{
					try
					{
						ManagementScope managementScope = new ManagementScope(ComputerWMIHelper.GetScopeString(computerName, "\\root\\cimv2"), options);
						managementObjectSearcher = new ManagementObjectSearcher(managementScope, objectQuery, enumerationOption1);
						managementObjectCollections = managementObjectSearcher.Get();
						if (managementObjectCollections.Count <= 0)
						{
							string str = StringUtil.Format(ComputerResources.RestartComputerSkipped, computerName, ComputerResources.CannotGetOperatingSystemObject);
							ErrorRecord errorRecord = new ErrorRecord(new InvalidOperationException(str), "RestartComputerSkipped", ErrorCategory.OperationStopped, computerName);
							base.WriteError(errorRecord);
						}
						else
						{
							foreach (ManagementBaseObject managementBaseObject in managementObjectCollections)
							{
								if (this._computerInfos.ContainsKey(computerName))
								{
									continue;
								}
								RestartComputerCommand.ComputerInfo computerInfo = new RestartComputerCommand.ComputerInfo();
								computerInfo.LastBootUpTime = managementBaseObject.Properties["LastBootUpTime"].Value.ToString();
								computerInfo.RebootComplete = false;
								RestartComputerCommand.ComputerInfo computerInfo1 = computerInfo;
								this._computerInfos.Add(computerName, computerInfo1);
								strs.Add(computerName);
							}
						}
					}
					catch (ManagementException managementException1)
					{
						ManagementException managementException = managementException1;
						string str1 = StringUtil.Format(ComputerResources.RestartComputerSkipped, computerName, managementException.Message);
						ErrorRecord errorRecord1 = new ErrorRecord(new InvalidOperationException(str1), "RestartComputerSkipped", ErrorCategory.OperationStopped, computerName);
						base.WriteError(errorRecord1);
					}
					catch (COMException cOMException1)
					{
						COMException cOMException = cOMException1;
						string str2 = StringUtil.Format(ComputerResources.RestartComputerSkipped, computerName, cOMException.Message);
						ErrorRecord errorRecord2 = new ErrorRecord(new InvalidOperationException(str2), "RestartComputerSkipped", ErrorCategory.OperationStopped, computerName);
						base.WriteError(errorRecord2);
					}
					catch (UnauthorizedAccessException unauthorizedAccessException1)
					{
						UnauthorizedAccessException unauthorizedAccessException = unauthorizedAccessException1;
						string str3 = StringUtil.Format(ComputerResources.RestartComputerSkipped, computerName, unauthorizedAccessException.Message);
						ErrorRecord errorRecord3 = new ErrorRecord(new InvalidOperationException(str3), "RestartComputerSkipped", ErrorCategory.OperationStopped, computerName);
						base.WriteError(errorRecord3);
					}
				}
				finally
				{
					if (managementObjectSearcher != null)
					{
						managementObjectSearcher.Dispose();
					}
					if (managementObjectCollections != null)
					{
						managementObjectCollections.Dispose();
					}
				}
			}
			return strs;
		}