Hardware Inventory Report through Powershell

Hi Guys,
I have a custom report within SCCM, which gather information per device such as: Device Name, Operating System, Number of Cores, Logical Processors, SQL Version. This works fine.
I know a lot of this information actually gets stored in WMI on the SCCM server. Is there a particular WMI Namespace/Class from which i can retrieve the above details via powershell? I know of the ClassName: SMS_CombinedDeviceResources, which gives me Operating
System information per device but nothing else.
Is it actually possible to retrieve such info from WMI in SCCM 2012? If it is then please point in the direction of classes to query for the above information. I am also going through: https://msdn.microsoft.com/en-us/library/hh948405.aspx to find the same
information.
Thank You

SQL isnt bad, you can look online to get sample queries and work from there. You basically pick your view to pull from, choose your columns and then join and limit that as you need to. 
Here is a quick example to get the data you asked for:
select *
from v_GS_PC_BIOS
It will return all columns, but you can limit those down by typing them after your select clause instead of *.
Daniel Ratliff | http://www.PotentEngineer.com |
@PotentEngineer

Similar Messages

  • SCCM 2012 - Custom Hardware Inventory Report

    Hi All
    I am looking for a step-by-step on how to build a custom hardware inventory report in SCCM 2012 that is similar to the default Hardware-09A report but with a few added fields.
    The fields I am looking to add are 
    Current logged on user
    Monitor make
    Monitor Model
    Monitor Serial
    Also, if I right click and select Edit, the report view does not open to view the SQL statements.
    Any assistance is appreciated
    Thanks

    and is there a solution for the other points I made?
    Monitor make
    Monitor Model
    Monitor Serial

  • Hardware inventory reports by scom

    Is there a way to get managed servers hardware inventory list by scom? 

    Hi,
    SCCM is more suitable for your requirement. Here is a similar thread for your reference:
    Software License/ inventory report from SCOM                                 
    http://social.technet.microsoft.com/Forums/en-US/b109919e-8212-45df-880c-6b1917d7733c/software-license-inventory-report-from-scom?forum=operationsmanagerreporting
    Regards, Yan Li

  • Sccm 2007 Hardware inventory report

    Dear Exprt,
    How do i ensure SCCM client has seccessfully send H/W inventory report to MP with out any issue and when.
    i have look the (InventoryAgent.log) and it did writen (Inventory: Successfully sent report. Destination:mp:MP_HinvEndpoint) but nothing update on server.
    [email protected]

    Use this blog post to find out where HW stops working.
    http://be.enhansoft.com/post/2013/07/25/Troubleshooting-Inventory-Flow.aspx
    Yes it is written for CM12 but it is still the same process as CM07.
    http://www.enhansoft.com/

  • RME Hardware Inventory Report gets Error: Report Could Not be Found

    LMS 3.2
    RME 4.3.0
    When running Inventory Hardware report I select all devices and it shows the correct number of devices selected
    However, the report is missing all routers, and I get the error message Report could not be found.

    Can someone tell me how to open this as a SUPPORT CASE that someone will actually help solve? 
    Sorry to say but I don't find these forums of much use.

  • Deploying custom report for custom hardware inventory data.

    Hi!
    I want do the following:
    1) Extend Hardware Inventory using my own *.mof file. Like,
    #pragma namespace ("\\\\.\\root\\cimv2\\SMS")
    [ SMS_Report (TRUE),
    SMS_Group_Name ("My Inventory"),
    SMS_Class_ID ("CUSTOM|My_Inventory|4.0") ]
    class My_Inventory : SMS_Class_Template
    [SMS_Report(TRUE)] string SerialNumber;
    [SMS_Report(TRUE)] string SomeData;
    2) Extend Reporting system with my own report that will use data from custom hardware inventory. For example, joins inventoried data with SCCM resources.
    3) Deploy 1) and 2) programmatically to any sccm installation. So, report should not be linked to concrete data source or report server url.
    If you know the tools that may help me, it will be very helpful! Many thanks!

    You should ask the .rdl part from the SQL Reporting services forums, you should get better answers from there, because this isn't purely a ConfigMgr issue.
    http://social.msdn.microsoft.com/Forums/sqlserver/en-US/home?forum=sqlreportingservices

  • Custom Reporting on Imported Hardware Inventory set classes for USB Super Speed driver

    I am trying to create a report with report builder 3.0 to pull data on a USB Super Speed driver under
    ClassContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Class{36fc9e60-c465-11cf-8056-444553540000}")
    I tried following the article
    http://blogs.technet.com/b/configmgr_geek_speak/archive/2013/11/10/inventorying-and-reporting-network-adapter-driver-details-and-how-to-report-only-the-wireless-type-in-configuration-manager-2012.aspx and changed a few of the Class descriptions and cannot
    get any data in the report. 
    I imported this into the Hardware Inventory set classes:
    #pragma namespace ("\\\\.\\root\\cimv2\\sms")
    [ SMS_Report (TRUE),
    SMS_Group_Name ("USB"),
    SMS_Class_ID ("MICROSOFT|USB|1.0"),
    Namespace ("\\\\\\\\localhost\\\\root\\\\cimv2") ]
    class Win32Reg_USB : SMS_Class_Template
    [SMS_Report (TRUE), key ]
    string Index;
    [SMS_Report (TRUE) ]
    string DriverDesc;
    [SMS_Report (TRUE) ]
    string DriverVersion;
    [SMS_Report (TRUE) ]
    string DriverDate;
    [SMS_Report (TRUE) ]
    string ProviderName;
    Under the Configuration.mof file I am not sure what to change in order to report on this.  Any help appreciated.  We are looking for all of the USB super speed driver details.
    Thanks,
    Brit

    have you looked at V_GS_system_Device if your device info available or not ? Use the below SQL query to list all system devices on your clients. 
    SELECT DISTINCT name0 FROM v_GS_SYSTEM_DEVICES 
    GROUP BY name0
    Eswar Koneti | Configmgr Blog: www.eskonr.com | Linkedin: Eswar Koneti
    | Twitter: eskonr

  • Hardware inventory not reflecting in reports in SCCM 2012 SP1

    Hi,
    I am using SCCM 2012 SP1. During hardware inventory my client sending logs to MP server(i checked in InventoryAgent.log).
    From server end its also showing successful in logs (MP_Hinv.log). But when i m using resource explorer by clicking on a particular device its not giving information about inventory. Its giving only three option (Kindly refer snapshot).
    Kindly suggest .
    Regards
    Manish

    We're just not wanting to lead anyone else astray into thinking that this really is the solution if they were to run into the same scenario. We're all very happy that you have things working now, but were just trying to really understand how it got fixed
    so that others who do come across this thread would see the real answer. But if all you changed was the boundary group, so be it.
    Again, we're all glad you are working now.
    Wally Mead

  • Corrupted Hardware Inventory Classes

    I discovered this issue through another thread. Its now occurred in my environment on 3 occasions. Frustration is setting in, as we usually don't realize hardware inventory is failing until a week or more has passed. Is this a known bug? I'm debating on
    opening a case with MS but perhaps there is a better reporting method available.
    Problem:
    For whatever reason the defined hardware inventory classes in my workstation client policy get corrupted, breaking hardware and software inventory. When I open the defined hardware inventory classes in the console I receive the following:
    Error Text:
    ConfigMgr Error Object:
    instance of SMS_ExtendedStatus
    Description = "CSspInventoryReport::GetRealInstance: Failed to get item from database";
    ErrorCode = 2151811598;
    File = "e:\\qfe\\nts\\sms\\siteserver\\sdk_provider\\smsprov\\sspinventoryreport.cpp";
    Line = 627;
    Operation = "GetObject";
    ParameterInfo = "SMS_InventoryReport.InventoryReportID=\"{a8bfc190-b4a6-47c0-be52-abc1f634563c}\"";
    ProviderName = "ExtnProv";
    StatusCode = 2147749890;
    Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine.WqlQueryException
    The SMS Provider reported an error.
    Stack Trace:
    at Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine.WqlConnectionManager.GetInstance(String objectPath)
    at Microsoft.ConfigurationManagement.AdminConsole.Features.Common.ViewModelBase.GetInstance(String objectPath)
    at Microsoft.ConfigurationManagement.AdminConsole.ClientAgentSettings.HardwareInventoryClassesViewModel.InitializeInventoryReport(String inventoryReportID)
    at Microsoft.ConfigurationManagement.AdminConsole.ClientAgentSettings.HardwareInventoryClassesViewModel.InitializeInventoryClasses()
    System.Management.ManagementException
    Not found
    Stack Trace:
    at Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine.WqlConnectionManager.GetInstance(String objectPath)
    at Microsoft.ConfigurationManagement.AdminConsole.Features.Common.ViewModelBase.GetInstance(String objectPath)
    at Microsoft.ConfigurationManagement.AdminConsole.ClientAgentSettings.HardwareInventoryClassesViewModel.InitializeInventoryReport(String inventoryReportID)
    at Microsoft.ConfigurationManagement.AdminConsole.ClientAgentSettings.HardwareInventoryClassesViewModel.InitializeInventoryClasses()

     
    Go read dataldr.log, perhaps there is a clue there: 
    http://myitforum.com/cs2/blogs/skissinger/archive/2011/08/03/configmgr2012beta2-hardware-inventory-set-classes-does-not-load.aspx
    Another potential thing... if someone/somehow changed configuration.mof, your backups are here:  Your Server installed location\data\hinvarchive  .  You may want to save off whatever is in there to a
    safe location elsewhere before you start troubleshooting--it may be as simply as restoring one of the archived configuration.mof files back into inboxes\clifiles.src\hinv --but don't just "do that"... read logs, etc.
    Standardize. Simplify. Automate.

  • FYI: Testing Active Directory Replication Latency/Convergence Through PowerShell (Update 2)

    see:
    (2014-02-01) Testing Active Directory Replication Latency/Convergence Through PowerShell (Update
    2)
    Jorge de Almeida Pinto [MVP-DS] | Principal Consultant | BLOG: http://jorgequestforknowledge.wordpress.com/

    Might that link has been been broken.Here is the link
    http://jorgequestforknowledge.wordpress.com/2014/02/01/testing-active-directory-replication-latencyconvergence-through-powershell-update-2/
    Nice Jorge. Thanks for sharing.
    Regards~Biswajit
    Disclaimer: This posting is provided & with no warranties or guarantees and confers no rights.
    MCP 2003,MCSA 2003, MCSA:M 2003, CCNA, MCTS, Enterprise Admin
    MY BLOG
    Domain Controllers inventory-Quest Powershell
    Generate Report for Bulk Servers-LastBootUpTime,SerialNumber,InstallDate
    Generate a Report for installed Hotfix for Bulk Servers

  • Config Manager Agent - after Hardware Inventory High CPU Usage with WMIPRSVE and very fast empty Battery

    Hi there,
    since a few days there is on some machines (40-60) a high cpu usage on one core (quad core cpu machines) with the WMIPRSVE.EXE if the HARDWARE INVENTORY CYCLE started.
    i try out some tests, read some forum articles and troubleshooting the WMI management but a real problem i doesn´t see.
    in some articles i read that hardware inventory runs about minutes up to more hours but some machines runs longer, someone more as 1 day.
    here an example of mine PC:
    at 8:07 i started Hardware Inventory Cycle, in the InventoryAgent.log i can see that some Collection Namespace are captured.
    after a few minutes there stopped and does nothing round about 5.9 hours or better, after 21436.097 Seconds.
    For any hints i am grateful. :)
    Inventory: *********************** Start of message processing. ***********************
    InventoryAgent 18.03.2015 08:09:56
    11088 (0x2B50)
    Inventory: Message type is InventoryAction InventoryAgent
    18.03.2015 08:09:56 11088 (0x2B50)
    Inventory: Temp directory = C:\WINDOWS\CCM\Inventory\Temp\
    InventoryAgent 18.03.2015 08:09:56
    11088 (0x2B50)
    Inventory: Clearing old collected files. InventoryAgent
    18.03.2015 08:09:56 11088 (0x2B50)
    Inventory: Opening store for action {00000000-0000-0000-0000-000000000001} ...
    InventoryAgent 18.03.2015 08:09:56
    11088 (0x2B50)
    CInvState::VerifyInventoryVersionNumber: Mismatch found for '{00000000-0000-0000-0000-000000000001}': 4.2 vs. 0.0
    InventoryAgent 18.03.2015 08:09:56
    11088 (0x2B50)
    Inventory: Version number mismatch; will do a Full report.
    InventoryAgent 18.03.2015 08:09:56
    11088 (0x2B50)
    Inventory: Action=Hardware, ReportType=ReSync, MajorVersion=5, MinorVersion=0
    InventoryAgent 18.03.2015 08:09:56
    11088 (0x2B50)
    Inventory: Initialization completed in 0.141 seconds
    InventoryAgent 18.03.2015 08:09:56
    11088 (0x2B50)
    Collection: Namespace = \\localhost\root\Microsoft\appvirt\client; Query = SELECT __CLASS, __PATH, __RELPATH, CachedLaunchSize, CachedPercentage, CachedSize, LaunchSize, Name, PackageGUID, TotalSize, Version, VersionGUID FROM Package; Timeout = 600 secs.
    InventoryAgent 18.03.2015 08:09:56
    7836 (0x1E9C)
    Failed to get IWbemService Ptr for \\localhost\root\vm\VirtualServer Namespace: 8004100E
    InventoryAgent 18.03.2015 08:10:02
    7836 (0x1E9C)
    Failed to enumerate instances of VirtualMachine: 8004100E
    InventoryAgent 18.03.2015 08:10:02
    7836 (0x1E9C)
    Collection: Namespace = \\.\root\cimv2\sms; Query = SELECT __CLASS, __PATH, __RELPATH, AddressWidth, BrandID, CPUHash, CPUKey, DataWidth, DeviceID, Family, Is64Bit, IsHyperthreadCapable, IsMobile, IsTrustedExecutionCapable, IsVitualizationCapable, Manufacturer,
    MaxClockSpeed, Name, NormSpeed, NumberOfCores, NumberOfLogicalProcessors, PCache, ProcessorId, ProcessorType, Revision, SocketDesignation, Status, SystemName, Version FROM SMS_Processor; Timeout = 600 secs.
    InventoryAgent 18.03.2015 08:10:02
    7836 (0x1E9C)
    Collection: Namespace = \\.\root\CCM\powermanagementagent; Query = SELECT __CLASS, __PATH, __RELPATH, Requester, RequesterInfo, RequesterType, RequestType, Time, UnknownRequester FROM CCM_PwrMgmtLastSuspendError; Timeout = 600 secs.
    InventoryAgent 18.03.2015 08:10:03
    7836 (0x1E9C)
    Collection: Namespace = \\.\root\cimv2; Query = SELECT __CLASS, __PATH, __RELPATH, Availability, Description, DeviceID, Manufacturer, Name, Status FROM Win32_IDEController; Timeout = 600 secs.
    InventoryAgent 18.03.2015 08:10:03
    7836 (0x1E9C)
    Collection: Namespace = \\.\root\cimv2\sms; Query = SELECT __CLASS, __PATH, __RELPATH, BinFileVersion, BinProductVersion, Description, ExecutableName, FilePropertiesHash, FilePropertiesHashEx, FileSize, FileVersion, HasPatchAdded, InstalledFilePath, IsSystemFile,
    IsVitalFile, Language, Product, ProductCode, ProductVersion, Publisher FROM SMS_InstalledExecutable; Timeout = 600 secs.
    InventoryAgent 18.03.2015 08:10:03
    7836 (0x1E9C)
    Collection: Namespace = \\.\root\cimv2; Query = SELECT __CLASS, __PATH, __RELPATH, DefaultIPGateway, DHCPEnabled, DHCPServer, DNSDomain, DNSHostName, Index, IPAddress, IPEnabled, IPSubnet, MACAddress, ServiceName FROM Win32_NetworkAdapterConfiguration; Timeout
    = 600 secs. InventoryAgent
    18.03.2015 14:06:43 7836 (0x1E9C)
    Collection: Namespace = \\.\root\Nap; Query = SELECT __CLASS, __PATH, __RELPATH, description, fixupState, friendlyName, id, infoClsid, isBound, percentage, registrationDate, vendorName, version FROM NAP_SystemHealthAgent; Timeout = 600 secs.
    InventoryAgent 18.03.2015 14:06:43
    7836 (0x1E9C)
    Collection: Namespace = \\.\root\cimv2\sms; Query = SELECT __CLASS, __PATH, __RELPATH, AdditionalProductCodes, CompanyName, ExplorerFileName, FileDescription, FilePropertiesHash, FileSize, FileVersion, FolderPath, LastUsedTime, LastUserName, msiDisplayName,
    msiPublisher, msiVersion, OriginalFileName, ProductCode, ProductLanguage, ProductName, ProductVersion, SoftwarePropertiesHash FROM CCM_RecentlyUsedApps; Timeout = 600 secs.
    InventoryAgent 18.03.2015 14:06:43
    7836 (0x1E9C)
    Collection: Namespace = \\.\root\cimv2; Query = SELECT __CLASS, __PATH, __RELPATH, BankLabel, Capacity, Caption, CreationClassName, DataWidth, Description, DeviceLocator, FormFactor, HotSwappable, InstallDate, InterleaveDataDepth, InterleavePosition, Manufacturer,
    MemoryType, Model, Name, OtherIdentifyingInfo, PartNumber, PositionInRow, PoweredOn, Removable, Replaceable, SerialNumber, SKU, Speed, Status, Tag, TotalWidth, TypeDetail, Version FROM Win32_PhysicalMemory; Timeout = 600 secs.
    InventoryAgent 18.03.2015 14:07:02
    7836 (0x1E9C)
    Collection: Namespace = \\.\root\cimv2; Query = SELECT __CLASS, __PATH, __RELPATH, Availability, Description, DeviceID, InstallDate, Manufacturer, Name, PNPDeviceID, ProductName, Status FROM Win32_SoundDevice; Timeout = 600 secs.
    InventoryAgent 18.03.2015 14:07:02
    7836 (0x1E9C)
    Collection: Namespace = \\.\root\cimv2; Query = SELECT __CLASS, __PATH, __RELPATH, Caption, ClassGuid, ConfigManagerErrorCode, ConfigManagerUserConfig, CreationClassName, Description, DeviceID, Manufacturer, Name, PNPDeviceID, Service, Status, SystemCreationClassName,
    SystemName FROM Win32_USBDevice; Timeout = 600 secs.
    InventoryAgent 18.03.2015 14:07:12
    7836 (0x1E9C)
    Collection: 62/74 inventory data items successfully inventoried.
    InventoryAgent 18.03.2015 14:07:12
    7836 (0x1E9C)
    Inventory: Collection Task completed in 21436.097 seconds
    InventoryAgent 18.03.2015 14:07:12
    7836 (0x1E9C)
    Inventory: 12 Collection Task(s) failed. InventoryAgent
    18.03.2015 14:07:12 7836 (0x1E9C)
    Inventory: Temp report = C:\WINDOWS\CCM\Inventory\Temp\25bf01b2-12fc-4eea-8e97-a51b3c75ba50.xml
    InventoryAgent 18.03.2015 14:07:12
    7836 (0x1E9C)
    Inventory: Starting reporting task. InventoryAgent
    18.03.2015 14:07:12 7552 (0x1D80)
    Reporting: 4381 report entries created. InventoryAgent
    18.03.2015 14:07:13 7552 (0x1D80)
    Inventory: Reporting Task completed in 1.030 seconds
    InventoryAgent 18.03.2015 14:07:13
    7552 (0x1D80)
    Inventory: Successfully sent report. Destination:mp:MP_HinvEndpoint, ID: {5541A94A-BED9-4132-AE54-110CB6896F02}, Timeout: 80640 minutes MsgMode: Signed, Not Encrypted
    InventoryAgent 18.03.2015 14:07:13
    7552 (0x1D80)
    Inventory: Cycle completed in 21453.570 seconds
    InventoryAgent 18.03.2015 14:07:30
    7552 (0x1D80)
    Inventory: Action completed. InventoryAgent
    18.03.2015 14:07:30 7552 (0x1D80)
    Inventory: ************************ End of message processing. ************************
    InventoryAgent 18.03.2015 14:07:30
    7552 (0x1D80)
    Collection: Namespace = \\.\root\cimv2; Query = SELECT __CLASS, __PATH, __RELPATH, Caption, ClassGuid, ConfigManagerErrorCode, ConfigManagerUserConfig, CreationClassName, Description, DeviceID, Manufacturer, Name, PNPDeviceID, Service, Status, SystemCreationClassName,
    SystemName FROM Win32_USBDevice; Timeout = 600 secs.
    InventoryAgent 18.03.2015 14:07:12
    7836 (0x1E9C)
    Collection: 62/74 inventory data items successfully inventoried.
    InventoryAgent 18.03.2015 14:07:12
    7836 (0x1E9C)
    Inventory: Collection Task completed in 21436.097 seconds
    InventoryAgent 18.03.2015 14:07:12
    7836 (0x1E9C)
    Inventory: 12 Collection Task(s) failed. InventoryAgent
    18.03.2015 14:07:12 7836 (0x1E9C)
    Inventory: Temp report = C:\WINDOWS\CCM\Inventory\Temp\25bf01b2-12fc-4eea-8e97-a51b3c75ba50.xml
    InventoryAgent 18.03.2015 14:07:12
    7836 (0x1E9C)
    Inventory: Starting reporting task. InventoryAgent
    18.03.2015 14:07:12 7552 (0x1D80)
    Reporting: 4381 report entries created. InventoryAgent
    18.03.2015 14:07:13 7552 (0x1D80)
    Inventory: Reporting Task completed in 1.030 seconds
    InventoryAgent 18.03.2015 14:07:13
    7552 (0x1D80)
    Inventory: Successfully sent report. Destination:mp:MP_HinvEndpoint, ID: {5541A94A-BED9-4132-AE54-110CB6896F02}, Timeout: 80640 minutes MsgMode: Signed, Not Encrypted
    InventoryAgent 18.03.2015 14:07:13
    7552 (0x1D80)
    Inventory: Cycle completed in 21453.570 seconds
    InventoryAgent 18.03.2015 14:07:30
    7552 (0x1D80)
    Inventory: Action completed. InventoryAgent
    18.03.2015 14:07:30 7552 (0x1D80)
    Inventory: ************************ End of message processing. ************************
    InventoryAgent 18.03.2015 14:07:30
    7552 (0x1D80)

    InventoryAgent 18.03.2015 08:10:03
    7836 (0x1E9C)
    Collection: Namespace = \\.\root\cimv2; Query = SELECT __CLASS, __PATH, __RELPATH, DefaultIPGateway, DHCPEnabled, DHCPServer, DNSDomain, DNSHostName, Index, IPAddress, IPEnabled, IPSubnet, MACAddress, ServiceName FROM Win32_NetworkAdapterConfiguration; Timeout
    = 600 secs. InventoryAgent
    18.03.2015 14:06:43 7836 (0x1E9C)
    Collection: Namespace = \\.\root\Nap; Query = SELECT __CLASS, __PATH, __RELPATH, description, fixupState, friendlyName, id, infoClsid, isBound, percentage, registrationDate, vendorName, version FROM NAP_SystemHealthAgent; Timeout = 600 secs.
    InventoryAgent 18.03.2015 14:06:43
    7836 (0x1E9C)
    Looks like something in one or both of those wmi queries.  it goes from 8:10:03 to 14:06:43 right around there.  6 hours to do that... 
    try running those queries from wbemtest manually; and see which one just never finishes.
    Standardize. Simplify. Automate.

  • INVENTORY REPORT for customer but not consignment company owned

    HI Everyone,
    I am working on creating an inventory report and sending it out to a customer.
    We have a customer who needs to see their inventory we are going to ship. we are making materials for them on an MTS scenario based on a forecast... So the customer before placing a PO should be able to look at the inventory levels we make for them. on a daily basis.... No what I am trying to is execute a program that sends out an inventory report (the programs I am using are( RSMIPROACT and ROEMPROACT)... I try to fill in the fields and save as a variant and we run it as a background job every morning and we send out an idoc to the customer...
    The above process is a scenario that still needs to be worked on...
    THe customer should be able to look at only his stock and not any other stock....
    Now can we use a display of listing/exclusion function to send out the material stock report.... we need to send the total inv as well as the mat numbers... can we acheive it with the listing/exclusion funtion..
    Or is there a program that pulls all the data from the tables which store the customer material info record where we maintain all the materials for a customer...
    If there i a better way through which this can eb done please suggest me... thank you..
    Once again the above stock is not consignent stock... we are manufacturinng based on the forecasts and we need the customer t be able to look at the stock on a daily basis.... Please help...

    There is no report / funtionality is SAP to acheive this. Custom program is the only solution. Your logic looks ok, where there is a CMIR maintained, you may pick the total stock from table MARD put into a format/layout and transfer via idoc to the customer.
    Thanks & regards
    AHP.

  • Installing an application through Powershell with SCCM 2012 r2 is not working as expected

    I am trying to install a VOIP client using a powershell script. When I run the powershell script on the client in a administrative powershell prompt the script runs fine and it installs the application as expected. When I try to do the same thing through
    the SCCM client using an application it does not install.
    I am not a Powershell Guru so the script below is my simple understanding of installations through powershell as of this moment
    <#
    Installatiescript CIC Client SU6 32 bit (kantoor)
    Versie 1.3
    17 april 2015 - Uitbreiding logfile. Fix opschonen startmenu
    16 april 2015 - Aanpassing verwijderen oude client, logfile aanmaken in TEMP
    13 maart 2015 - Eerste versie
    #>
    # Bepaal installatiebron
    $SourceDir = "\\VSC0501\SetupShare\APP_IC_Client_SU6\x86"
    # Bepaal logvariabelen
    $logfile = "$env:TEMP\cic_su6-install.txt"
    $Logdate = get-date -f yyyyMMdd-HHmm
    # Controleer of oude CIC client aanwezig is (versie 4.04.316) en deinstalleer deze indien nodig
    If (Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{543BE3AC-426D-4FDD-8160-ECEEC2E211B6}")
    $val = (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{543BE3AC-426D-4FDD-8160-ECEEC2E211B6}").DisplayVersion
    if($val -eq "4.04.316") {
    $process = Start-Process -Filepath "msiexec.exe" -Argumentlist "/x {3F20671C-9CA2-41FA-B94A-C7C7FD95C7B4} /QN" -Wait -Passthru
    if ($process.ExitCode -eq 0) {
    Write-Output "$logdate - Client has been succesfully removed" | out-file $logfile -Append
    else {
    Write-Output "$logdate - Client cannot be succesfully removed" | out-file $logfile -Append
    exit
    $process = Start-Process -Filepath "msiexec.exe" -Argumentlist "/x {543BE3AC-426D-4FDD-8160-ECEEC2E211B6} /QN" -Wait -Passthru
    if ($process.ExitCode -eq 0) {
    Write-Output "$logdate - Client has been succesfully removed" | out-file $logfile -Append
    else {
    Write-Output "$logdate - Client cannot be succesfully removed - " $process.ExitCode | out-file $logfile -Append
    exit
    #(Start-Process -Filepath "msiexec.exe" -Argumentlist "/x {3F20671C-9CA2-41FA-B94A-C7C7FD95C7B4} /QN" -Wait -Passthru).exitcode
    #(Start-Process -Filepath "msiexec.exe" -Argumentlist "/x {543BE3AC-426D-4FDD-8160-ECEEC2E211B6} /QN" -Wait -Passthru).exitcode
    Get-ChildItem "$env:SYSTEMDRIVE\ProgramData\Microsoft\Windows\Start Menu\Programs\Abvakabo FNV\Interactive Intelligence" | Remove-Item -Recurse
    Remove-Item -Path "$env:SYSTEMDRIVE\ProgramData\Microsoft\Windows\Start Menu\Programs\Abvakabo FNV\Interactive Intelligence" -Recurse -Force
    else {
    Write-Output "$logdate - Client not present" | out-file $logfile -Append
    # Installeer CIC Client SU6
    $Arguments = "/i `"$SourceDir\ICUserApps_32bit.msi`" /l*vx `"$env:TEMP\cic_su6.log`" TRANSFORMS=`"$SourceDir\Kantoor.mst`" PATCH=`"$SourceDir\ICUserApps_32bit_SU6.msp`" ICSERVERNAME=cic.abvakabofnv.local /QN /norestart"
    $process = Start-Process -Filepath "msiexec.exe" -Argumentlist "$Arguments" -Wait -Passthru
    if ($process.ExitCode -eq 0) {
    Write-Output "$logdate - CIC Client SU6 (kantoor) has been succesfully installed" | out-file $logfile -Append
    else {
    Write-Output "$logdate - CIC Client SU6 (kantoor) cannot be succesfully installed - " $process.ExitCode | out-file $logfile -Append
    exit
    # Installeer CIC Client SU6 NL Language Plugin
    $Arguments = "/i `"$SourceDir\LanguagePlugins\ICUserApps_LanguagePlugin_nl.msi`" /l*vx `"$env:TEMP\cic_su6_nl.log`" PATCH=`"$SourceDir\LanguagePlugins\ICUserApps_LanguagePlugin_nl_SU6.msp`" /QN /norestart"
    $process = Start-Process -Filepath "msiexec.exe" -Argumentlist "$Arguments" -Wait -Passthru
    if ($process.ExitCode -eq 0) {
    Write-Output "$logdate - CIC Client SU6 Languagepack NL has been succesfully installed" | out-file $logfile -Append
    else {
    Write-Output "$logdate - CIC Client SU6 Languagepack NL cannot be succesfully installed - " $process.ExitCode | out-file $logfile -Append
    exit
    # Opschonen Desktop en Start menu
    Remove-Item -Path "$env:PUBLIC\Desktop\Interaction Fax.lnk"
    Remove-Item -Path "$env:PUBLIC\Desktop\Interaction Voicemail Player.lnk"
    Move-Item -Path "$env:SYSTEMDRIVE\ProgramData\Microsoft\Windows\Start Menu\Programs\Interactive Intelligence" "$env:SYSTEMDRIVE\ProgramData\Microsoft\Windows\Start Menu\Programs\Abvakabo FNV" -force
    The uninstall part works fine, but the installation (2 parts) do not. As I mentioned before... when I run the script manually it all works fine.
    The application is installed using a script. The commandline is
    powershell.exe -excecutionpolicy bypass -file Install_UserApps_SU6_Kantoor.ps1
    The application runs hidden in the context of the system wether or not the user is logged on. The maximum allowed run time is sufficient (30 minutes).
    There is no installation log from the msiexec command so the line were the application should be installed is not executed at all. There is also no mention in my own little log ($logfile = "$env:TEMP\cic_su6-install.txt") mentioning the result
    of the installation.
    The appenforce.log says...
    +++ Starting Install enforcement for App DT "Interaction Client - Standaard SU6" ApplicationDeliveryType - ScopeId_2EC1E80A-D73E-4152-A94F-546E7827CCB6/DeploymentType_720b132a-5626-4055-9555-18b4775724c4, Revision - 7, ContentPath - C:\WINDOWS\ccmcache\13, Execution Context - System AppEnforce 17-4-2015 16:31:05 640 (0x0280)
    A user is logged on to the system. AppEnforce 17-4-2015 16:31:05 640 (0x0280)
    Performing detection of app deployment type Interaction Client - Standaard SU6(ScopeId_2EC1E80A-D73E-4152-A94F-546E7827CCB6/DeploymentType_720b132a-5626-4055-9555-18b4775724c4, revision 7) for system. AppEnforce 17-4-2015 16:31:05 640 (0x0280)
    +++ Application not discovered. [AppDT Id: ScopeId_2EC1E80A-D73E-4152-A94F-546E7827CCB6/DeploymentType_720b132a-5626-4055-9555-18b4775724c4, Revision: 7] AppEnforce 17-4-2015 16:31:05 640 (0x0280)
    App enforcement environment:
    Context: Machine
    Command line: Powershell.exe -executionpolicy bypass -file Install_UserApps_SU6_Kantoor.ps1
    Allow user interaction: No
    UI mode: 0
    User token: null
    Session Id: 1
    Content path: C:\WINDOWS\ccmcache\13
    Working directory: AppEnforce 17-4-2015 16:31:05 640 (0x0280)
    Prepared working directory: C:\WINDOWS\ccmcache\13 AppEnforce 17-4-2015 16:31:05 640 (0x0280)
    Found executable file Powershell.exe with complete path C:\WINDOWS\System32\WindowsPowerShell\v1.0\Powershell.exe AppEnforce 17-4-2015 16:31:05 640 (0x0280)
    Prepared command line: "C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe" -executionpolicy bypass -file Install_UserApps_SU6_Kantoor.ps1 AppEnforce 17-4-2015 16:31:05 640 (0x0280)
    Executing Command line: "C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe" -executionpolicy bypass -file Install_UserApps_SU6_Kantoor.ps1 with user context AppEnforce 17-4-2015 16:31:05 640 (0x0280)
    Working directory C:\WINDOWS\ccmcache\13 AppEnforce 17-4-2015 16:31:05 640 (0x0280)
    Post install behavior is BasedOnExitCode AppEnforce 17-4-2015 16:31:05 640 (0x0280)
    Waiting for process 2916 to finish. Timeout = 30 minutes. AppEnforce 17-4-2015 16:31:05 640 (0x0280)
    Process 2916 terminated with exitcode: 0 AppEnforce 17-4-2015 16:31:08 640 (0x0280)
    Looking for exit code 0 in exit codes table... AppEnforce 17-4-2015 16:31:08 640 (0x0280)
    Matched exit code 0 to a Success entry in exit codes table. AppEnforce 17-4-2015 16:31:08 640 (0x0280)
    Performing detection of app deployment type Interaction Client - Standaard SU6(ScopeId_2EC1E80A-D73E-4152-A94F-546E7827CCB6/DeploymentType_720b132a-5626-4055-9555-18b4775724c4, revision 7) for system. AppEnforce 17-4-2015 16:31:08 640 (0x0280)
    +++ Application not discovered. [AppDT Id: ScopeId_2EC1E80A-D73E-4152-A94F-546E7827CCB6/DeploymentType_720b132a-5626-4055-9555-18b4775724c4, Revision: 7] AppEnforce 17-4-2015 16:31:08 640 (0x0280)
    ++++++ App enforcement completed (3 seconds) for App DT "Interaction Client - Standaard SU6" [ScopeId_2EC1E80A-D73E-4152-A94F-546E7827CCB6/DeploymentType_720b132a-5626-4055-9555-18b4775724c4], Revision: 7, User SID: ] ++++++ AppEnforce 17-4-2015 16:31:08 640 (0x0280)
    I'm thinking of going back to a batchfile because that seems to do the job, but Powershell is much more powerfull.
    Anybody got any answers on what is going wrong are some suggestions for a better script? 

    You have a number of problems here.
    1.  As mentioned you have UNC paths ... which means there's no reason for a package at all.  f you want SCCM to use the package it just downloaded you should use $PSScriptRoot (PS equivelant of %~0dp).  If the client is using v2 or earlier
    ... fix that quick by starting your script with:
    If (!$PSScriptRoot) {
    $PSSCriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent
    Now you can call your install easy enough with a $PSScriptRoot+"\app.exe"
    2.  your discovery is failing after install.  This will always make SCCM report an installation failed even when the exit code is 0.  You can see it at the end of your log:
    Matched exit code 0 to a Success entry in exit codes table. AppEnforce 17-4-2015 16:31:08 640 (0x0280)
    Performing detection of app deployment type Interaction Client - Standaard SU6(ScopeId_2EC1E80A-D73E-4152-A94F-546E7827CCB6/DeploymentType_720b132a-5626-4055-9555-18b4775724c4, revision 7) for system. AppEnforce 17-4-2015 16:31:08 640 (0x0280)
    +++ Application not discovered. [AppDT Id: ScopeId_2EC1E80A-D73E-4152-A94F-546E7827CCB6/DeploymentType_720b132a-5626-4055-9555-18b4775724c4, Revision: 7] AppEnforce 17-4-2015 16:31:08 640 (0x0280)
    So either your installation script is spitting out a exit code 0 regardless of the event OR your detection is wrong.
    EDIT:  you have exit statemetns after failed installs ... but no exit code (simply exit).  Change those to exit 1 so sccm knows it's a failed exit and not just a generic exit.  That's probably your problem (unc can't be reached as system, you're
    getting an exit  .... not defining exit 1).
    Something like this (warning this is a fast change so review it):
    <#
    Installatiescript CIC Client SU6 32 bit (kantoor)
    Versie 1.3
    17 april 2015 - Uitbreiding logfile. Fix opschonen startmenu
    16 april 2015 - Aanpassing verwijderen oude client, logfile aanmaken in TEMP
    13 maart 2015 - Eerste versie
    #>
    If (!$PSScriptRoot) {
    $PSSCriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent
    # Bepaal installatiebron
    #$SourceDir = "\\VSC0501\SetupShare\APP_IC_Client_SU6\x86"
    $SourceDir = $PSScriptRoot
    # Bepaal logvariabelen
    $logfile = "$env:TEMP\cic_su6-install.txt"
    $Logdate = get-date -f yyyyMMdd-HHmm
    # Controleer of oude CIC client aanwezig is (versie 4.04.316) en deinstalleer deze indien nodig
    If (Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{543BE3AC-426D-4FDD-8160-ECEEC2E211B6}")
    $val = (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{543BE3AC-426D-4FDD-8160-ECEEC2E211B6}").DisplayVersion
    if($val -eq "4.04.316") {
    $process = Start-Process -Filepath "msiexec.exe" -Argumentlist "/x {3F20671C-9CA2-41FA-B94A-C7C7FD95C7B4} /QN" -Wait -Passthru
    if ($process.ExitCode -eq 0) {
    Write-Output "$logdate - Client has been succesfully removed" | out-file $logfile -Append
    else {
    Write-Output "$logdate - Client cannot be succesfully removed" | out-file $logfile -Append
    exit 1
    $process = Start-Process -Filepath "msiexec.exe" -Argumentlist "/x {543BE3AC-426D-4FDD-8160-ECEEC2E211B6} /QN" -Wait -Passthru
    if ($process.ExitCode -eq 0) {
    Write-Output "$logdate - Client has been succesfully removed" | out-file $logfile -Append
    else {
    Write-Output "$logdate - Client cannot be succesfully removed - " $process.ExitCode | out-file $logfile -Append
    exit 1
    #(Start-Process -Filepath "msiexec.exe" -Argumentlist "/x {3F20671C-9CA2-41FA-B94A-C7C7FD95C7B4} /QN" -Wait -Passthru).exitcode
    #(Start-Process -Filepath "msiexec.exe" -Argumentlist "/x {543BE3AC-426D-4FDD-8160-ECEEC2E211B6} /QN" -Wait -Passthru).exitcode
    Get-ChildItem "$env:SYSTEMDRIVE\ProgramData\Microsoft\Windows\Start Menu\Programs\Abvakabo FNV\Interactive Intelligence" | Remove-Item -Recurse
    Remove-Item -Path "$env:SYSTEMDRIVE\ProgramData\Microsoft\Windows\Start Menu\Programs\Abvakabo FNV\Interactive Intelligence" -Recurse -Force
    else {
    Write-Output "$logdate - Client not present" | out-file $logfile -Append
    # Installeer CIC Client SU6
    $Arguments = "/i `"$SourceDir\ICUserApps_32bit.msi`" /l*vx `"$env:TEMP\cic_su6.log`" TRANSFORMS=`"$SourceDir\Kantoor.mst`" PATCH=`"$SourceDir\ICUserApps_32bit_SU6.msp`" ICSERVERNAME=cic.abvakabofnv.local /QN /norestart"
    $process = Start-Process -Filepath "msiexec.exe" -Argumentlist "$Arguments" -Wait -Passthru
    if ($process.ExitCode -eq 0) {
    Write-Output "$logdate - CIC Client SU6 (kantoor) has been succesfully installed" | out-file $logfile -Append
    else {
    Write-Output "$logdate - CIC Client SU6 (kantoor) cannot be succesfully installed - " $process.ExitCode | out-file $logfile -Append
    exit 1
    # Installeer CIC Client SU6 NL Language Plugin
    $Arguments = "/i `"$SourceDir\LanguagePlugins\ICUserApps_LanguagePlugin_nl.msi`" /l*vx `"$env:TEMP\cic_su6_nl.log`" PATCH=`"$SourceDir\LanguagePlugins\ICUserApps_LanguagePlugin_nl_SU6.msp`" /QN /norestart"
    $process = Start-Process -Filepath "msiexec.exe" -Argumentlist "$Arguments" -Wait -Passthru
    if ($process.ExitCode -eq 0) {
    Write-Output "$logdate - CIC Client SU6 Languagepack NL has been succesfully installed" | out-file $logfile -Append
    else {
    Write-Output "$logdate - CIC Client SU6 Languagepack NL cannot be succesfully installed - " $process.ExitCode | out-file $logfile -Append
    exit 1
    # Opschonen Desktop en Start menu
    Remove-Item -Path "$env:PUBLIC\Desktop\Interaction Fax.lnk"
    Remove-Item -Path "$env:PUBLIC\Desktop\Interaction Voicemail Player.lnk"
    Move-Item -Path "$env:SYSTEMDRIVE\ProgramData\Microsoft\Windows\Start Menu\Programs\Interactive Intelligence" "$env:SYSTEMDRIVE\ProgramData\Microsoft\Windows\Start Menu\Programs\Abvakabo FNV" -force
    Exit 0

  • Some Hardware inventory values get translated/localized to local language of the workstation

    Hi all,
    I am doing hardware inventory in SCCM 2012 R2, I have included the OSArchitecture (actually displayed as "OS Architecture") property for the "Operating System" class (the Win32_OperatingSystem WMI class actually). The data gather correctly
    - from Windows 6.x+ while there is nothing from Windows XP/2003, which is correct according to documentation of the WMI class. That is OK. So inventory works fine.
    My problem is different - for some workstations, the value is localized. Normally, there should be just "64-bit" or "32-bit", but on some of my Czech workstations, the value is "64bitovy" or "32bitovy". This indicates
    the WMI values are obtained as localized.
    Though, if I try to query WMI on the problematic workstation from PowerShell, the value is in English, so the WMI can produce the English value as well, if necessary.
    How can I switch SCCM Hardware Inventory to gather non-localized WMI values from all workstations?
    thank you!

    hello, yes, the caption is also localized.
    it appears like the Display Language of the Operating System account makes the difference. If I install English language pack for OS (not SCCM client) on the client machine and switch the Display Language for the operating system profile, the hardware
    inventory changes to display English 64-bit value.
    It works exactly the same when querying Win32_OperatingSystem from PowerShell. If the user has his display language set as Czech, powershell returns value of "64bitovy", if the user changes his display language to English, PowerShell displays the value
    as "64-bit".
    So as the SCCM client runs under System account, it just queries Win32_OperatingSystem and returns what it gets to SCCM server.
    One solution would be to change system display langauge to English on all workstations, but this seems like impossible.
    Isn't there a method by which I would make all my SCCM clients query in English locale instead?

  • Urgent: regarding physical inventory report display

    hi,
    i had made a report in which i have to display the physical inventory report details in which details about the material is to be given.
    I want to check the details which are present in the tcode MI07 . Can anybody tell me any tcode in which i can see the details of mi07 tcode(including the reason of it).

    Greetings,
    It might shed some light to read about the display in your portable computer: http://en.wikipedia.org/wiki/LCD
    LCDs are primarily plastic panels with various layers inside.  Pressure applied to those panels can cause them to crack, leaking the liquid crystal components about.  Pressure could be heavy books in a bag pushing against the screen, heavy cat sitting on a closed lid, dog, other animal, someone slamming the lid, child running through the room, etc.  This applies to any LCD whether it be in a computer or in a Television (don't press too hard on your TV screen!!).
    Displays don't exhibit the type of damage you indicate by themselves.  A single pixel might go dead in an LCD but zig zag lines indicates cracking of the layers inside the panels themselves.  Something from the outside world made an impact on the display resulting in the damage you see.  You may not have been the one pressing hard on it and you may not have seen it happen, but something happened.
    The 1 year limited warranty and AppleCare protection plan offer coverage for component failures, not damage.
    Coverage for damage would be provided by something along the lines of insurances (home owners, renters, etc.)  If you purchased this computer with a Credit Card you may wish to contact your Credit Card company.  Many cards have included insurance for purchases you make so even if an item is damage during your use of it, they will cover it.
    Best of luck.

Maybe you are looking for