Content Download Troubleshooting Guide for Microsoft ConfigMgr/SCCM - Learn with Patch My PC

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hello everyone uh my name is justin and this is a new series that we're doing here at patchmypc where basically as a engineering team we are going to do deep dives into various config manager and intune topics and just share that on youtube for people in the community so my name is justin founder here at patch mypc we'll have our team do some intros and then we'll jump right in so if we want to go maybe top left to right which would be jordan i don't know if you guys actually see what i'm sharing so jordan andrew cody jake david and adam will go in that order sure sounds good um i'm jordan benzing i'm an engineer here at catch my pc and i help out with support and demos as well as a lot of the reporting stuff yeah awesome i think our order that we see is different than yours so my memory's not that good i think i was next i have cody mathis an engineer here at patch mypc uh do uh some of the dev work uh kind of digging into stuff always keeping busy having fun i'm andrew jimenez i do a lot of the catalog work here at patch my pc i'm jake a support engineer over here patch my pc i do a lot of demo setups and some web-based things uh david or adam yeah i'm a david cortez and i'm a senior software engineer here at pitchman pc my name is adam cook and i'm a support engineer at patchwork pc all right awesome let's get started then um so what we're going to be looking at in this deep dive is content lookups in configuration manager so we'll basically be walking through what happens on the client side what happens on the server side when content is getting looked up so things like software updates applications and basically the flow that happens for that and how to troubleshoot that so we'll walk through about four different scenarios is what i think we have here today looking at successful lookups as well as common issues that you may have and how to troubleshoot them so that said i think we'll just jump right in cody do you want to request control so you can also take over when needed all right all right cool all right so for the first scenario what we're going to be looking at is a successful content lookup so what we've got going on uh is we have a environment that has a boundary already configured we have the client within a boundary group so things at the basic level are are kind of good to go so we have a client if i look at my client's boundary we can see that it is in fact in a boundary right so and then from the content perspective just doing a basic check here we can see that the update has been distributed to a distribution point that is within that boundary as well as applications as well so just in case we do look at an app these applications are also distributed to the boundary that that group is in as well as that distribution point within that group so the first scenario that we're going to look at is a successful content lookup and we're going to go through the flow of what happens both on the client and the server during that so this is going to be where we look pretty deep into the log files and then after the successful lookup we'll go through some common mistakes and uh issues that could happen so we also have verbose logging set that's worth mentioning so we're using the new client.newish client diagnostic feature so we're right clicking and doing enable verbose logging so you do this on the client as well as your management point so the log files for a management point are really client logs so this will put your management point role into verbose mode so we do set that as well all right so on the client side we have a couple updates and a couple apps um so let's just start with an update so this is an available update so we'll go ahead and click install and um from that side we'll start digging into the client logs to show you what actually happens when this content is being requested so go ahead and click install here okay all right so this at this point we're probably already getting the content downloaded so what we're going to do is go ahead and open up our client logs so let's just go ahead and open up one that we know is applicable and from here this will also be in a accompanying blog post so take a look at the description file because we're going to be going through a lot of different content here um so the log files that we're going to be looking at specifically will be called out in that log in in that accompanying blog post um so what i'm going to do is we're going to use the merge feature within the cm trace feature and there's about eight eight or so logs that we're merging in here so you'll you'll be able to copy this directly from the post if you did want to open all the logs that are specific to content lookups if you're just trying to reproduce scenario or you're troubleshooting so what we can see here is you know we have all these logs opened up so uh first step maybe if you want to go ahead and take over control kodi we can start diving through kind of flow this happens on the client side yeah for sure so what i'm going to do real quick is just go ahead and make this within the past couple minutes just to give us a little bit more freedom have a quick after 9 18. what are we troubleshooting you may have said it here we're not actually this is the hey it works scenario okay yeah so if we look at the update it will probably show installed now here as well so this was like a successful download it got content everything worked perfectly fine so we're going to just go through like on the client side what does that flow look like and then the next two or three scenarios we'll go through like what are common scenarios where this doesn't work right and how do we troubleshoot that as well yeah exactly so the goal here is right it's good to know what it should look like and sometimes they change the logging and configment but it does an okay job of being relatively consistent so uh let's see here we should actually see something like the client is requesting a ci model name so uh we clicked install and what we're actually gonna see is the client is you know requesting a specific object and you know specific revision and then who did the actual request so we're seeing that in the ci state store log and jake actually just made a comment this is a good point uh so you know we are doing this with patch my pc package applications and updates but these are not specific to patch my pc we leverage built-in tools and mechanisms so this is going to apply to anything that is a software update or a package or application i guess application and update not necessarily a package that would be a little different so we see that it did go ahead and get that ci model name and then from there you can start to see some of the other bits where it will check if the content is there so checking if the content is in the cache right so that just happens a little bit further down in that content access log this is the cas.log which deals with cache management so it is not in the cache and there's the specific revision number as well that dot dot and then as it continues to walk through what we're actually going to see further down is there's going to be a content location request right so this actually happens on the client the con the client uses information it knows about itself in order to make a content location request so that content location request is xml that gets sent to the management point uh and that management point then is able to really it ends up running some stored procedures in sql uh and we can go ahead and try to take a look at those here at some point uh during this and and we'll see that there's a lot of good info in here right there's the ip address subnet that it came from we can see uh some other bits and pieces like does it allow is it internet dp http smb you know these are components of a request there's also deployment flags so um all of those little like options you set when you're doing deployments those all get combined into a request you know you end up having some you're configuring options uh so those end up getting created here with this request and if we look after this gets sent we also will end up getting a let's see why do we want to look at the server side of this now yeah we should actually so so for context we just jumped over to the management point that this machine would be talking to um yeah and what's good to note uh so this is also the site server but the mp role is really the logs in the client folder in this case it's sms underscore ccm so the log we're going to care about here is mp location and if we see we actually have our scroll up just a little bit here's that request right this is that exact request that came from the client with all of that information we can see the deployment flags which then gets translated over and then you can actually see some of those stored the functions that get ran as part of the stored procedure um you know get boundary groups xml uh which it takes this data takes this xml and ends up running it so we can take a look at those later uh and then there's some other bits that do get checked um you know maybe it's checking if there's super peers or branch cache but for this right now we're kind of focusing on a client to distribution point scenario and ultimately you do get a content location reply and in this case it's working right we have a boundary we've got a healthy client we've got a distribution it's distributed correctly everything is happy so here's our client location reply which can also be seen on the client if you can spell all right request oh here it is no point looking same thing right we've got that same response back um we've got a signature file that we would expect so that's that hash which we can look at and we actually dig into hash validation later during this call as well and then once that's done we'll start to see some other bits and pieces right so like total content size uh we now have information about that package you know we've created a request and then it's gonna get passed off to data transfer service we actually want to start doing uh a request you know we're going to create some requests to send up so we've got content transfer manager that's going to pull down some of that manifest data transfer service is going to specifically tell us what's happening there we can see that this is the cab file specifically that we're interested in and then as part of that manifest we're going to see like how large the file is total content size is this much and then we're going to start seeing that notify progress as it actually downloads that file and that's going to move through a few components you know you're going to end up in cavs because it's ultimately working with the cache itself it's got to do the actual transfer and then eventually as we move through we will get a completion so right here we see we do have the item in the cache and then we see that we have it found in cache with an empty exclude list so we now have an actual location of the file we save the content id mapping so this right here is something that ends up in wmi we've got a content id mapping to this specific folder on the client cache this is that app id or update id in this case with the revision yeah and if you want to maybe take a look at the cache too we could probably look at the cap file at that point in that one folder right and this all lines up seven seven five five six you know sometimes we get rounding errors uh so there you go seven seven five five seven this is that file there's that cad file it's in this folder on the device so this is a you know successful scenario everything worked uh we should even be able to see for example if it will pass down control f the hash we are verifying uh has typo hash there we go so this is part of the catalog this is part of an update it has a content id we've got a name and then we have an expected hash and the client and windows update agent in this case are going to go ahead and validate that so that has to pass start content hashing you know and that does all get validated so you know it's good to start from what it should do and as we walk through uh we'll start to see in the failure scenarios where a file wasn't able to be found it couldn't be downloaded a file uh fail b hash matching or it wasn't even able to find content because there was no boundary so we can kind of walk through what those are going to look like cool yeah and maybe uh let's go ahead and open up sql management studio and maybe we can look at that stored procedure here for a second probably won't go too deep it's pretty complex but just to show when the management point is looking for content for a client like what does that query actually look like just so you're aware of where that happens and we'll look at that all right so back in sql management studio cody will show kind of that stored procedure that the management point would run when it's trying to find content for one of those content requests that we kind of got saul got sent up on the client side yeah so uh within the configman database which that's what we're connected to here it's just local on this server uh these stored procedures are gonna be found under the database itself programmability and then stored procedures and what i'm going to be doing here is just doing a quick filter and this is a a good quick way to find uh bits and pieces in here right so i i know i'm working with content and then ultimately i'm trying to find historic procedures that's getting action actioned here and if we look on the server we did get some of this info this is that mp location log and if we scroll up we saw some of these functions getting ran we saw some of these uh things getting run so here is actually what i want mp get content dp info mp get content ep info alright so i can go ahead and just do query window on this so the management point ends up calling in the end this stored procedure and it's going to pass in some information in order to get data back uh so some of those bits for example is going to be what we kind of saw get generated right that that client location info so we saw in the log get boundary groups xml so a client location request gets sent up right that's here that's this xml it gets passed into this function and we now populate this boundary groups info object based off that function call so that's the sort of things that end up happening right we take the data from the client we pass it up to the stored procedure and then some of that server side stuff can happen here for example determining fallback is fallback even possible so there's some other components out here where it's checking it's checking for can things actually fall back is that even an option right so down here we can start to see um other bits like we've got our kind of is it fallback dp set um is this internet what type of auth is available so the stored procedure is going to do all that heavy lifting so the client just gets back the data that it needs yeah awesome um so ultimately what gets sent back to the client would be that url that we saw that was the cab file right so if it did find a distribution point that the client was allowed to talk to whether it be in its uh boundary group or whether it be a fallback that's basically the stored procedure is what's giving us that url so the client knows where to go and download stuff so jumping into the next scenario this will be let me just log into another server so what we have going on in this scenario is going to be another common scenario where content may not work successfully and that's specifically going to be related to boundaries and boundary groups in this case so what we have we have a client so if i go ahead and look at this client we can see that it's running with an ip address that ends in 10.36 so what we did here we intentionally made our boundary group end.35 so if i look at my boundary group it's the demo2 boundary that contains that so if we actually look at this client it's not going to fall within a boundary that is within that boundary group so for example if we look at demo2 client and we look at that boundary groups tab we can see that it does not fall within there so with that said let's take a look i think we were looking at an application in this case so we've got a couple of applications we have them deployed as available and what we're going to do is go to the client side and basically try to kick that off so let's go ahead over here all right so before we actually kick off this installation one thing to call out back on my site server we did actually turn off fallback so to show you where that happened we went to the default boundary within the site or boundary group under the default behavior we did say that we don't want to allow clients to fall back to this default boundary group so by default it would be fall back and the fallback period would be if it can't find content in 120 minutes allow it to fall back to any site systems that are referenced within this boundary group so one thing to note this is not turned on so if the content isn't found for that client in a boundary group basically it should fell immediately with the way that we've configured this um so that said go ahead and jump over to the client and if you want to take over cody yeah for sure we're we're hoping hoping for failure uh it's always fun trying to recreate problems uh it's worth mentioning right we just and i were kind of scratching your head on a couple of these this one wasn't so bad but some of the later scenarios was kind of interesting like how do we how do we break this how are we going to do this let's go ahead and fire up the install on this and then uh we're just going to go ahead and open up those same set of logs let me go grab our list hmm i don't think you're in the right folder that's weird oh yeah with my bad we'll just click no on all those justin said he doesn't want to edit it so we're trying to make this as bad as possible yep [Music] there we go [Music] it's weird the uh display is like whited out until i type something or do something [Music] these are basically same exact log files for the most part that we opened for the update scenario as well yep and i just have to actually click merge this time yeah so we're going to make this list of logs available uh just because it's a good set of logs for troubleshooting this type of scenario there we go awesome so in software center we should have failure and we should have an error code and we'll see this happen in here as well so hey 939 let's go ahead and let's do that filtering again we'll grab the past couple of minutes awesome okay so we should see a very similar flow up front right so client is requesting ci we saw this in a successful scenario which makes sense uh it's good it's good that that at least where something worked checking if content checking if it's in the cache it's not in the cache and that makes sense and we would expect to see a client location request very similar bits of information yeah and right and so this is yeah and i was just going to say one thing to note out um we'll have this document in the blog post as well but one thing that you'll see is in the boundary group this one is going to be completely empty where the other one when it did the location request you know we saw info that it was in a boundary group but for this one you know you don't see that information because it's not in a boundary group so you can actually see in that lookup some of the differences between the one that worked as well as the one that didn't work you can see that here as well so we can go to that server side go to the logs and look at our underscore empty underscore location [Music] i think it's a little bit further down so that's why i think that's the one yep right exactly that's what i received from the client so now after this right it's also going to start providing a little bit more info so after that happens we should see the number of discovered gps including branch and dp multicast is zero and as well right big red flag here which is uh ironically not read is that the client is not in any boundary group and config manager's longer engine it goes dow so this right here this is uh you know it's definitely something that's worth noting and from there we should see some failures a little later in the log let's see so here's a download failed uh and then we've got thing you know compliant state message and if we can find it we should be able to find a state message body i have to search for something a little bit more specific task state maybe and then failure the delay is killing me we'll find it it's in the uh it's like ci store i think continents it was an interesting point point out is that that line of uh client not in boundary group it was in the cast log i'm pretty sure it's like content access so that means it's catalog right yeah yeah looking for that specifically yeah for sure well i cannot find this i'm trying to find so we've got a fun little bit around the state messages i wonder if we didn't grab that log now that i think about it let me see yes we did not okay there we go so right in here [Music] it's fine here i'll pause i'll pause it real quick and we can uh we can come back once we found it and we're trying to find the bit with the topic type and the ci and awesome so uh we were trying to find a particular log line here and so we neglected to add state message to our list initially so we did take note of that and uh we found it in a rollover log so the the download failure occurred and then a state message would send was sent and this is a whole topic of its own but at a high level these get sent from the client to the server and they're pretty informational uh and but at a glance it's a little confusing right topic type 1702 state id 1503 uh it doesn't say a lot but it looks kind of relevant right that's not the version of windows 10 that it's talking about it's actually pretty useful in here we have a page which we will link so this is a whole page that talks about state messaging and there's a whole section on state message 1702 which is app ci enforcement and then if we go scroll down and we find that 5003 configuration item error retreating content right so so instead of having to pass crazy strings around and then have to deal with localization or who knows what you've just got these topic types and state ids and then i think justin's actually going to kind of pull pull that up here um probably hasn't done a summarization if i had to guess so we have pulled up the deployment within the configuration manager console here and we actually can see that failed to locate content here with that error code content not found right so this matches up with that state message and if we dig into log files we can also find this exact same error itself so we can kind of follow that through from the client's failure up to the server and seeing that failed to locate content yes i think the next thing we're going to look at is basically how does fallback work so like we mentioned before we did turn off fallback which is enabled by default so usually the default fallback behavior is two hours so in generally what will happen is if fallback is enabled and the client is cannot find content within his own boundary group it basically will check and if it doesn't find it within this period which by default is two hours it would then allow it to go to a fallback distribution point so in our case we've configured our distribution point to be in the fallback so this is where you know if we come back in here again what should happen hopefully is if we go back to software center and click retry within about a minute because we did adjust it from two hours to one minute we should hopefully see this uh install successfully um which one was that 7-zip so a lot of times when you're stuck and it's saying waiting for content it's it's likely in a fallback state where it's gonna attempt to see if it can fall back to any of the other uh fallback boundary groups so a lot of times if you're stuck at waiting for content it's either just you know kind of waiting for that fallback period which is two hours by default so this is where you get stuck in that state for quite a bit at download zero and then if it's not there that's when you would get the followed message which can take a little bit so while that's running let's go ahead and go back to our log files yeah one thing that could be kind of interesting here actually would be uh see if we can find it deployment flags no okay that's interesting oh hey it's installing so it did finish falling back there we go cool so we should actually have some good info here now that's not a good thing to search on though but what we should see is kind of the same flow we did when things worked so we could see a content location reply and as part of that content location reply unless this is an old one this is an old one let's start at the bottom and then let's actually search up instead there we go so now we can actually see we've got a content location reply here and as part of that reply we can see a couple of interesting bits of information we should be able to now see some signatures the actual file name dp fall back in pt1m so this right here that's our that we just set that right we set that to one minute for dp fallback we actually see that in our content location reply uh so it could be interesting to note right if you if you say hey your downloads are taking forever you could look through some logs and see some bits and pieces like this yeah and on the server side um i don't think it's too much different so you know if we look at that location mp location i think if we do fall back you'll also see on the server side you know you can see whether or not a client's location request or you know allows fallback as well so you see that on client side and this was the same reply that actually got sent to that client as well if we go up one more this is the actual stored procedure that cody looked at and we can also see this one is allowing fallback and that's coming in from the client location request so if we look in here somewhere and there we go fallback equals one so this is the big piece here that says this client you know we now allow fallback so that's going to change the way the stored procedure works where it says okay let's see if any any of these boundary groups or dps in that boundary group have a fallback so that's really one of one of the big differences there so back to client side anything interesting in addition to that um one small piece yeah the deployment flags so uh one thing that's worth noting is that there are actually deployment flags that can be set too right so there's more to fall back than the boundaries and all that fun stuff you have to actually set it so for example on the deployment type right here allow clients to use a distribution point from the default site boundary group so if this isn't set we would have still ran into a failure and actually the deployment flags which just ends up being like a bit wise operator uh would have changed and and you will also see that change as well for updates right if you say that you can fall back to microsoft or you can fall back to the default boundary group uh or actually you don't see it in the ui anymore you used to have to enable uh peer sharing for branch cache for example you can actually still change that with powershell but that's again it's a deployment flag these are things you can change and those are just a bunch of flags that turn into an integer those get interpreted by the client to determine where can it get content or where can it request it from and one thing to note like cody said there in the deploy it's within the deployment type content tab for an application but on the software update so if you're allowing fallback on software updates it's actually configured at the deployment level of the software update group so this is where you would have the equivalent setting for software update deployments whether or not you want to allow fallback so it would have to be both at the site level as well as on the actual deployment to allow that but outside of that you know once fallback is done basically it took a minute to think and allow it to fall back but at that point it worked just fine so if you're stuck at waiting for content it's likely in a fallback state where it couldn't find the content on a boundary group the client was in and then it's just waiting until that timeout occurs before it will actually go and fall back to a boundary that has content if it's in a boundary group that allows fallback so that's going to be scenario two all right so the next scenario we're going to look at is an actual content distribution failure so it's actually pretty common where we see cases open for clients stuck downloading and it's actually either the deployment package for a software update or the content for an application is just in a failed state where it couldn't successfully distribute it to the distribution point so this will be some tips on your site server which log files would be helpful for troubleshooting this scenario so cody you want to maybe dive in and look at some of these logs yeah yeah so you can see in the console right we do have a content status failure we can view status and pull things up see that error state and in this case the error that we're seeing is that it failed to access the source directory and there could be a lot of causes for this and if we look in dist mgr so on on your site server you can check the disk mgr log and we can scroll up a bit to see some of these errors in the log and there's going to be retries right i think default it's like 100 retries or something and we can see here it's snapshotting the content so when you do a content distribution uh it takes a snapshot of the content gets the hash of all the files and says like what what's changed what do i actually need to transfer somewhere and if it can't access the source content then it can't take that snapshot it can't distribute the content because it doesn't actually know what needs to be distributed and so here you know we just edited the the apples of the the folder to kind of force this scenario but there's some other things that can kind of cause something similar uh what we sometimes see is customers will be editing something in the source content maybe they're editing like uh some xml or a config file maybe maybe they're dealing with some crazy large app and they pack up as a whim file or something right and maybe they still have that wind mounted something is ultimately locking the file so content distribution is failing like i said in our case we've kind of you know forced this failure through editing and i want to say that there's an eye here probably in the system account so you know we've very deliberately made this fail but you know there's other scenarios uh it's kind of always fun when it just randomly breaks i don't think you did system on that justin no uh creator owner let's take a look yeah so for this one specifically right i think we came in and we uh we specifically denied the the system account so if i just let's see here so that's why we're getting access denied there another one that we did is sometimes you know source folders might get renamed right so somebody came into wherever you had your source content and maybe they did you know a total file rename something like that so for that scenario it's going to be very similar right so i mean if we look in disk manager and we search for that id we can see that you know originally it was uh looking for for the folder without the rename on it and in this case you know it said hey the source directory doesn't exist right so this could be another common scenario where maybe somebody went in and maybe they renamed like a root folder where all your app content was for example so that's a big one uh so you know if you're if your clients are stuck waiting to download and not getting content you know obviously a good first check is what is the content status show are there any distribution points that are in a failed or pending state where you know they're not totally distributed out so yeah i think that i think that covers most of that piece for the kind of server-side troubleshooting for content distribution yeah and we've got one last scenario here that we want to walk through uh and that's going to be it's kind of two components but they're very similar very related so this is going to be like invalid content so kind of similar to that failed to distribute but you know we can see some interesting bits in the iis logs you can see some interesting things on the client side so in this case what we do have is again a couple of applications we've got audacity and we have 7-zip and we can see they both have failed but if we actually go look at the i guess you can click it from there we'll go look at the content status here and they both have a different reason so in this one it says that the hash of the package is invalid right so you've probably seen hash mismatches before we'll see this from the client side too and then i'll also show you how we kind of emulated this because that's always interesting and we have 7-zip and this one is complaining that the following files are missing and so what i'm going to go ahead and do is pull up a tool that is helpful in these scenarios actually probably the easiest just to go here we go tools and what we'll probably do the the content library which is what we'll hit on a little bit here this will probably end up being its own deep dive in and of itself in a future video because there are a lot of moving parts here that would be super helpful i think to cover yeah for sure so i have used a tool called the content library explorer and what we actually have here is a couple of bits of interesting information right i've got these package ids they say pending uh and and then we can actually see content versions and it's not you know it doesn't look like it should right it's grayed out it says pending it's not fully there so what we did to to break these in this scenario is within the content library i click the correct thing we did a couple things so if you go in there's a few folders so the data lib folder has some interesting info it's got all these different files and those different files uh really these are just ini files and they have size some of the package attributes and then the hash and and for one of them i want to say it might be for 7-zip it's probably this one i think it just deleted the executable or at least moved it to the desktop we can look real quick yeah 2fa8 so so this folder i just completely deleted it what this actually is is like the executable for 7-zip i want to say that or audacity yeah i think that one's audacity yep yeah yeah so it's gone the file itself is actually gone yeah it is so within that path uh if we look we can see 2f8 so so that path value there is actually where the file should be and it's not finding it it's not finding what it expected because we've deleted it and that's that file not found and we'll look at this from the client perspective in a moment as well and then also i modified a file as well if we look at the other one i guess let me grab it from here you are the package.xml4 here we go so i'm looking for i'm going to modify this one so i found the file within the datalib and now i'm going to try to find it within the file lid so it looks like if we get to 0 e5 1 this should be the file i want i think no one of these i put some bogus content here so you can modify these and then when we do a validate that validation is going to fail uh so content library corruption is kind of what we're emulating there and then if we actually look at this from the client all right we've got these two apps we'll go ahead and we'll retry them just to kind of see what these logs look like i'll do an install on this one these should both fail okay that one failed you're thinking about failing there we go okay and then let's go ahead and we'll open up that list of log files all right and what we should actually see there's going to be a couple of things that are interesting so one of them is going to be error retrieving manifest right and so this is the 404 not found so this is that file missing right so if we scroll up a little bit we can see some of these you know some of them were successful you know here's these other bits and pieces where the client was able to get some of that content uh but we can see here we actually end up with a bad request https failure 404 not found and then on a server side if we want we can actually open up the iis logs because ultimately a dp is just serving content up through iis and we can go ahead and kind of line up those two request times 10 12 and 32 seconds come here 10 12. i mean we should end up finding something yep you're on it you're on it i think oh yeah here we go so you know we've got that prop find and ultimately right we're getting a 404 not phone in the iis logs so that's kind of telling you you've got some sort of content distribution failure yeah one interesting thing maybe to point out is we can actually go in and we can look at is we can look at the where this request is coming in from so it's the sms dp package dollar right and we can see that this is in fact mapping to the three different folders for the content library so since we deleted that file live one that it was expecting which would have been the audacity exe installer that's why it's getting that 404 not found yep which is awesome lets us know exactly what's going on and then additionally what we should find see if it's mismatch yeah here we go so here's the next piece right we're doing those hash calculations because configman handles all that for you to make sure you're downloading what you think you're downloading uh but what we're actually seeing here is a nice little failure uh helps if you don't delete the seven at the end more if you type the seven at the end there we go the hash value is not correct right we force that in our scenario but this is something that we see pretty frequently on clients for various reasons this could be av this again could be corruption uh so definitely something to investigate so we've got that failure now you know for us we've identified that there's a file missing we've identified that there's a hash mismatch you know to fix those we could come to the server side we could go and kind of validate that there's no file locks so something quick you might be able to do would be to open up like computer management on a server and you can do shared folders wherever your actual share is for your content if you're trying to do content distribution you can check for open files you know maybe you've got somebody that's got a file lock that you're trying to distribute uh and then you can check your a antivirus exclusions make sure you're not messing anything up there then do your update content do your redistribution just to kind of get you back in a working state and then i guess one thing to to note on the iis revisiting those iis logs for that mismatch we still downloaded the actual file like it worked right so we still actually get there's those 404s if we match up this let's see here this is where it failed 10 12 24 yeah so if we look around the 24 mark on the server 12 24. right so in this kind of time frame we do still see these requests and part of those requests is you know hashes and bits and pieces but ultimately it's going to download successfully it's just that there's a hash mismatch that the content is not valid it's still going to get served up in this case but when that client-side hash validation happens it fails so you may not see it from the iis size as easily all right so that's the different scenarios that we wanted to cover in this deep dive uh you know it doesn't cover everyone but at least it should hopefully give you the process of you know where you're going to look if you did have errors everything that we described here should at least get you to the log files that you would need both the server and client side to understand where to look if you were having content issues outside of that we do have the accompanying blog post so check that out in the description hopefully we'll have some nice flow of everything that we went through as well as some of those log snippet lines so if you're doing like a control f and cm trace you can go through and kind of walk through the process as well as some of those common errors that you can search on we do plan to have some additional deep dives just with various topics so if you do have any topics that you think would be valuable for us to look at in the future uh please leave a comment below and if you have any questions please do the same once again thanks for watching and i hope it was helpful
Info
Channel: Patch My PC
Views: 2,643
Rating: undefined out of 5
Keywords: ConfigMgr guides, patch my pc, patchmypc, patch my pc training, sccm guides, content stuck at 0% sccm, waiting to download, waiting to download in sccm, application download issues, update download issues, update download fail sccm, app download fail sccm
Id: 3cu5_ZtTK60
Channel Id: undefined
Length: 49min 17sec (2957 seconds)
Published: Thu Apr 29 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.