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
Thanksand 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,
Brithave 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
ManishWe'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. -
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 -
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
-
FFX file preview with Adobe Bridge
Hello all, I did post a similar thread in the Adobe Bridge Forum but I thought that possibly the AE comunity may understand my problem a little better. I wanted to begin learning After Effects CS4, unfortunately Adobe Bridge CS4 is halting my educati
-
Time Machine Picture Library size is 2GB smaller in backup than computer disc.
Time Machine Picture Library size is 2GB smaller in backup than computer disc using Cmd I (Eye, not EL-don't we all love sans serif fonts as default) for both info. Ah, this is readable at faster reading speeds. Now ( oops the return key killed the
-
These are the issues I am currently experiencing using Adobe Illustrator CS5.1 using my Mac OS X. - I am having trouble opening two files at the same time and Illustrator continually crashes because of this. - When I try to scale my artwork to a smal
-
Can't activate my fingerprint service
Can't activate my fingerprint service. "Add a fingerprint".... "Set Up Fingerprint" .....it would go straight to "FAILED"
-
Picures gone,all text format,(like in e-bay) how do I get them back
I down loaded some add on, to keep the font enlarged (after I added no squint) and the web pages are all text. The pictures and back ground are gone. My e-bay is all text....I don't like it. How do I get the normal view web pages back ?