public static void EnumerateSync(CimSession cimSession, string cimNamespace, string cimClassName) { // Check Arguments if (cimNamespace == null) { throw new ArgumentNullException("cimNamespace"); } if (cimClassName == null) { throw new ArgumentNullException("cimClassName"); } try { IEnumerable <CimInstance> enumeratedInstances = cimSession.EnumerateInstances(cimNamespace, cimClassName); foreach (CimInstance cimInstance in enumeratedInstances) { // Use the instance PrintCimInstance(cimInstance); } } catch (CimException ex) { PrintCimException(ex); } catch (Exception ex) { Console.WriteLine(ex.Message); } }
/// <summary> /// Creates a new collection of <see cref="ComponentDescriptor"/> that describes /// the physical hard drives installed in the system associated <see cref="CimSession"/>. /// </summary> /// <param name="session"> /// A <see cref="CimSession session"/> used to access system details. /// </param> /// <returns> /// The resulting collection of hard drive <see cref="ComponentDescriptor"/>s found. /// </returns> private static IEnumerable <ComponentDescriptor> GetHardDrives(CimSession session) { // Validate parameters. if (session == null) { throw new ArgumentNullException("session"); } IEnumerable <CimInstance> hddDetails = session.EnumerateInstances(@"root\cimv2", "Win32_DiskDrive"); var results = hddDetails .Where(item => Convert.ToString(item.CimInstanceProperties["Name"].Value, CultureInfo.InvariantCulture).Contains("PHYSICAL")) .Select(item => new ComponentDescriptor() { Name = String.Join(" ", Convert.ToString(item.CimInstanceProperties["Model"].Value, CultureInfo.InvariantCulture), Convert.ToInt32((((Convert.ToInt64(item.CimInstanceProperties["Size"].Value) / 1024f) / 1024f) / 1024f)) + "Gb"), Manufacturer = Convert.ToString(item.CimInstanceProperties["Manufacturer"].Value, CultureInfo.InvariantCulture).Trim(), Serial = Convert.ToString(item.CimInstanceProperties["SerialNumber"].Value, CultureInfo.InvariantCulture).Trim(), Model = Convert.ToString(item.CimInstanceProperties["Model"].Value, CultureInfo.InvariantCulture).Trim(), Category = DescriptorCategories.HardDrive }); return(results.ToList()); }
public static void AddMembershipRule(string hostName, string userName, string passWord, string domain, string cmSite, string collectionId) { CimSession session = Connect(hostName, userName, passWord, domain); // Get All Collection // Add Exception catching chain var collectionInstance = session.EnumerateInstances($"root\\sms\\site_{cmSite}", "SMS_Collection") .Where(i => i.CimInstanceProperties["CollectionId"].Value.ToString().Contains(collectionId)).ToList(); if (!collectionInstance.Any()) { return; } var ruleInstance = new CimInstance(session.GetClass($"root\\sms\\site_{cmSite}", "SMS_CollectionRuleDirect")); ruleInstance.CimInstanceProperties["RuleName"].Value = ""; ruleInstance.CimInstanceProperties["ResourceClassName"].Value = "SMS_R_System"; ruleInstance.CimInstanceProperties["ResourceID"].Value = 1; var parameters = new CimMethodParametersCollection { CimMethodParameter.Create("collectionRule", ruleInstance, CimType.Instance, 0) }; CimMethodResult result = session.InvokeMethod(collectionInstance.FirstOrDefault(), "AddMembershipRule", parameters); }
private void UpdateCimInstance() { try { var enumerateInstances = _cimSession.EnumerateInstances(@"root\standardcimv2\embedded", "UWF_Filter"); foreach (var enumerateInstance in enumerateInstances) { _cimInstance = enumerateInstance; break; } } catch (Exception e) { if (e.HResult == -2146233088) { try { _cimSession.GetClass(@"root\standardcimv2\embedded", "UWF_Filter"); _noPermission = true; return; } catch (Exception) { } Console.Error.WriteLine(e); Logger.Error(e); MessageBox.Show("Cannot find Unified Write Filter.\nPlease install Unified Write Filter then run this program again.", AppInfo.AppName, MessageBoxButtons.OK, MessageBoxIcon.Error); Environment.Exit(1); } else { Console.Error.WriteLine(e); Logger.Fatal(e); } } }
/// <summary> /// Creates a new collection of <see cref="ComponentDescriptor"/> that describes /// the physical memory modules installed in the system associated <see cref="CimSession"/>. /// </summary> /// <param name="session"> /// A <see cref="CimSession session"/> used to access system details. /// </param> /// <returns> /// The resulting collection of memory modules <see cref="ComponentDescriptor"/>s found. /// </returns> private static IEnumerable <ComponentDescriptor> GetMemory(CimSession session) { // Validate parameters. if (session == null) { throw new ArgumentNullException("session"); } IEnumerable <CimInstance> memoryDetails = session.EnumerateInstances(@"root\cimv2", "Win32_PhysicalMemory"); var results = memoryDetails .Select(item => new ComponentDescriptor() { Serial = Convert.ToString(item.CimInstanceProperties["SerialNumber"].Value, CultureInfo.InvariantCulture), Name = String.Join(" ", Convert.ToString(item.CimInstanceProperties["Manufacturer"].Value, CultureInfo.InvariantCulture).Trim(), Convert.ToString(item.CimInstanceProperties["PartNumber"].Value, CultureInfo.InvariantCulture).Trim(), Convert.ToString(item.CimInstanceProperties["ConfiguredClockSpeed"].Value, CultureInfo.InvariantCulture).Trim(), (((Convert.ToInt64(item.CimInstanceProperties["Capacity"].Value) / 1024f) / 1024f) / 1024f) + "Gb"), Manufacturer = Convert.ToString(item.CimInstanceProperties["Manufacturer"].Value, CultureInfo.InvariantCulture), Model = Convert.ToString(item.CimInstanceProperties["PartNumber"].Value, CultureInfo.InvariantCulture).Trim(), Category = DescriptorCategories.Memory }); return(results.ToList()); }
/// <summary> /// This is the base function for getting CIM EnumeratedInstances /// </summary> public IEnumerable <CimInstance> GetEnumeratedInstances(string className, string cimNamespace, out CimInstance firstInstance) { CimSession mySession = CimSession.Create(LocalComputer); IEnumerable <CimInstance> instances = mySession.EnumerateInstances(namespaceName: cimNamespace, className: className); firstInstance = instances.FirstOrDefault(); return(instances); }
public static IEnumerable <CimInstance> GetAllCollections(string hostName, string userName, string passWord, string domain, string cmSite, string collectionId) { CimSession session = Connect(hostName, userName, passWord, domain); // Get All Collection // Add Exception catching chain return(session.EnumerateInstances($"root\\sms\\site_{cmSite}", "SMS_Collection") .Where(i => i.CimInstanceProperties["CollectionId"].Value.ToString().Contains(collectionId)).ToList()); }
public void GetBIOSVersion() { CimSession cimSession = CimSession.Create("localhost"); IEnumerable <CimInstance> enumeratedInstances = cimSession.EnumerateInstances(@"root\cimv2", "Win32_BIOS"); var cimInstance = enumeratedInstances.FirstOrDefault(); var biosVersion = cimInstance?.CimInstanceProperties["SMBIOSBIOSVersion"].Value.ToString(); Console.WriteLine("{0}", biosVersion); }
/// <summary> /// Creates a new <see cref="AssetDescriptor"/> that describes the specified /// network host-name. /// </summary> /// <param name="hostName"> /// The network host-name that should be described. /// </param> /// <returns> /// The resulting <see cref="AssetDescriptor"/> if successful. /// </returns> public static AssetDescriptor Create(string hostName) { CimSessionOptions sessionOptions = new CimSessionOptions() { }; sessionOptions.AddDestinationCredentials(new CimCredential(ImpersonatedAuthenticationMechanism.Negotiate)); CimSession session = CimSession.Create(hostName, sessionOptions); CimInstance computerDetails = session.EnumerateInstances(@"root\cimv2", "Win32_ComputerSystem").FirstOrDefault(); CimInstance productDetails = session.EnumerateInstances(@"root\cimv2", "Win32_ComputerSystemProduct").FirstOrDefault(); return(new AssetDescriptor() { Serial = Convert.ToString(productDetails.CimInstanceProperties["IdentifyingNumber"].Value, CultureInfo.InvariantCulture), Name = Convert.ToString(computerDetails.CimInstanceProperties["Name"].Value, CultureInfo.InvariantCulture), Manufacturer = Convert.ToString(computerDetails.CimInstanceProperties["Manufacturer"].Value, CultureInfo.InvariantCulture), Model = String.Join(" ", computerDetails.CimInstanceProperties["Manufacturer"].Value, computerDetails.CimInstanceProperties["Model"].Value), ModelNumber = Convert.ToString(computerDetails.CimInstanceProperties["Model"].Value, CultureInfo.InvariantCulture), Category = pcSystemTypeExMap[Convert.ToInt32(computerDetails.CimInstanceProperties["PCSystemTypeEx"].Value, CultureInfo.InvariantCulture)] }); }
public void GetAssetTagAndExpressServiceCode() { CimSession cimSession = CimSession.Create("localhost"); IEnumerable <CimInstance> enumeratedInstances = cimSession.EnumerateInstances(@"root\cimv2", "Win32_SystemEnclosure"); var cimInstance = enumeratedInstances.FirstOrDefault(); var assetTag = cimInstance?.CimInstanceProperties["SerialNumber"].Value.ToString(); Console.WriteLine("{0}", assetTag); var expressCode = BN2N(assetTag, 36); Console.WriteLine("{0}", expressCode); }
public static void showDriversList4() { try { CimSession cimSession = CimSession.Create("localhost"); IEnumerable <CimInstance> enumeratedInstances = cimSession.EnumerateInstances(@"root\cimv2", "win32_PNPDeviceProperty"); foreach (CimInstance cimInstance in enumeratedInstances) { Console.WriteLine("{0}", cimInstance.CimInstanceProperties["Name"].Value.ToString()); } } catch (CimException ex) { Console.WriteLine(ex.Message); } }
internal static List <CimInstance> GetAndPrintInstances(CimSession cimSession, string cimNamespace, string cimClassName) { IEnumerable <CimInstance> enumeratedInstances; try { enumeratedInstances = cimSession.EnumerateInstances(cimNamespace, cimClassName); } catch (CimException exception) { Console.WriteLine("Unable to get instances of class {0} in namespace {1}", cimClassName, cimNamespace); PrintCimException(exception); return(null); } List <CimInstance> list = new List <CimInstance>(); int count = 0; foreach (var enumeratedInstance in enumeratedInstances) { list.Add(enumeratedInstance); bool bSingleton = true; var keyProperties = from p in enumeratedInstance.CimInstanceProperties where ((p.Flags & CimFlags.Key) == CimFlags.Key) select p; foreach (var enumeratedProperty in keyProperties) { if (bSingleton) { bSingleton = false; } Console.WriteLine( "Id: {0} : Name: {1}, Type: {2}, Value: {3}", count, enumeratedProperty.Name, enumeratedProperty.CimType, enumeratedProperty.Value); } if (bSingleton) { Console.WriteLine("Id: {0}", count); } count++; } return(list); }
private static IEnumerable <CimModule> GetCimModules(CimSession cimSession, Uri resourceUri, string cimNamespace, string moduleNamePattern, bool onlyManifests, Cmdlet cmdlet, CancellationToken cancellationToken) { Func <CimModule, CimModule> selector = null; WildcardPattern wildcardPattern = new WildcardPattern(moduleNamePattern, WildcardOptions.CultureInvariant | WildcardOptions.IgnoreCase); string optionValue = WildcardPatternToDosWildcardParser.Parse(wildcardPattern); CimOperationOptions options = new CimOperationOptions { CancellationToken = new CancellationToken?(cancellationToken) }; options.SetCustomOption("PS_ModuleNamePattern", optionValue, false); if (resourceUri != null) { options.ResourceUri = resourceUri; } if (string.IsNullOrEmpty(cimNamespace) && (resourceUri == null)) { cimNamespace = "root/Microsoft/Windows/Powershellv3"; } IEnumerable <CimModule> source = from cimInstance in cimSession.EnumerateInstances(cimNamespace, "PS_Module", options) select new CimModule(cimInstance) into cimModule where wildcardPattern.IsMatch(cimModule.ModuleName) select cimModule; if (!onlyManifests) { if (selector == null) { selector = delegate(CimModule cimModule) { cimModule.FetchAllModuleFiles(cimSession, cimNamespace, options); return(cimModule); }; } source = source.Select <CimModule, CimModule>(selector); } return(EnumerateWithCatch <CimModule>(source, delegate(Exception exception) { ErrorRecord errorRecord = GetErrorRecordForRemoteDiscoveryProvider(exception); if (!cmdlet.MyInvocation.ExpectingInput && (((-1 != errorRecord.FullyQualifiedErrorId.IndexOf("DiscoveryProviderNotFound", StringComparison.OrdinalIgnoreCase)) || cancellationToken.IsCancellationRequested) || ((exception is OperationCanceledException) || !cimSession.TestConnection()))) { cmdlet.ThrowTerminatingError(errorRecord); } cmdlet.WriteError(errorRecord); })); }
static void Main() { string Namespace = @"root\cimv2"; string ComputerName = "127.0.0.1"; string ClassName = "Win32_Process"; DComSessionOptions DComOptions = new DComSessionOptions(); DComOptions.Impersonation = ImpersonationType.Impersonate; CimSession Session = CimSession.Create(ComputerName, DComOptions); IEnumerable <CimInstance> processes = Session.EnumerateInstances(Namespace, ClassName); foreach (CimInstance process in processes) { Console.WriteLine("{0} {1} {2} {3}", process.CimInstanceProperties["Name"], process.CimInstanceProperties["ParentProcessId"], process.CimInstanceProperties["ProcessId"], process.CimInstanceProperties["CommandLine"]); } Console.ReadLine(); }
private void UpdateCimInstance() { try { var enumerateInstances = _cimSession.EnumerateInstances(@"root\cimv2", "Win32_OperatingSystem"); foreach (var enumerateInstance in enumerateInstances) { _cimInstance = enumerateInstance; break; } } catch (Exception e) { if (e.HResult == -2146233088) { Console.Error.WriteLine(e); Logger.Error(e); } else { Console.Error.WriteLine(e); Logger.Fatal(e); } } }
/// <summary> /// Creates a new collection of <see cref="ComponentDescriptor"/> that describes /// the physical processors installed in the system associated <see cref="CimSession"/>. /// </summary> /// <param name="session"> /// A <see cref="CimSession session"/> used to access system details. /// </param> /// <returns> /// The resulting collection of processors <see cref="ComponentDescriptor"/>s found. /// </returns> private static IEnumerable <ComponentDescriptor> GetProcessors(CimSession session) { // Validate parameters. if (session == null) { throw new ArgumentNullException("session"); } IEnumerable <CimInstance> processorDetails = session.EnumerateInstances(@"root\cimv2", "Win32_Processor"); var results = processorDetails .Where(item => Convert.ToString(item.CimInstanceProperties["ProcessorType"].Value, CultureInfo.InvariantCulture).Contains("3")) .Select(item => new ComponentDescriptor() { Serial = Convert.ToString(item.CimInstanceProperties["ProcessorId"].Value, CultureInfo.InvariantCulture), Name = Convert.ToString(item.CimInstanceProperties["Name"].Value, CultureInfo.InvariantCulture), Manufacturer = Convert.ToString(item.CimInstanceProperties["Manufacturer"].Value, CultureInfo.InvariantCulture), Model = Convert.ToString(item.CimInstanceProperties["Name"].Value, CultureInfo.InvariantCulture), Category = DescriptorCategories.Processor }); return(results.ToList()); }
private static IEnumerable <CimModule> GetCimModules( CimSession cimSession, Uri resourceUri, string cimNamespace, string moduleNamePattern, bool onlyManifests, Cmdlet cmdlet, CancellationToken cancellationToken) { Dbg.Assert(cimSession != null, "Caller should verify cimSession != null"); Dbg.Assert(moduleNamePattern != null, "Caller should verify that moduleNamePattern != null"); const WildcardOptions wildcardOptions = WildcardOptions.IgnoreCase | WildcardOptions.CultureInvariant; var wildcardPattern = WildcardPattern.Get(moduleNamePattern, wildcardOptions); string dosWildcard = WildcardPatternToDosWildcardParser.Parse(wildcardPattern); var options = new CimOperationOptions { CancellationToken = cancellationToken }; options.SetCustomOption("PS_ModuleNamePattern", dosWildcard, mustComply: false); if (resourceUri != null) { options.ResourceUri = resourceUri; } if (string.IsNullOrEmpty(cimNamespace) && (resourceUri == null)) { cimNamespace = DiscoveryProviderNamespace; } // TODO/FIXME: ETW for method invocation IEnumerable <CimInstance> syncResults = cimSession.EnumerateInstances( cimNamespace, DiscoveryProviderModuleClass, options); // TODO/FIXME: ETW for method results IEnumerable <CimModule> cimModules = syncResults .Select(cimInstance => new CimModule(cimInstance)) .Where(cimModule => wildcardPattern.IsMatch(cimModule.ModuleName)); if (!onlyManifests) { cimModules = cimModules.Select( delegate(CimModule cimModule) { cimModule.FetchAllModuleFiles(cimSession, cimNamespace, options); return(cimModule); }); } return(EnumerateWithCatch( cimModules, delegate(Exception exception) { ErrorRecord errorRecord = GetErrorRecordForRemoteDiscoveryProvider(exception); if (!cmdlet.MyInvocation.ExpectingInput) { if (((-1) != errorRecord.FullyQualifiedErrorId.IndexOf(DiscoveryProviderNotFoundErrorId, StringComparison.OrdinalIgnoreCase)) || (cancellationToken.IsCancellationRequested || (exception is OperationCanceledException)) || (!cimSession.TestConnection())) { cmdlet.ThrowTerminatingError(errorRecord); } } cmdlet.WriteError(errorRecord); })); }