Webcast: Advanced Filtering - Transcript

company JJB
JJ Bateman|Updated May 12, 2021
Advanced Filtering
Advanced Filtering
    No Data

    Thu, 3/4 • 44:19

    Lex, JJ Bateman, Jake, Jordan, Kelly Hammer

    Lex  00:00 ---  Hey everybody it's Lex from PDQ.com. we've got an exciting one. So put your seatbelts on because I know you have like ooo advanced filtering. I know you're like eehh advanced filtering. We're gonna cover variables, we're gonna cover some regex, we're gonna cover some stuff, and then we're gonna, I'm going to show you guys how to build a smart schedule. Stay with me on this. Alright. First, let's just do some basics. So we're all on the same page, how do you find data in PDQ inventory? I personally like to open the machine BugsBunny. down the left side here, these are your tables. So again, computer table houses, surprise, surprise Computer Information, right? So you get the name of the machine IP address uptime, so on and so forth. So again, when you're looking for data, if you find it here, application table, you can go build reports, and dynamic collections off that. So okay, quick, there we go. That's finding data. Now, let's go into variables because variables make you know pretty much your entire life easier. Because anytime I need to change something, instead of having 50 versions of Firefox, eight, you know, Firefox nine, Firefox 10, I can have one change of variable and it's gonna make a big difference. So what I've done is, this is how I usually go about this, I'm going to build a report, just a basic report. And I'm going to go look for machines that have the application name, and let's put the version on here. We're gonna look for VMware Tools, and I've got a bunch of, obviously, virtual machines here. And the filter we're gonna put on obviously, again, is going to be the application name containing VMware. Now I'm gonna run this, this is what kind of gave me this idea I've got, I can tell I've got more than one version of this. So I'm going to just kind of group here by application version, you'll notice I've got three versions of this. Now to make collections that are a lot like the ones that we build, we're going to use a variable to do this. And, Jordan, any thoughts? Well, I'm gonna jump into putting variables in here,

    Jordan  02:08 ---  just a lot of variables. Well, just, as far as the collections go, everything is in the table, you can find it pretty easy to find. But you also can do like custom variables, if you want where you can, if you're looking for something specific. So you can have information that might not be part of a default. Yeah.

    Lex  02:23 ---  Okay. So I'm going to do VMware VR for the version. Now, when I exit that field, or go over to put the value in, you'll notice it puts that at sign means it's a custom variable. And when you reference it, you're going to need that. Now, for the sake of this, to show this, I'm going to actually copy this middle version right here. So I'm gonna right click and copy, most people can type it. You guys have been here long enough to know, I can't. So there we go. I copied a whole bunch of stuff in there. Currently, I can't copy either. Let's try that again. I'm going to delete that because that's a lot of deleting, we can only remove so much human error. only so much human error. Is that the case there? delete that. Let's do it again. VM where, and then put it in the wrong place. We're off to a good start today. I'm just going to call it VMver. And again, I may have 

    Jake  03:21 ---  You'd be really drunk if we were playing that game right now. 

    Lex  03:24 ---   would I now? Okay, now notice, I just highlight the one this time. Oh, right click and copy, you're gonna get the computer's gonna do what you tell it to do. 

    JJ  03:33 ---  Yeah, sounds something we need to center. 

    Lex  03:36 ---  I hate you, JJ. I hate you. All right, there is let's pretend that's our current version of VMware. Now, to save a little time here, because it's I know, it's super cool to watch me type. I started this by copying one of the pre built collections. I used qGIS, because it's really simple, okay. And so all I did was you'll notice, I brought this down and I renamed it, okay, and you'll notice I left the variable in here, or the name, so let's make sure I put the VMware in this copy. And we're gonna paste that in there because it does matter what we're searching for. So they're all machines at 41 machines that have VMware Tools on it. Okay, now latest. Again, right here, I've already put the VMware for the filter, but I have not referenced that custom variable. This variable is a system variable that we maintain for you. That's that dollar sign. That's how you can tell the difference. And the great thing is I don't have to type this I can just come in here and grab VM. And you'll notice if I don't delete the one that's in there already, I have to backspace a whole bunch. I am going to copy that. Okay. And then I'm going to put it up in the description. The nice thing about this is we do expand variables in the descriptions. So if I give that and Okay, so now I should see there's my name, version number. I probably should have also replaced that right there with VMware so that we know we're not looking at qGIS.

    Jordan  05:09 ---  It's the exact same blunder I made last week, 

    Lex  05:13 ---  is it? Again, old, we're gonna do the same thing here. Again, this time, I'm gonna learn from my last mistake and do it correctly the first time. gonna delete the one that's there, I'm going to replace the variable. And there it is actually put VMware in this one. So apparently I did shoddy work early. But now, versions are lower. So I've got a couple with two versions that are lower than 11. Point. There you go. Now I just want to point this out when you're building these collections, the comparison here, when you do versions, make sure you use the version comparisons. And the reason being is you know, versions are you know, one dot, whatever dot whatever, right, and nine dot, whatever. It's a string, right. And so this is going to evaluate between the dots and stuff. So you definitely want to do version comparisons. Now the other thing is, you'll notice the recent version, not lower than in the latest reason we do that, and it's a probably a good rule of thumb. Let's say something, you've got an automated update, or you haven't turned off someone's auto update, and one of those gets updated. So it goes from version 11 to version 12. If you use equals here, version equals, it's going to disappear, you kind of lose it. So I like to use versions not lower than in my latest. That's kind of why we use them around here. Any thoughts on that?

    Jordan  06:35 ---  Just with the versions in particular, I know I start with that one a lot. But normally, it's pretty much the same until the end. So you don't have to get too complex as you might think to separate out what you're looking for.

    Lex  06:47 ---  The other thing I'm going to do to make your leisure easier, I'm going to do a new report from collection. Okay, so here is my VMware latest report, it's just got the computer name. That's all I really care about at this point. So you notice 39 machines there, I'll run this against all computers. And there we go, I've got my 39 matches. Now, assuming we'll just save this guy will save our VMware latest. Okay, the new version comes out, which is let me pull up that report we ran earlier. Okay, 11.2, point, whatever. So again, we're gonna copy and paste, I'm gonna change the version number and you'll notice the collection is going to change, the port is going to change and you'll see I've just done the minimum amount of work possible. I've been lazy, which is a good system administrator trait, right copy, I'm going to go over to my variables, I'm going to go replace that. With that there's a new version. As I close that, you'll notice this 39 is going to update to 10. VMware old goes to 31. And if I go back to that report that I left open, VMware latest, it hasn't updated yet. And the reason being is we don't update those live, you just got to rerun it. So 39. As soon as I rerun this thing, run a report again, there you go. 10 rows. So just to be where Jordan thoughts

    Jordan  08:14 ---  in the chat, Jeremy said instead of doing the copy and paste, he exports the collection that he wants to know does a find replace where He replaces the variable with a new one, and then reinforce it, which sounds like that might actually be even better. I read that it blew my mind. Thank you, Jeremy.

    Lex  08:30 ---  Thank you. You just made my life better. Less typing, copying pasting. Alright, so that's just a brief overview on variables. Okay. Did I save my note? Let's not save that report. We don't need it. Any thoughts on variables at this point? No, I think that Okay, good. Good. Now, let's talk about nested collections. And this one comes up a lot in regards to Russian before we do that, do we have any questions we should hit? Okay.

    Kelly  09:02 ---  Hey, guys, what is the best way to create a collection that filters by two different IP ranges and excludes a certain model? Thanks, Russell K.

    Lex  09:13 ---  Different IP ranges and include in excludes a certain model. He hit me hard with the good ones today. All right, so I can get the first part down that IP ranges. So again, let's go find our data. IP ranges, IP is found in the computer table under obviously IP. So we want to report or close to a collection, right? So we'll do a new dynamic collection. And we'll just call this IP range. We'll go on the computer and we'll say, go to IP address go between these starts to be Jordan.

    Jordan  09:56 ---  So while you're doing that residency in the chat that he needs to filter out servers So no silly model, but we could do it based on OS, which might be

    Lex  10:03 ---  actually, you know, it's interesting. When you do IPS, they get that dot, right. So if you do a version comparison on those, IT version not between will go version between. Okay? So we'll go or 1000. That'll work. And then we'll go between I'm hoping we got that range. IP free range. Well, we'll just go with IP on that tail. So there we go. We at least can see that do I have IP even listed here? Let's do a pull up IP. And that IP.

    Jordan  10:53 ---  Yeah, this one is?

    Jordan  10:56 ---  It's just this is not one where it's easy to keep the conversation going while you're writing.

    Lex  11:01 ---   That's true. Great. So I just put the IP address, you'll notice they are between that. Okay. And then you can add additional filters, again, look for servers, a couple of ways to go about that. I would go in and say, we'll add another computer. And we'll go look for the collection. collection is a member of Go ahead.

    Jordan  11:21 ---  He did say two IP ranges. Well, I think that's the big sticking point. So he wants to be between those two or between. I'm just not sure which the logic would be in that one to do. I guess and but

    Lex  11:33 ---  fair enough. Well, at this point, I'm doing servers in the IP range. Again, you duplicate this below. And none of them are surfers in that range. So there you go. Anywho. that eliminates that. But that's how you would go about that, again, building an additional filter to do that. Wow, we got hard early today on questions.

    Kelly  11:55 ---  all downhill from here.

    Lex  11:57 ---  Thanks.

    Jordan  11:58 ---  It's one of those sitting down to do it. Maybe not so much. But doing it live.

    Lex  12:01 ---  Yeah. pressure. Good point. Good point. All right. Hopefully I gave you enough to get you on your way. nested collections, right. All right. So this is what happens. When I'm talking to a lot of customers. They're like, hey, I need to update. And we'll say Chrome, right. But I've got three machines that have to stay a legacy version, and I don't want to update it. And I want to automate it. So a lot of the time, right? If you go into applications, Internet browsers, you can see here's Chrome Chrome old, right, we always just focus on our schedules pointing at chrome old, I'm gonna show you how to build a production version of this. that excludes some machines. So the first thing we need to build is a static collection of machines to exclude. So a new static collection, we'll call this keep chrome was called Chrome, because that's what I can spell today. And I want to look in Chrome old because we're going to grab Bugs Bunny and Conrad. So that makes sure that we can actually exclude some people that will be in there, Conrad. Okay. So Bugs Bunny and Conrad need to stay at an old version of Chrome will give that No. Okay. And there's a couple of ways to go about this. Now, I'm going to show you both. And there's pros and cons to each. So the first one, we are going to say, we'll call this production chrome one. And then we'll do production prod chrome one. So we're going to look in a member of collection name contains. And I'm going to copy because that's what I'm good at, chrome old. So there's the name, copy that and paste that in here. And actually, I need to put some sub filters in it, boom, we'll do two of those, move this guy up and move this guy down. And a sub but this one is we are going to add the filter member of collection. name contains what was name that again, keep chrome I can spell that keep Chrome. Okay, and we'll say not any of these can't be in that collection. And it has to be this and this prod chrome one. So according to this chrome old has. How many machines did we get in there? We've got 24 machines in Chrome. Oh, this should be 22 if I did this right. drumroll please. Ah, angels sing I did it. Right. Jordan, are you surprised?

    Jordan  14:38 ---  No. It's always nice when? When we get it right. And the first test?

    Lex  14:42 ---  Yeah. So that's one way to do it. Okay, let me show you another way to do it. We're gonna go up here again. And this time, I like this one because you're not so much typing, right? So we'll call this prod, Chrome two and this time, I'm going to The computer table and I'm looking at collections here, the right collection is a member of, and we'll say chrome old, see, look at this, I can select, like nobody's business. Right, boom. And then I'm gonna add another filter. collection is not a member of, and we'll just do that keep chrome open. And again, we should end up with 22 machines. There we go. Alright, so what's happening in the background? Okay, obviously, Chrome production Chrome, one is looking at the name. Now the benefits of that is, if I export this, it's evaluating the name. And so if I sent it to Jordan, he's got the same collections, he imports the name, there's a very good chance that's going to translate well, in an export. It's slower because it's comparing the name. Now production chrome too, if you go look in the computer table, it's actually recording the collection id. I believe I'm saying that right, Jordan. And so it's comparing the ID and when it does that, again, SQL’s gonna run faster. So that's a benefit, it's more efficient. And obviously, I didn't have to type. Gotta love that. On the flip side, if I export and hand it to Jordan, what's gonna happen, what's possibly going to happen?

    Jordan  16:16 ---  Unless we got the exact same collection IDs, it is going to fail,

    Lex  16:19 ---  alright, it's not going to do the right references. So normally, I do this one, because I don't export a lot of these. But again, just some caveats to know. In regards to that.

    Jordan  16:27 ---  It's one of those if you're kind of the only server, then option one is probably not the way to be faster, why don't do that one, if you have to share this out, go with one, and that way, it will work across the board when you import it in.

    Lex  16:41 ---  There you go. So, Alright, so we're gonna I like Chrome too. That's the one I'm probably gonna use. Now you just point your schedule at Chrome to PDQ updates, whether or not the latest version of Chrome, and this excludes the machines that don't need it. So you're back to automated. Alright, any questions? And please let it be an easy one.

    Kelly  17:03 ---  All right, we'll give this one a shot. Guys. My question is, what is the best way to filter or have the ability to filter by custom attributes from AD in PDQ inventory? Thanks, Chris. C

    Lex  17:15 ---  custom attributes from AD? Now, I guess the first question is custom attributes. We don't pull those into the

    Jordan  17:26 ---  they're not there by default. I think it's expanded in the schema when you install exchange. There's other things but I don't think the custom attributes are there by default. Okay. But if they do have it, if we're not pointing at a PowerShell scanner to grab, that wouldn't be difficult.

    Lex  17:41 ---  Could you do it that way, PowerShell scanner? Definitely. Could you do it from an Active Directory scanner? I've never tried it. I'm wondering, can you pull custom map attributes from Active Directory scanner?

    Jordan  17:50 ---  I'm not sure I haven't. haven't tested it for that one.

    Lex  17:53 ---  Nope. I don't think we have options on that. So PowerShell is the way to do it.

    Jordan  17:58 ---  And thank goodness, you might, it might not even, I guess you'd need the scanner if it's going to import properly. But it's going to have to have access to our set tools as well as the cmdlets. Or you can point it somewhere else to grab those cmdlets. But if you're running the scanner just has to be able to read those cmdlets to grab what's in there.

    Lex  18:18 ---  Right. Let's do a dynamic report. Kind of a rolling report. All right. Before we get too far down the road, I'm going to do a couple of deployments. Okay. So we're going to send sevens about one building this. I'm going to show you that seven zip right there. All I want to do is deploy it and play at once we'll send it to Let's choose some targets. Let's see, we should send it some jjs machines, we'll send it to chum. We'll send it to brothers we know. Okay, so we got these guys. They're running they're installing today. Okay, I'm going to build a report that shows me all deployments in the last 14 days to rolling 14 days so that I don't have to go in and change the dates and stuff. So again, report, new report based report. Okay, computer name, we're going to go look in the deployment table, we're going to look for the package name. We'll also look for a package name or path status. We'll start timer and time. That will go start time to date and work from a start time. And then we'll also pull up the status to see if they actually failed status. All right. Now on your filters, the filter we're going to add is again, from the deployment table, we're going to look at start time, okay, and we'll go between and now. Okay, I'm going to show you the right way to do it. And I'm going to show you the way I did it first afterwards so you can see kind of the contrast. I'm going to go in here and we're going to start with a relative date of 14 days. And you do have to smack ago here. Otherwise, it's not gonna obviously evaluate the proper days. The second thing on this value here I can go into variables. And I can go to: date. And I can grab the date. So we'll call it deploy. Last 14, we'll run it, run it against all computers. And we'll see what's been deployed in the last 14 days. Alright, so it appears that we've got Chrome has been deployed in the last 14 days. What happened to those two machines that I sent seven zip to?

    Jordan  20:32 ---  It's missing the time.

    Lex  20:34 ---  There you go. Now, they did finish successful. So if I go back here, I just got the date. So that date rolls up to what today 000 right. So anytime after that, it's not going to show so if you want to see everything up to the exact moment, don't go there. Go to variables. And we'll grab date time. run this again. And there you go. Babbitt and Clyde, we now have

    Jordan  20:58 ---  you had an X on the before your end, the report didn't grab it.

    Lex  21:03 ---  That's what happens when I do that.

    Jordan  21:05 ---  You didn't. You didn't delete the date. Does that look better? I think that'll work.

    Lex  21:11 ---  I think I think it will do. Well, there you go. bhavin. Brother got seven zip. We've got Oh, opera. I installed opera this morning. That's right.

    Jordan  21:21 ---  Even found the package we ran while testing to make sure it works. The change group that is true. That is true.

    Lex  21:27 ---  Alright, just something to note. Now, let me show you what I did the first time, which is totally wrong, you're gonna get nothing. If you mix these up. Let's do our date and time here. And we'll do our relative to you 14 days from now. 14 days ago, excuse me. And date and time, let's get rid of that. And we run it and get nothing. Okay? That's an order of an order of operation issue. So just if you do this and the other stuffs supposed to be out there, flip the dates. And try that. So any any thoughts, Jordan?

    Jordan  22:04 ---  No, apparently, we need to be careful. If you add in the variable that makes sure you're deleting what was in there first. Otherwise, you're gonna get to have a bad time and have a bad day.

    Lex  22:12 ---  Yeah, that time. All right. Yeah, no, I'm not gonna save that. Alright, that's gone. Feeling good about myself. All right. Is it time to talk regular expressions,

    Jordan  22:24 ---  if we must,

    Lex  22:26 ---  I love and I hate regular expressions,

    Jordan  22:28 ---  they might be the most powerful thing you can use with not of their own. But like with PowerShell most probably, but I use them so infrequently that every time I have to use them, I'm relearning how to work it out.

    Lex  22:42 ---  Right, every time I do it, I have to go to regex 101, paste my stuff and start doing strings until I

    Jordan  22:48 ---  want to see the job where I'm using regex so often that I just have it permanently in my memory

    Lex  22:52 ---  to plug for regex 101 dot com guys. It's awesome. I love it. Now, the other thing we're gonna do is this, I am going to build a report based off of internet browsers. And this is gonna be a super simple regex, you know, but so let's just build this variable. Let's call this variable browsers. Hey, now, in this case, we're gonna look for Chrome and Firefox, right? So in regex, Chrome, or Firefox, right? That pipe is the or I don't know like, why are you doing this here? Bear with me. Chrome, Firefox. So now, report, new report and basic report. We'll call this and I still can't type check that out. camel case plus. Yeah, thank you. computer name, application name. Here's our filter. Okay. application name. Now we're going to go down and go with “matches expression”. Okay. I'll show you “matches pattern” later, matches expression. And I'm going to grab that variable, just in variable browsers. In fact, I'm going to put that in the description right here. After I copy it, copy, paste browsers. run the report there. That didn't give me anything that I thought it would be I think

    Jordan  24:24 ---  I think it grabbed everything but Firefox and Chrome. computer name.

    Lex  24:29 ---  Oh, your computer name variable name. All right. Thanks, Coby. Appreciate it, man.

    Jordan  24:34 ---  Now we know that none of our computers are named Firefox or Chrome. That is a very good thing.

    Lex  24:41 ---  And I'm still pulling okay. Browsers matches expression browsers. Let's go look at my very bad application name. Application a matches expression. I'm using the variable browsers Chrome or Firefox.

    Jordan  24:58 ---  Okay, that seems correct. To me, it

    Lex  25:00 ---  looks terrific to me, I might have to actually type that in here. application name matches expression. Run that against all computers. There we go. Alright. Guys, it looked right the first time. 

    Jordan  25:17 ---  Yeah, I had no solutions. it's like you're on your own. 

    Lex  25:20 ---  So this is the troubleshooting portion that we always like to do live. All right, so we're gonna save that, because it worked. And the other nice thing I can do is this new collection from import, tap that one browsers application, it copies all the filters over and now I don't have a browser that has got anything. It's got Chrome, Firefox, or both. Now, the reason I wanted to show you this is because you know, there's other browsers out there. I know you're all saying what other browsers really would there be? In this case, I'm going to go, you'll notice I installed opera this morning. This is why we're going to go back to my variables. We're going to go find where my variables are. There they are. And we're going to go and add the pipe and Opera. Build it right. close this down. Now 28 browsers I bet they probably all have on there anyways, let's just go run this and see if we've got any. They've got opera. There we go. Bugs Bunny chrome opera. So now I've got and you'll notice when I save this, if you look in my reports, check it out. The description, Chrome, Firefox, and Opera.

    Jordan  26:41 ---  Pretty cool. Yeah, that's why I think variable is way better than just putting in the report. Anytime that you can have a single location to update something you need to update is better. So you don't have to go hunt it down. Absolutely.

    Lex  26:54 ---  There's my filler word. All right. If you want to see other regular expressions, I suggest you look at the office 2016. There's some negative look ahead. Okay, “matches pattern”, you looked at your collection library for Adobe, I take you through these, but I want to get you guys to the really cool thing that Jordan I came up with yesterday, which is a smart schedule. Alright, so again, we're updating let's say you wanted, we're going to update Chrome, right. And we only want to update this group of machines this week in that group the next week, but I only have one, I have one schedule. Okay. So what I did, what we did is we went and we added a custom field called group ID. And then we populated it with numbers one through five. In this case, you do accounting, you can do whatever we use numbers because the increment incrementing numbers is so much easier than changing words out in this case. So I'm going to build a new dynamic collection based off, okay, we're going to call this we're going to call this group will just cause the group dynamic collection computer and we're going to look for that group ID contains, or equals, in this case, because we use an integer, and we're going to go grab a custom variable called group ID, just you know, our group IDs should be at this point one, there it is. So this should pull all the shut down a bunch of these group IDs, all the machines that have a one, hover group ID one, okay? And let's copy this and put it in the description so that we know that we are looking at group ID one, give it an okay. I've got nine machines group ID one, okay, I'm gonna go change that variable real quick. We'll change it to two. Okay, exit this, it updates, two machines. These are the machines that are in group two now. Okay, so now I've got my groups that I can update. Okay. Now, let's say you wanted to update Chrome, but you wanted to do this group this week, this group next week and have one schedule, what you do, we're going to go back to this chrome to production ID thing. And instead of looking at keep chrome because they don't care about that anymore, this is production Chrome, we're going to go look at members of the group ID, and we want it to be a member. Okay. So now they've got to be machines that are in Chrome, old and part of the group. There we go. So now what I can do is I build my schedule and deploy to run off of this production too. And we're just going to rename that production chrome intelligent.

    Jordan  29:40 ---  So random chat wants to know How did you get the machine into two groups? So the custom variable,

    Lex  29:48 ---  custom variable, we did a custom field first custom field, the Asr, and then I populated it to import. I export it and put just random numbers in there. If you want to see reports, new report based report computer name. And I'll show you the computer group ID. Computer. And group ID, we'll just run that against every production Chrome's the number two. But you'll notice I just went populated with ones and twos and threes and fours and fives. Okay. So now we go over, and we're gonna build our new chrome schedule, right? So package, package packages, Chrome, not deploy once, it hit the right things much easier. Okay, we'll call this smart. should look at that. Not a single typo, not a single typo. All right, triggers. We're gonna run this on Friday, right? After hours. You get the idea, right, Friday 11pm. Okay. And then we're going to point it at our new production, Chrome intelligent finger collection. Production chrome in till, there we go. Okay, package chrome stopped pulling targets. Once they succeed, I give that Okay. The next thing I'm going to do is run on Friday, right, I'm going to build a new schedule, I built a change group ID package. Now let me just pull up the, this is the P, the PowerShell. That makes all this magic work. Basically, it goes and reads that custom variable number. Okay, and then increments it by one, once it hits five, it resets it to one. And if it doesn't work, it throws loud noises. So let me just run this. One point, I'm gonna start putting professional errors in there. But loud noises seem to be the best way to get your attention. You see around this? Obviously we tested this earlier this morning. It just changed that value from two to three. Okay. So we know that works. So all I did was I copied that into a package called change group. Okay, we'll just schedule that to run. Okay. new schedule, a schedule that to run change Group A day later. So that it sets it for next week. Okay, triggers, we will run that weekly on Saturday. And doesn't matter what 11am targets. Okay. We're going to run that on the console, because that's what that variable, period does that packages, there it is options. This one, you want to make sure it does continue to deploy. So take that stop out. Okay. So you'll notice right now, if I go back here to inventory, and inventory, thank you. Kill that report. Inventory. Okay, group ID, we don't save that currently has been moved to three, which you saw, right? Here's all the ones in three. Okay. I'm just gonna, let's say that update runs like normal, right? Saturday, this gets deployed, we're gonna deploy, once you simulate this, it gets deployed to the console. Okay, why now, it's gonna run, it's gonna connect, and you need to make sure you have your variables closed, because if you open them up, it says they're locked. Hey, close that it was successful. We can go look at the log and say, Look, it's moved to a value of four. Now. We go back to inventory. Take a look, we have group four, ready for next week's update. Okay, think of this guys. I mean, that's overly simplified. You put variables in, you can start doing all kinds of things with these variables that you can change once a week to increment to do sections of deployments. Different things.

    Jordan  33:49 ---  Yeah. So this one is about a simple version we could make where it's just counting up a number. But if you had something specific in your computer, where you had, like, say, four values you're looking for, you could have it set to a switch statement where if it's one, it moves it to the next one, so it doesn't, it's not locked to integers. If there's information you can grab from the machine, you can build this out to switch between those machines to keep your schedule going with only one schedule. 

    Lex  34:13 ---  All right, so hopefully that will spark some ideas on how you guys can know, one schedule, I guess it's two, in this case, one to do the deployment one, change the variable for your next week's stuff. So any questions? I guess that's what I got to cover today. So let's get some questions.

    Kelly  34:30 ---  Yeah, we're gonna do a speed round. speed round. Hey, guys, have been having some trouble working out a report which filters for a specific application at a given version, and only lists the workstations with that specific application name and version in the results of the report. Thanks for being awesome. And making an awesome product. Sincerely, Timothy, M.

    Lex  34:54 ---  Can you leave that up for just a sec? All right, yeah. So I'm looking for a specific application given version. And only less workstations. All right. Reports. New report. Yeah, application name,

    Jordan  35:08 ---  we're gonna do a version hit a speed round. But this question does not lend itself to a quick answer and doesn't

    JJ  35:17 ---  do your best.

    Jordan  35:19 ---  You got 15 seconds, 15 seconds. So

    Lex  35:21 ---  the first thing I'm gonna do is I'm gonna go and look for that collection is a member of workstations that eliminates all my servers right out the gate. So workstations, boom, okay, so 34 parents there. And then our application, we're gonna look for the application name contains, let's say Chrome. And then I don't know any versions, but you'd add your application version and do your version comparison. Here. We'll say version equals, and I'll just grab that system variable for Chrome. If I can find that. Google. Google app name name, getting a diversion clean out here. Version. There we go, Google. Hopefully, this gives you the idea on how to do this Google Chrome enterprise.

    Jordan  36:10 ---  I would say this one, especially where we don't have like their parameters are looking for ready to go. This is when you could also send in support, and I'm sure they could help you build out exactly what you're looking for. Absolutely. Jordan's trying to keep you within time.

    Lex  36:22 ---  There you go. Okay, Penelope, Google. Chrome is a workstation. Alright, that did I make a minute wasn't even close to a minute.

    Jordan  36:30 ---  I think you did it very fast. That was quite I am happy to be adults

    Lex  36:34 ---  computer as a member of workstations and then go after your application stuff there. Make sure your versions are compared against version comparisons. Now you're over a minute. Let's move on.

    Kelly  36:45 ---  Moving right along new in the PDQ club, great work you're doing? Is it possible to add a custom description to your machines eg the user assigned or department sincerely, Brian a W.

    Lex  36:59 ---  You know, this is how I would do that. I'd go in and add custom fields. So you can add description, again, new field, we'll make it a text field. You know, department description, right? group ID in our case, pretty much the same. Department so much use a word that is shorter. Okay. Once you do that, as you go into each machine, you can go add those by hand, which I am absolutely against, because that's a lot of work. But if you have a CSV file, it's got a computer name, comma, and then the department you can import it. And it's much easier, but you put it here, department accounting. That's how I do that. That's Jordan.

    Jordan  37:42 ---  Yeah, if it's information that's in Active Directory that it can't pull. From there. You could query Active Directory and export that to the CSV, just grab the name. And you'll have to come up with the variable name yourself, and then use the import tool.

    Lex  37:54 ---  Absolutely. Absolutely. The other thing is, you're going to find that notice department is now located right here. In the computer tip all your custom fields going in here Colby says if you want those front and center, you can add custom fields to the main window. Oh, there we go.

    Jordan  38:11 ---  Excellent.

    Kelly  38:12 ---  Are you ready? Okay, here we go. Hey, guys, when you set the stop deploying on successful flag reset once the schedule resets? Or is that a permanent flag that gets set on that schedule? Sincerely Dirrell? Yes.

    Jordan  38:27 ---  So that one, it depends if it is from our package library, then it's going to reset every time the new version comes out from the library. If it's one that you built on your own, you would have to clear out the history from the package which you can automate, we have a couple of webcasts on how you can do that.

    Lex  38:43 ---  Absolutely. Thank you, Jordan. And those are reset on version numbers from our patch library. But that's it target history right there.

    Kelly  38:51 ---  Wow, that took you guys 20 seconds, I am impressed at it.

    Lex  38:56 ---  Hey, let's go out on a high note.

    Kelly  38:59 ---  Not yet. Is it possible to add parameters to an auto download package Curtis j?

    Lex  39:08 ---  Can you add parameters, I guess depends on where you're going to add the parameters. Okay, in an auto download package. And notice right here, the auto download stuff here in our steps is grayed out. We do that because we need to be able to control that to say that we are getting that updated. We can vouch for the stuff that we put out there. If you're going to make changes, then we can't if you wanted to add something after the fact on the parameters line for install 64 bit Chrome, you are going to have to go in and turn this thing into under conditions, excuse me, properties, the package options converted to a standard package, then you can alter it but it doesn't become an auto download package at that point. If you wanted to try you could try and adjust well I don't know if you can you can adjust parameters and pre steps and post steps.

    Jordan  39:53 ---  Now post up if there's a name of the file but a file that can change those settings that you could run into post. Maybe what is that Yeah,

    Lex  40:01 ---  admin file or config.

    Jordan  40:03 ---  config. And it might be that they're

    Lex  40:06 ---  alright. You want to change it to a standard package.

    Jordan  40:09 ---  I still can't remember that name. It's gone. Gone.

    Kelly  40:14 ---  Wow, that took one minute, five seconds. That's not bad. Hey, guys, if I had a post, if I add a post deploy step to a library package will then be able to auto update. Thanks, Brian. All

    Lex  40:29 ---  right, let's test this. I have got

    Jordan  40:33 ---  Well, he's testing I just say yes,

    Lex  40:34 ---  yes, the answer is yes, Adobe Reader DC. Here's my package, we're going to add a post step called reboot. And then we will save it. You'll also notice right here, okay, it now has a pencil. A pencil means it's been edited. There's a post up there.

    Jordan  40:52 ---  I showed you looking at your screen.

    Lex  40:54 ---  Yeah. Come on, man. Sure. Now we'll go. Let's approve this. Right. So we've got version 138. Right. The new one is going to be 142 highlighted approved now. It should download this bad boy. And we should still see when it's done downloading that we've got that reboot step and the post step. So yes, you can pre and post steps we don't touch. We just take care of the center. And the proof soon as that checkbox comes up. I need some music.

    Jordan  41:24 ---  Oh, come on. Why did you choose such a large download? Yeah.

    Lex  41:29 ---  It was the one that was ready to go. There we go. It's updated to 142. And the reboot is still there. Sweet. In your face. I did it. All right.

    Jordan  41:38 ---  I've learned my lesson there. Yeah, I have learned my lesson.

    Kelly  41:42 ---  Alright, two more questions. Does PDQ plan on making Microsoft Azure, John B.

    Lex  41:48 ---  JOHN, I'm assuming making it to Azure has been built. Yeah. I would love the money for making Azure. Make it? What is it compatible with? integrate with? believe that's in the plan, guys.

    Jordan  42:03 ---  We're aware of where the markets move. Imagine becoming more and more critical. Don't ask me for time. But yes, we're aware.

    Kelly  42:12 ---  And our final question, guys, can you see Event Viewer logs with inventory? Sincerely, D. Martin.

    Lex  42:19 ---  Martin? What's that Christmas song D Martin sings

    Jordan  42:26 ---   instead, I'll give them information. So we have a PowerShell scanner. I think we have one that already looks at certain events in GitHub that you can download. basically it runs, PowerShell goes out and queries but it's looking for very specific events. So if you're looking for just general events, you can grab that but it's gonna make a rather large table. But if it's you're looking for something specific, you can definitely fine tune the power show. And gravity tech what you're looking for.

    Lex  42:54 ---  Right now. I'm going with what he said. Thanks, Jordan. Well, hey, we hopefully made advanced filters fun. Everybody loves it. Hopefully you got something good out of today. You know, use your variables, some regex gonna have to study on that one. Again, variables dynamic collection dynamic reports, guys, thanks for watching. I'm Lex from PDQ.com.

    Kelly  43:19 ---  Thanks for joining our webcast today. Congratulations Russell K and H w. winners of PDQ swag send us your info at webcast@pdq.com. If you have additional questions, don't hesitate to reach out to our support forums. Thanks again for joining us and we'll see you back here next week.

    company JJB
    JJ Bateman

    JJ is a technical creative. He finds joy in programming, automation, and in participating in the artistic sides of things. You'll often find him drinking on Thursdays on the PDQ webcast, rambling and raging remotely at the Bermuda Triangle/heisenbug-tier tech at the studio in SLC.

    Related articles