Wednesday, 15 April 2015

Task Sequence Failed with the Error Code 0x80070002

Troubleshooting
Task Sequence Failed with the Error Code 0x80070002 – we see this error usually during the operating system deployment using SCCM 2012 R2. When you deploy the task sequence to a collection and when you boot the computer from the network, during the step “Applying Operating System” you encounter the Error Code 0x80070002. In this situation what one might think would be to check SMTS.log file. I would recommend that but there is something else that you need to check first. Error code 0x80070002 in SCCM 2012 can be interpreted as a network error wherein during the OSD the necessary files are not accessible by the computer where the operating system is being deployed.
In Configuration manager 2012 we do not have an out of the box report which shows the system serial number.


Resolution
To fix the issue Error Code 0x80070002, we have to define the network access account. The Network Access account is used only for accessing the content and not for running the task sequence. This account should have the minimum appropriate permissions on operating system deployment content it needs to access. This account is important because the computer receiving the operating system does not have a security context it can use to access content on the network.

To configure the Network Access Account, open the CM2012 R2 console, click on Administration, expand Overview, expand Site Configuration, click Sites, on the top ribbon click Configure Site Components, click Software Distribution.

Or

The resolution was to change the deployment properties on the Task Sequence from "Access content directly from a distribution Point" to "Download content locally".

Or


I believe that changing the operating system package properties under Data Access to "Copy the content in this package to a package share on distribution Points" would have been the other solution to this problem.

Sunday, 12 April 2015

SCCM 2012 Reporting – Creating Custom reports using SQL Query


In Configuration manager 2012 we do not have an out of the box report which shows the system serial number.


This step by step guide will show you how to setup your custom report using existing SQL Query.
Open SCCM console and open the Monitoring > Overview > Reporting> Right click the “Reports” node and click onCreate Report.

Open SCCM console and open the Monitoring > Overview > Reporting> Right click the “Reports” node and click onCreate Report.


Click on SQL- Based Report


Click to Browse the category to save the report in 


Click OK and then Click Next till you reach  summary page and then close after the report is created.
When you finish the report the SQL Server Report Builder should now open.


We’ll start this report by creating a “Table or Matrix” so click on that icon. 
We now need to enter in a dataset for the report to use so leave the “Create a dataset” selected and click Next. 
You’ll now be prompted by a “Choose a connection to data source” page. 
Click next whilst the highlight is on the server that hosts your reporting point.

If you already see data source connection, just hit Test Connection to verify it If not, then click Browse Enter in the credentials that have access to the SCCM database and click Next.


You’ll now hit the “Design a query”  Click on Edit as Text in the top left corner.


Paste your query and hit red color Exclamation Mark just next to import

Select sys.Name0 Machine, CS.UserName0 'User Name',OS.Caption0 OS, OS.CSDVersion0 'Service Pack',CS.Manufacturer0 Manufacturer,CS.Model0 Model,BIOS.SerialNumber0 'Serial Number',RAM.Capacity0 Memory, cs.SystemType0
From v_R_System SYS
  left join v_GS_COMPUTER_SYSTEM CS on sys.Name0=cs.Name0
  left join v_GS_PC_BIOS BIOS on sys.ResourceID=bios.ResourceID
  left join v_GS_OPERATING_SYSTEM OS on sys.ResourceID=OS.ResourceID
  left join v_GS_PHYSICAL_MEMORY RAM on sys.ResourceID=ram.ResourceID
  --Where sys.Name0 = @variable
  order by sys.Name0


On the next screen, you’ll get the ability to lay out how you want your report to look. I’ve selected all the fields from available and drag it over ∑ values box


Click next on Choose the layout page


Click Next and then Finish. You should be back at the report builder screen. You can start modifying the report to look exactly how you’d like


You can always go back to the design by clicking Design if you need to make modifications or add extra information to this report like below.
On the design page if you want to put header click above the report and insert the Text Box and type the report name as you like


If you want to bring the total number of machines on this page, insert new Text box just next to the report header. Right click inside the box click Expression


Paste this query
=Count(Fields!Machine.Value, "DataSet1")
After you adjusting all the fields the way you want and when all this is done, click on Run to view the report



Click on Save icon, you should be able to see the reports under “Site – General” you should now see your new report. This should  appear in the console as well as the web reports.



Thanks this Blog for the solution: http://blogs.technet.com/b/infratalks/archive/2013/09/10/sccm-2012-reporting-get-system-serial-number-amp-create-custom-ssrs-report.aspx

Import Computer Does Not Show Up in Collection


I was recently working with another PFE with a customer that has some pretty strict requirements around OSD collections.
The customer has tiered collections that separate workstations and servers. The 3rd tier of collections (where OSD deployments  are targeted) are each limited to the appropriate All Servers or All Workstation Collection.




When the customer uses "Import Computer Object" feature to stage new devices for OSD.  The 3rd tier collection for OSD Deployment is selected.
The problem is that the object never appears in the collection.
Looking at the OSD Deployment collection membership, the object's Direct membership was added, but because of collection limiting, the object does not exist in the parent collection and thus will never appear as a member of the OSD Build collection.


So how do we solve this problem?  With more collections! We create what I have call the Funnel!


1.     Create a new collection "All Manual Machine Entry Devices"  limited to All Systems.
a.      Create a query rule those shows objects with the manual entry DDR, but only those without a heartbeat.

select
 SMS_R_SYSTEM.ResourceID
 ,SMS_R_SYSTEM.ResourceType
 ,SMS_R_SYSTEM.Name
 ,SMS_R_SYSTEM.SMSUniqueIdentifier
 ,SMS_R_SYSTEM.ResourceDomainORWorkgroup
 ,SMS_R_SYSTEM.Client
from SMS_R_System
where
SMS_R_System.AgentName = "Manual Machine Entry" and SMS_R_System.ResourceId not in (select
           SMS_R_System.ResourceId
           from  SMS_R_System
           where SMS_R_System.AgentName = "Heartbeat Discovery")



2.     Create an include rule on both the All Workstation and All Server Tier 2 collections for the All OSD collection. 


This allows the imported devices to be able to flow down through the limited collections to the 3rd tier collection.  Once the system sends its first heartbeat, it will be removed from the All OSD collection and then flow down into tier 2/3 as appropriate


Thanks: http://blogs.technet.com/b/cmpfekevin/archive/2013/11/21/import-computer-does-not-show-up-in-collection.aspx

SCCM 2012 - Software Center Unable to Download Software 0x87D00607

Whilst performing some application deployment testing to some computers on a new subnet, I came across an error in the Software Center stating that it was Unable to download the software and returned the following useful error:



"The software change returned error code 0x87D00607 (-2016410105)"


   

  
Looking further into the issue I found that this new subnet was not configured within the SCCM boundaries and hence not in a boundary group.

If the network your client is in, does not exist as a boundary and within a boundary group SCCM will not offer any software deployments to that client because it is outside it's scope of management you have defined.



Boundaries are automatically created (if you told SCCM to) from Active Directory sites and the subnets within those sites when you run your discovery methods.



In my case a subnet and AD site did not exist to be automatically created. If it did then I would still need to add it to a boundary group.





1. To resolve this an IP address range needs to be created within:



Adminstration --> Hierarchy Configuration --> Boundaries

 


  
2. Then add that newly created IP address range boundary to your boundary group.


 

  

3. Try installing you software again via the Software Center and it will now succeed.


Thanks: https://www.vmadmin.co.uk/microsoft/64-mssystemcenter/350-sccm2012errorboundary87d00607