Thu, 3/25 • 47:29
SPEAKERS Lex, JJ, Jake, Jordan, Kelly
Lex 00:01 --- Hey everybody, it's Lex from PDQ.com, hey, we are covering lesser known features competing, deploying inventory lesser known, they're there, they're there for you to use, we just find people don't know that they're there. Let's jump in. And Jordan, we're going to start by talking about variables.
Jordan 00:18 --- I mean, you got to start with the exciting things exciting.
Lex 00:21 --- So basically get your coffee guys here it comes in variables, you can use them in deploy in inventory, there's a couple of different ways to do these. First of all, let me just get rid of a few of these things that I should have gotten rid of yesterday. Last week, we did a group ID collection. Now you'll notice right here computer group ID equals and then we have our custom variable, we do that so that we can actually rotate, you know, or change the data in that variable to build a variable in both deploy and inventory, go into options variables. There we go. So here is that group ID. And again, variable, I can come in here and change that to a four, three or a two. And again, once I exit that you'll now notice right here, since I referenced that variable in the description, it shows it there. And it has changed. Okay. Also, another place, I've used this, we've built a report. And it's basically just an application report. Okay, and it references whatever you've typed in the variable. So right here, again, I'm referencing that variable right there. If we go to define report, this basically is application report, I just wanted to see what machines have what versions of what specific software and so instead of having to go into filters and go do this, I can just go right up here and change that from, we'll say, opera to Chrome, we'll see how many different versions of Chrome we've got in making your lives easier. And again, if you reference these variables in collections and reports, it's one spot to change it for all of these specific machines are not machines, but reports and collections. So back to my report, I kicked it off, and it did not save that it's opera. What did I do wrong?
Jordan 02:25 --- Bro, after the update right away, as we've noticed, oh,
Lex 02:30 --- Now I'm the Mad bomber is clustered, I'm going all over the place. All right, variables, boom, Chrome, the app variable. Again, we will go back to my report. The application report does say chrome there. And now it's chrome here. So again, I did this to make life easier. If you do it right, not like I do, it works a lot better. Any thoughts on that?
Jordan 02:58 --- Just the real value is I'm just not updating one place. Normally, if you're doing something like in this case, Chrome's kind of a, it's an easy one to use. But you're gonna use it multiple places, whether it's collections or in deployments, or if it's in, in reports, and only having to change one thing to update everything, saves you a lot of time.
Lex 03:17 --- And again, this is what we do in our collections that we maintain for you guys to join us, every single one of these. Right here, all these are system variables. And that's why the dollar signs in there. So when you build a variable, just you know, okay, it'll automatically put that @ sign in front of it, which means it's a custom variable. And the other thing we want to talk about in regards to various variables,
Jordan 03:45 --- a big thing that's got me before is when you write the variable, if you don't click out of the variable, it's not going to update all the time.
Lex 03:52 --- So Chrome, I should have clicked out of this, probably closed it, made it easier on myself, and then it does update. So. Alright. Let's now talk about exporting things. I mean, Jordan, I collaborate all the time. And so a lot of times, I'll build some and send it to him and instead of having to obviously rebuild it, I can export it. Now the things that you can export. You can export tools, collections, reports, packages, preferences, scan profiles, variables, in fact, you can even export custom fields.
Jordan 04:29 --- You can even tell you're reading that off of a list,
Lex 04:31 --- cuz you couldn't tell my eyes stayed up here. Just feels Thanks, man. Appreciate you calling me up. Again, here, we did build a group ID tag, okay. And the reason I used that was so that we could actually do that grouping, you know, and so, what you do is you put that in and then when you open a computer up, you can go in DaffyDuck in this case, we go to custom fields. There's that group ID group ID one. Now you can go in there and type those in by hand if you want. I wouldn't, okay, what I would do is, if you've got a, an Excel spreadsheet, you can import by using the Import Wizard. Again, all you've got to do is have the computer name, that's the reference and then a comma and then whatever custom field information you want to feed in a comma delimited. So it's computer name, in this case, group ID, and then you map it
JJ 05:33 --- is the worst centering job I've ever seen.
Lex 05:36 --- What do you mean, it was right there the whole time after you said that?
Jordan 05:41 --- JJ has been getting more hostile by this Saturday.
JJ 05:48 --- getting worse about centering.
Lex 05:49 --- So am I getting worse?
JJ 05:53 --- Maybe it's because you're opening windows that have never been opened before.
Jordan 05:56 --- That's all like, I'll give that one to you. Wizard is not common.
Lex 06:03 --- My train has been derailed. Let's take a question while I figure out where I'm at.
Kelly 06:08 --- Okay. Hey, guys, when installing a package mesh maker I get a 1223 error. However, the program did install when I run the same command on a PC, it works fine. It seems to not like the desktop shortcut creation. The workaround uses a new step to copy a shortcut I created and ignore the error. Is there a better way? Russell K.
Lex 06:32 --- Oh, Russell, first thing, I would see what a 1223 error is from the vendor. I mean, I don't. I'm not really familiar with mesh maker but I can determine from that what you can do. Now the other thing you can do if it does do the install correctly, and it looks like you've worked around getting that icon on the desktop, you can put that as a success code in the install thoughts on that.
Jordan 06:58 --- The only thing I can think of is there's something with the permissions on just the local user. So if you ran it as a logged on user, I'd be curious if it still had the same error if it builds the shortcut. Cuz that still has, it gives you the admin permissions for that one, but logs in there instance. I don't know if that will fix it. But I just be curious to see if it does that. We know it's just a permissions issue somewhere in there.
Lex 07:19 --- Give it a try. Give it a try. Do we have another question? Or should I?
JJ 07:24 --- Is your train back on the rails?
Lex 07:27 --- Is my train ever on the rails? Let's be real
JJ 07:29 --- good point.
Lex 07:30 --- All right. Do you want to ask the questioner I can talk about some other kind of cool expertise stuff? We can take another question. Let's do a question. All right. Hey, Lex, this
Kelly 07:39 --- question is for you. I would like to install a new 64 bit version of a program. I need to first uninstall the 32 bit version before I can install the 64 bit. How do you recommend I approach this, should I create a package to uninstall then another package to install the 64 bit version? Thanks D north.
Lex 08:01 --- That's exactly what I would do. And then I would nest them. Now depending on what it is, we do have a bunch of uninstalls in our package library, which I just clicked out of. So let's just say we were going to I don't know, Chrome's probably not a good example of seven zip. We have an uninstall seven zip, right? So if you look for if we do happen to have it, here, seven zip and on install seven zip. So let's say I've already got seven zip, so download the uninstalled. So I've got the two packages, one on installs one installs. Now the nice thing was seven zip will install the correct arc. Correct version for the hurt textures machine. And then what I do is this on install, select seven zip and then I create a nested package with those who have the uninstall, and then the install you may I don't know want to possibly put a sleep step in between them. I don't know that it's necessary, but maybe for good measure. To show that you know how to use the sleep step, throw it in.
Jordan 09:03 --- We got nothing but time.
Lex 09:04 --- Nothing but time. Nothing but
JJ 09:05 --- I think I know what happened with this centering thing.
Lex 09:08 --- What happened with the centering thing?
JJ 09:10 --- you installed the latest version? Oh, by the way, we just came out with a ...
Lex 09:16 --- right guys. There's a new version grab that fixes a few bugs.
JJ 09:19 --- We'll promote it right now.
Lex 09:20 --- There you go. It's easy, install it. Just make sure you recenter your screens before JJ gets mad at you.
Jordan 09:28 --- Again, random email. Someone's working out your screen is not centered. Yours is not centered.
Kelly 09:34 --- JJ
Lex 09:38 --- Boy, I am really clicking all over the place. Okay. Thank you. Let's go back to export. So you can export a collection. I'm going to export the super cool group ID. So I'm going to highlight it right click and go to export. Again, it's going to ask you where you want to put it. Any good UNC path works. We'll drop this on my desktop. And if you open this guy up, you can see that it's just an XML file. Hey, Jordan. Yeah, I was thinking of just modifying this by hand. What do you think
Jordan 10:17 --- you'd probably open a notepad instead, then
Lex 10:19 --- that would be the first thing I should do. Let's do that. Open Notepad, any suggestions? Don't mess it up. I mean, come on, beyond the typical
Jordan 10:32 --- outside, just the format, if you break down, it's not going to import properly, but just make sure you're changing the right thing that you want to change.
Lex 10:39 --- Alright, I'm going to try and change the name of this to
JJ 10:42 --- watch your closures.
Lex 10:44 --- Guys are putting the pressure on, where do they want to see no pressure, but don't screw up group ID. That's
Jordan 10:50 --- the path you want to get the one to above that,
Lex 10:52 --- that one right there. Okay, dash xml, boom. All right, I'm gonna save it. That's how you edit guys, with everyone watching probably, or the poor version of that. But now I'm gonna show you how to import right click, probably want to right click somewhere here, so it drops it and not in a sub right? import, we'll go get my super cool. Check from my desktop, group ID XML imported, there it is. group ID dash XML.
Jordan 11:24 --- Looks good to me,
Lex 11:24 --- I was gonna say I modified some XML. Guys, there's a better way. There is a much better way to build collections. And Jordan has built this amazing tool and kind of happens. We're going to show you how it works. We'll make it available is it's going to be available in
Jordan 11:42 --- I probably should make it. It's not professional right now.
Lex 11:46 --- It's not?
Jordan 11:47 --- No, I don't I don't like what Jason made me do to
Lex 11:49 --- let's just bring it up. So basically, what this is going to do is we have a generic name of your application XML. And if you guys want to build collections like we do where you have, you know, Chrome, Chrome, latest chrome on install Chrome, all right, this is going to help you do that. Basically, I'm gonna run this, it's going to ask me for the name of the application variable, application name, variable name for the version and then the version number. And it's going to create that with variables so that we can import it and have a super cool
Jordan 12:25 --- reflection before we run it. Can we go into the variables and delete the ones we made? With our test run yesterday? I think we kept those in there.
Lex 12:34 --- kept them in there.
Jordan 12:36 --- I didn't do I didn't do a good job of cleanup
Lex 12:38 --- in inventory. Oh, you didn't have a way to go. The shame. All right. Let that is a good idea. All right, everybody, close your eyes for a second.
Jordan 12:47 --- You don't know what we're gonna do? We're not
Lex 12:48 --- we're not gonna we're not doing an epic pen. We're not, we're not doing epic pen. You're definitely not doing No, we're definitely not doing VMware and be ridic this is the most professional we have ever been. When you say
JJ 13:03 --- welcome to the fly by the seat of your pants podcast.
Jordan 13:06 --- I mean, we could have paid attention, but that seemed like a lot of work. And now it's kind of
Lex 13:10 --- tuned out. You know, the other thing I'm gonna do, because I know we're gonna end up going to the temp folder. Get rid of the ones that that's not you guys didn't see that. Oh, there's nothing there. You didn't see that?
Jordan 13:21 --- Alright, we're about it.
Lex 13:22 --- Okay, we'll leave that open cuz we're gonna go in there anyway,
Jordan 13:25 --- now prepared to
Lex 13:26 --- me as I know that we're building a building the anticipation is this opening it administrator gotta run into submit admin. All right,
Jordan 13:37 --- we did one thing, right?
Lex 13:38 --- We did. All right. Type in the name of the variable. This is the name for your application, right?
Jordan 13:45 --- This is the variable name. So this would be the variable name.
Lex 13:48 --- So this would be in this case, the v-
Jordan 13:52 --- character I hate hate the questions before I had it. Were there parameters, and I was requested to remove those and I did it and they don't like it.
Lex 14:01 --- That is the variable that we're gonna put the application name in. And because I am such a good typist, check it out, I copied. Now, one caveat This is going to do: it's not going to do a contains it's going to do an equals. When it builds this will show you that in a minute. variable name, the MLA version. Where for the version
Jordan 14:22 --- you had typo in there, it's
Lex 14:24 --- it's not water or wait. VM. Wait. There we go. Shut up. Thanks, guys. And a version number. Guess what? I copy that too, because we only have so long for this webcast. Copy. Paste. There's a lot of windows open and close in here. We did it did boom. It worked. Alright, that's where it goes.
Jordan 14:47 --- Thanks for tuning in everybody.
Lex 14:50 --- It actually goes in that folder that we just should have cleaned out earlier. Right there in C temp. Okay. Now I'm just gonna drag that to the desktop because it's going to be easier for me to go find it when I import it and minimize a bunch of stuff. And now we are going to once again, right click import our super cool VMware Tools. And if we did this, right, I've got 43 machines with VMware Tools as I expand this. There's the ones that the latest version,
Jordan 15:22 --- that variable update in a bit,
Lex 15:24 --- it was not instant, yet. We just were hitting pretty hard here. And variables again, are right here under variables. Look, it actually made the variables. Look in the variables for us. Right. All right. I am gonna I want to roll the day.
Jordan 15:39 --- We're doing good. Yeah, it's just a quick way to get a collection. Where is that having to build all of it, it'll give you a latest old and ones that don't have it installed similar following the same path that we have for existing collections.
Lex 15:48 --- Yeah. All right. Closing that. So that next time I click on variables, and I go find the thing. Alright, so there it is. Now, we also found out in our travels that you can actually nest, you can reference another variable from a variable, which comes in handy for something like an epic pen, or say seven zip that have got the version number in the name. Now, I was definitely not smart enough to um, actually copy this before we get too far. But let's go to the computers that I've got an epic pen on, which would be, I think, Rick Sanchez, to microverse to microverrse2. Now, Quit messing with JJ stuff m to their mind, we're not actually doing anything to them, we're just using them for their good like, all I can say is JJ has watched me do this, I'd be afraid to say it's
Jake 16:42 --- epic pen just way too close to epi pen
Lex 16:44 --- epi pen, it could be a lot cheaper. Free, because it's free. But you notice that it has the version name or the version number in the name right. And then I'm also going to grab just the version there, copy, paste into my little notepad. Now, we're going to do this and reference variables in it and see what happens. So
Jordan 17:08 --- once again, because we discovered this yesterday, I haven't put in the logic to trim the title of the collections. So you'll have to do a little bit of manual after but I'll get that added.
Lex 17:20 --- Epic. We're just going to call this epic var because that's about as far as I can spell. Then I'm going to copy the new name the entire name, because it's going to search for that whole thing as an equals to copy. Paste.
JJ 17:37 --- We're never going to get you guys on VS code,
Jordan 17:39 --- you're supposed to replace the version with the variable.
Lex 17:42 --- Can I break this
Jordan 17:43 --- stop still hasn't built anything yet. It's just asking questions. All right, let's
Lex 17:46 --- do it again. This is why I'm okay. Epic var. Var. Now, this one.
Jordan 17:57 --- Don't worry about it. Keep going. No,
Lex 17:59 --- no. You guys make fun of me. I don't know why. But I'm gonna stop it. There we go. Now I'm going to paste in the name. But I am going to go in here and take that version out. And I'm going to what are we going to name the version and you better tell me to spell it
Jordan 18:14 --- right. Because if we reference it, we're going to put in whatever we're going to name the variable next. So it will put an app
Lex 18:19 --- on it. So I need to add parentheses, parentheses,
Jordan 18:21 --- and then whatever you're gonna name the variable, super easy, epic, ver, and then close the parentheses.
Lex 18:27 --- Okay. You're good, my good. Am I
Jordan 18:30 --- okay, as long as that's what you put in for the name of the I'm not sure I can do that. But we'll try.
Lex 18:36 --- Epic ver. So now I'm building that variable that this is gonna reference. And then we're gonna paste in. Again, just the version. So this Okay, go ahead and do
Jordan 18:50 --- Alexander's asking if it will be in bonus content at some point. Yeah, I should throw it up there. He's just I want to do it differently. But that's not up to me. So
JJ 18:59 --- I prefer that we put this out there right away.
Jordan 19:01 --- Okay, I will put it up.
JJ 19:02 --- Go ahead and put this on GitHub. I'll put it on the YouTube description. So anyone watching after the fact and those that are watching now can go to this video in YouTube and reference this.
Lex 19:17 --- This is super cool. I mean, I love this. Right you'll notice the new name of this is the epic pen version at epic ver XML again, I'm dragging it to the desktop because asking me to find it twice is going to be too difficult. I think I can do it. Right click I believe in you. I believe what you believe in me. Epic pin version, we're grabbing it. Give it an okay. Now check it out. Here's microverse Hey, is that expanded? What it does do is put that @ in the title. It doesn't expand the variable in the title. So to actually make this look kind of sexy, other than the fact that did it every way we want it. I'm just gonna go in and take this out. I probably could have collected it all hit Delete once but working on my typing skills epic pan and again same thing here, we just take that out of the title here and it is now built this again to reference that variable.
Jordan 20:20 --- So I do need to put logic in there that basically says look for probably the at symbol which isn't gonna be common and application name is safe if it has that then trim everything after that.
JJ 20:30 --- Is there a way to strip this out in the XML
Jordan 20:33 --- that's what the logic and put in the XML is basically after you finish it, it builds the XML but I will have it go through and do a search and if what we had enter has the at symbol for adding the version it will strip out from only the titles instead of from everywhere
JJ 20:46 --- sanity check
Lex 20:47 --- what I highlighted right there is the version now check this out. This is the variable A equals epic var Hey, we're gonna look at the variable in here. Epic var right there references epic var, which is right below. Very kind of, though the. Yeah,
JJ 21:09 --- the var and the ver throwing me off a bit. It should finish those terms like version.
Jordan 21:17 --- I mean, you can put whatever you want. You can Yeah,
Lex 21:20 --- come on. JJ, realistically, you want me to try and type any more than three things?
Jordan 21:25 --- Well,
JJ 21:25 --- I'm just worried like, okay, so you're typing an a and an E.
Lex 21:28 --- I don't know if your name with the application we're looking for and version.
JJ 21:32 --- I don't know if you made a typo if you did that on purpose.
Lex 21:36 --- Okay, you got me there. And I still left my highlighter. Okay. So we'll make that available guys super cool. Jordan Rockstar. You and Ozzy.
Jordan 21:46 --- Yeah, so Jason asked me to build that feels like a year ago, and I just kept ignoring him. Did he? And he finally did it. I did. I love it.
Lex 21:55 --- Okay, anyway, that was kind of long winded way about showing you how to build automatic collections that are kind of cool. Questions.
Kelly 22:05 --- Sure, we have quite a few as a matter of fact, Hey, guys, I'd like to get columns in PDQ inventory to show what ad site a computer is assigned to and what the primary DNS server is configured as what's the best way to accomplish that. Thanks, Jay backs.
Lex 22:23 --- Alright. So this screen that is shown right here is fields that are there, the one that's shown right now are fields from the computer table. Okay. The only way to get custom fields in the computer table is custom fields. So again, if we were to go in and take a look, I think I've got a group ID field in here. There it is, you can add that, then we'll go fix it, put it up at the front, so everybody can see that group ID. So you don't want to put in custom fields and populate those fields, then you can view it right up front, on that front screen. Jordan, any other thoughts?
Jordan 23:00 --- No, if you're gonna be doing that, for every machine, that's a good time to use the import tool that you showcased earlier.
Lex 23:05 --- Thank you. Definitely an import tool. Got another question.
Kelly 23:10 --- Dear Lex and Jordan, what are some best practices to deal with Windows 10 feature updates, Derek Oh,
Lex 23:18 --- a Dirk now community we got blogs out in community forum on how people have done it. Okay, you can do it. I've done it. We don't Here come here, quote, officially supported. Here's why. Okay, in the middle of that feature update, there is a reboot, we can't control it. So if along that process it does that reboot on a slow machine and you know, 10% 20% 30% and times out we're gonna give you it failed, when in all actuality it probably just finished and took longer than it. You know, then you expect PDQ. That's the first we don't like giving you bad data ever. The second would be this. Have you ever done a feature upgrade where you've had driver issues? I blue screen the machine before doing an upgrade. Okay. You're gonna run into that here and there. So understanding that I would say do this, if you're going to do feature upgrades, go ahead and do them. Remember the caveats. And if you do them, I would say do a handful at a time so that if you do have a bad day, it's only kind of a bad day. Not a really bad day. Jordan, anything to add to that?
Jordan 24:32 --- Yeah, the actual process isn't all that different from just doing like the Patch Tuesday updates, it's just the timing is something that we can account for with our product. So it's, it will work with our product is fine. It's just you might want to set it in something to go in after and rescan to make sure everything was successful.
Lex 24:50 --- You know, set your inventory scan because you'll get to see a move in your collection library from your windows 10. You know you'll get up, move from here, you know, move from 1903 up to 2004. So you would be able to catch them there. So your point: you want to do another question or should I talk about run modes? Run modes
Jordan 25:17 --- interested, you're interested,
Lex 25:19 --- run loads hips to take a big hard drag on that coffee. Alright, I'm going to deploy seven zip, deploy, deploy once, check it out, run as you drop that down, we have the packages are setting which in this case is deploy user , deploy user interactive local system logged on user. Now, I can tell you, I'm going to tell you, but when I originally looked this up this really cool more info, little question mark thingy, I clicked on it. This came up and did a really good explanation. Okay. executes deployments, the deploy user is on target computers is the vast majority of your deployments interactive, you would use that I'm just going to jump down to here and say, basically, if you were trying to do a user install, but they don't have user rights, you would use that their Jordan thoughts.
Jordan 26:12 --- Yeah, that was pretty on. You don't need to use it a lot. But when it's needed, it's really valuable.
Lex 26:17 --- Yeah, even less likely to use a local system where you do an install as a system. file. Very rare. I don't know of any occasions, I'd actually kick it off there.
Jordan 26:27 --- I've never actually had to use local system, I
Lex 26:29 --- haven't either, then logged on user, you can run as the logged on user, the caveat there, they need to make sure they have admin rights or can do whatever it is you're asking it to do in that case?
Jordan 26:39 --- Yeah, that one is most common when it's something like what before when app x didn't have the all users for the Remove part or anything? Yeah, and things like Firefox, if a user tries to install it, they don't have rights. It installs it in their own folder. I forget the exact path, but it's not in the normal install location. uninstalled things like that are when you want to use logged on user.
Lex 27:01 --- Thanks.
Jordan 27:03 --- Real quick for the previous question about the feature updates. Timothy in the chat said he uses the CLI version to not allow the restart. And then he puts in a restart step and asleep timer after so he can kind of just for that matter, and
Lex 27:19 --- I will have to try that. Thanks.
JJ 27:23 --- Is that a signal for a question? Let's do it.
Lex 27:25 --- Let's do a question. You asked a question.
Kelly 27:27 --- All right. Hey guys, PDQ package, Microsoft Teams, the PowerShell. That checks for existing machine wide returns one equals fail if it is already installed, which means that machines are kept in an endless retry queue. How to get around this. Thanks, Brian. A and W root beer. Wow, sweet.
Jordan 27:48 --- Hey, Brian. One is a success code.
Lex 27:51 --- One Mark it as a success code.
Jordan 27:52 --- because you've already installed Yeah.
Lex 27:54 --- Okay, you're using the retry queue. I think if you've got inventory is a much better way, which actually shoe horns right into the next thing we were talking about, which is retry queue versus a heartbeat. Okay. So again, to go and take care of your Microsoft Teams, do I have it installed or downloaded? We could go here and pull teams basically what you're going to do teams Well, that's going well. Jordan pulled that down. Let's discuss the retry queue versus heartbeat.
Jordan 28:27 --- Well, okay. in the chat, he said he can't do the success code because it's locked, because it is an auto download package. That does make it a bit more.
Lex 28:38 --- Good point. That is a good point. Interesting.
Jordan 28:40 --- Yeah.
JJ 28:40 --- Is there a way around that?
Lex 28:42 --- way around that, yeah, go in here and change it from an auto download to a interruptions, but that's not
Jordan 28:48 --- really that's not the ideal.
Lex 28:54 --- So what I would do, maybe we'll put that to support. If it's already installed. Maybe we should have one as a success story there. Okay, you could go into options and convert the standard package and add the one. Yeah.
Jordan 29:08 --- We'll send this over to the package team just to look at just in case because that's something that we need to account for. Yeah, we want to
JJ 29:14 --- Yeah, if one is a success code isn't
Lex 29:21 --- not marked here. Not marked here. Maybe I need to be in there. Okay, heartbeat retry. Now, if you go into place and put it in a retry queue, yeah, it is going to try and brute force. If it's on an hour schedule every hour try and install this. Obviously, you found an error. That would be one another reason I don't like the retry queue. I mean, okay, let's see. heartbeat trigger. Let me just show you that right. So next time you deploy teams, right. Right click. Boom. Got a new schedule. Okay. teams. Thank you. Okay, heartbeat, basically what that says when she machine heartbeat right machine goes from an offline to an online, right? So we're dealing with machines that are coming online or you're just trying to brute force install it. Okay, when a machine comes online, it'll install it, then it'll be one attempt, which is good when it's online. Okay, the other thing you might want to do is probably build a collection that says, Microsoft team's not installed. And then you don't have to worry about the machines that are installed and take care of it that way too. And Colby just putting in the chat is just pointed to a collection that is not installed for teams only. I don't think I have teams installed here. But let me show you how to do it for seven zip, because I know it gets seven zip installed a lot. And I know we've already got one of these. But to do this, when you build one that's not installed, right, we're going to do missing seven zip in this case, what you're gonna run into, is that whole one to many or one to one relationship issue, right? So we're looking for any application name that contains seven zip, right? Now, if you go in here, and you put, well, you obviously need the right filter in there too. Right? zip seven, zip. Okay, so now I can go pull the ones that have seven zip there, 16 of them, right? I want the ones that are missing. So logically, I would say it does not contain right? In this case, it's not gonna work because it's gonna evaluate every application. That's one too many things. Okay, so if it's got Google Chrome, Google Chrome does not contain sevens zip to qualify, I hit that we're going to get all the machines that have any software on there that doesn't have any software to get what you're looking for. Okay. Think of this as a container. You'll find me all machines that have seven zip, don't return me any from that sub container right there. Give that okay. There's the 36 machines that are missing seven zip, you would do the same thing with teams in that case.
Jordan 31:54 --- And still with the if the one needs to be in the success codes, will still bring that up, because it wouldn't get that added. That's definitely the way to go about it.
Lex 32:01 --- Agreed? Agreed. You know, should we hit some questions at this point? Just kind of wrote questions. You guys want me? I've got some more information we can cover. But yeah,
Kelly 32:11 --- we'll probably need to do a speed round. Let's say let's do it. Alright, here we go. Hi, guys, is there a way to create a collection in inventory that is between an application's current version numbers, which I have in a custom variable, and one revision behind my behind dynamically? Meaning if I could subtract one, for example, from the current version to calculate the previous version? Thanks, Chris.
Lex 32:40 --- Leave that up for a sec. Create a collection.
JJ 32:47 --- The clock is ticking.
Lex 32:49 --- I'm gonna I'm gonna run the timeout on this.
Jordan 32:52 --- We're gonna spend a minute just reading it just reading it,
Lex 32:54 --- Jordan. Okay, so I'm looking for a version. That's an earlier version than the one I've got but a specific earlier version? I mean, I'm trying to understand. Maybe that will help me,
Jordan 33:07 --- oh, we can't really do math, math in the variable variable,
Lex 33:13 --- variable minus one. So
Jordan 33:15 --- it has to be something outside of it, where maybe you have a second variable, we referenced both those bears if it's in either of these two, and then you'd have to have just a second variable that has the older version in there. Okay,
Lex 33:28 --- could you do I mean, you notice this variable right here, we could do a regular expression in there. I mean, could you do this? Or this? Like, I hear Chrome or Firefox or opera version? This or version? That maybe?
Jordan 33:39 --- Oh, yeah.
JJ 33:40 --- What about a PowerShell? scanner?
Lex 33:43 --- PowerShell is this we already got the version, we have the application in the versions, right? We're just trying to
Jordan 33:49 --- either PowerShell scanner won't find anything new that we just need a way to account for not just the latest version,
Lex 33:55 --- maybe maybe try a regular expression and change that filter to regular expression. Look for this one or this one. That pipe is an or so. Give that a try.
Jordan 34:06 --- Yeah, yeah, the regular expressions or a second variable and unfortunate that leaves you with some manual updating to the variables where I mean, the Yeah, the latest one you can handle automatically, but the other one, you have to go in and just manually set that which isn't ideal, but it would account for what you're looking for.
Lex 34:23 --- I think we did that under a minute.
Kelly 34:25 --- Now, huh? Sure. Maybe a minute. Maybe if you change the gravitational constant of the universe and the flow of space time? Yeah. Next time. All right. Hey, guys, getting a lot of packages that say preparing for a long time. What does that mean? Curtis J.
Lex 34:44 --- And Curtis I ran into this one when we rebuilt our lab, are installed and if you go to options and preferences, and if you go to turn deploy, let's go to deploy. Well, it'll be on both but let's go deploy specifically. Preference is here performance right here the service TC manager TCP connection when I disabled my that preparing seemed to go a way. caveat that don't just set it for deployment an inventory it's going to set up the entire machine so now just be aware set it, I think you may have to reboot. Give it a try. I bet that'll take care of it for you. By the way, thanks, Brook, you really hooked me up from support on fixing that one.
Kelly 35:33 --- Dear Lex and Jordan, do you prefer PowerShell or Cmd? For your scripts be Womack,
Jordan 35:39 --- it's tough for me.
Lex 35:40 --- If you're talking to. If you're talking to Jordan, I know it's command for you. I'm gonna have to deal with PowerShell. But
Jordan 35:46 --- I just can't wrap my head around it. So, so complex.
Lex 35:50 --- You know, I used to be a big proponent of cmd. Back when there was you know, CMD was it but PowerShell is so much more versatile. You're a big kornShell guy. We're bash bash. Oh, yeah. Yeah, either the Linux nice guy.
Jordan 36:04 --- Nice guy. So
Lex 36:04 --- yeah, in PowerShell. Definitely. It's just more versatile.
Jordan 36:08 --- It can do just about anything. That's why I never get asked, Can you do some PowerShell? At the end? I always just answer Yes, yes. Yeah,
Lex 36:15 --- there's something about an object lately. I've been asking Should we do this in PowerShell? That's a different question. That is,
Kelly 36:21 --- it's generally Yes. All right, next up? What are some internal admin tools that you the PDQ guys use that you enjoy? server monitoring, remote support, administration, etc. Besides PDQ and PowerShell. Thanks, Darrell.
JJ 36:39 --- this kind of seems like a fishing question. I'm gonna call it out. Now. We like PowerShell.
Lex 36:47 --- Tools, Admin Tools. Sure.
Jordan 36:53 --- I haven't had to do admin tasks in long enough now that anything I did use, I don't even know if it's relevant anymore.
Lex 37:00 --- So you know, I do a little admin work for my uncle and his accounting place and stuff beyond PDQ is I use Nagios to keep track of servers and stuff. And that's open source and Linux, which you have to know if you don't know, Linux is going to be a bit to set up once I use that. My favorite tool is called Jordan. And that basically is um, hey, Jordan, Can Can we do this in PowerShell? He's like, why am I just wanting to know if we can do it, show me how to do it. And then I use what he does, and take credit for it.
Kelly 37:34 --- That's kind of what I was going to say I call support.
Lex 37:37 --- Yeah, call support.
Jordan 37:39 --- in the chat, there's been some ads like autohotkey or or PS tools PS tools, definitely physicals Yeah,
Lex 37:45 --- I know hotkey. I've had some hit Miss without a hotkey. So I mean, I'll use it.
JJ 37:50 --- It's what we use for the highlighter. I'll say that.
Jordan 37:54 --- I got hotkey but UI automation in PowerShell. You can simulate mouse clicks or things like that as well. Then I can still use the PowerShell.
Lex 38:03 --- Pretty much that's if I could do this hammer use for everything even when I need a wrench.
Jordan 38:07 --- I'm not a diverse skill set. I can't even say diverse. He's how bad?
JJ 38:13 --- Do you want to do a blog on PowerShell UI and part of it is how to center windows.
Jordan 38:21 --- Sounds like a trap if you like.
JJ 38:24 --- But it's also a major help for all of us.
Jordan 38:27 --- Yep. All right.
Lex 38:28 --- I think the end users like watching me. waste time center stuff.
Jordan 38:33 --- The big stack I see is the window has to be open for this to interact with it and resize it. So we'd have to open up everything, everything you possibly use.
JJ 38:41 --- We could do that with our shell, right?
Jordan 38:44 --- Absolutely. We could. And yes,
Lex 38:46 --- Jordan stepping away from it. All right. Well,
Jordan 38:50 --- I was hoping this one would go away but apparently this is something that we'll be doing.
Lex 38:55 --- While others show on it. Alright, I'll
Jordan 38:57 --- do it.
Kelly 38:58 --- Alright, so much for the speed round. Here's our next question. We use SCCM for imaging computers. Any idea of a way to use PDQ to push out SCCM images using PMC Pixie b womac
Lex 39:13 --- push out an image using Pixie Alright, the imaging process right machine boots, Pixie points it at the server for the imaging whether SCCM or whatever right lays down the O s and you want PDQ to kick that off. So
Jordan 39:34 --- what I find is that the process for imaging, there's a lot of free or great tools that do that. Yeah, where we come into the imaging processes after the image is done. You can add all machines deployment
Lex 39:45 --- seven zip and reader and bluebeam and Dropbox and chrome and Microsoft Teams and user delay. User delay has to be there but pay and the nice thing again if you nest these packages, okay, and sevens at 19 becomes sevens at 20, it's going to automatically update. So whatever your settings are in options for your auto downloads, that's only how far out these new machines are going to be. So lay down the OS, put the drivers on, get it on a D, kick off your baseline package. And in this case, we're only going to be out seven days, which is nice, because it'll automatically fall into the scheduled services that you've already built. So
Kelly 40:31 --- are there any plans to add other devices or information to the inventory? Say routers, printers, switches, configuration parameters, etc? Marcel? l.
Lex 40:42 --- Yes. Absolutely. To come in in the future. Next question,
Jordan 40:48 --- you kind of do this with network discovery?
Lex 40:51 --- We could okay. It's not gonna find or network discovery. I don't know if that's what Marcel is asking for. But you can go into computers, add computers, he may be asking to be native in that's what I was thinking. But Network discovery is gonna scan that subnet that you put in Okay, probably good. I did call your security guys before you do it. But if it lets him know that you're running a systematic hang of every IP and yeah, if it returns, it gets added. Oh, also, you're probably going to need to make sure you go into your Active Directory stuff here and change that from Well, this is MC sync so this will be good. But normally I run it full sync which won't allow it to be synchronous again so you can get them in the future.
JJ 41:37 --- That's it to Alex's point if you have security guys.
Lex 41:41 --- If you have if you're
JJ 41:43 --- if you're your own security guy
Lex 41:45 --- that's a good point.
JJ 41:46 --- By all means run an nmap
Lex 41:49 --- knock it out.
Jordan 41:50 --- Let's kind of questions can always be tough because we can't really go into plans for future things. We definitely can't put a timeline on it so we can just say yes, we're aware of it but we can't go into detail I know that frustrates some people
Lex 42:01 --- will have it for you tomorrow.
JJ 42:08 --- tomorrow's tomorrow.
Lex 42:12 --- Tomorrow ever get here? Yeah, because it says tomorrow's today. It's not tomorrow.
Kelly 42:16 --- Today is yesterday tomorrow
Jordan 42:18 --- for next question. Forget
Kelly 42:18 --- Speedway. Okay, here we go. We have four left. Can we do it? No. Hey guys, we have a large inventory, which sometimes causes PDQ inventory to freeze or not refresh collections, do you recommend restarting inventory and deploying service on a schedule? b Womack
Lex 42:37 --- you know, I would do two things. First, make sure you're on the latest version of inventory. That's probably the first because I've done you know, light years of amazing performance enhancements in these couple things I would look at. Okay, first thing, what kind of scans you run and what kind of data you're collecting. Because if you have stuff that you're not using, that you're collecting, and the database is going to expand. As your database gets larger, they become more cumbersome. On that note, if you go to preferences, database, my database is 7.1 megabytes. That's because I only have 52 machines in my lab here. But periodically, you need to optimize this database, it is going to you know clean it, basically run a database, vacuum, compress it, make it nice and clean. That will help Jordan, what else would help those,
Jordan 43:26 --- those are the main ones that will take care of it. If you're still having issues. Nothing's hurt by restarting the background services periodically to know if it works for you. I'd have had it but hopefully with the newer version in these settings, you will need to need to reboot services or restart services. Yeah.
Kelly 43:42 --- All right, three more to go. Inventory has the heartbeat checking. Can it send a notification if a system fails? The heartbeat? Our Kenyan
Jordan 43:53 --- I'm not sure if they mean but fails the heartbeat because it just checks in or is offline.
Lex 43:57 --- Yeah, baby's heartbeat.
Jordan 43:58 --- It's offline. If it goes offline, the online is going to if you're looking for if the deployment fails after the heartbeat comes in, it won't leave the scheduled time at that time. Next heartbeat will try again at that point and will only stop trying if the install is successful.
Lex 44:15 --- I mean, are we trying to determine a machine has gone offline? So it goes from a yes to a no, there's no native way to do that. I bet if you do what I do for my network tools and say, ask Jordan about he could probably write something that would do that in power. So you can do that. PowerShell again, it's not native. So
Kelly 44:37 --- Alright guys, non domain Windows devices fall off from PDQ inventory. Any suggestions would be appreciated that sincerely sonnar s.
Jordan 44:48 --- The first thing I check is the
Lex 44:51 --- ad sync ad sync right here. Your delete mode.
Jordan 44:54 --- Okay, full sync.
Lex 44:56 --- Your work. Kay full sync, you're probably in full swing, that means anything There's not an ad gets deleted. Okay, so your workgroup machines, not an ad, they're gonna get deleted, need to either put it in import or mixed sync. The nice thing about MC sync is anything that's added is ad, let me show you how to see that. Right is going to be maintained by ad and anything added by hand. We go up here, I believe it's added from right there. We'll add that we'll also put that right up at the front. So ad sync network discovery saying there's a default machine. So yeah, put that to mix sync or import only you'll be good to go. They won't disappear. After that. You'll have to make them disappear if they need to go if they're not part of the ad sync. So
Kelly 45:42 --- add our final question, not so much a question, a possible solution. Hey, guys, for certain feature upgrades like Windows 10, or applications that require a restart, have you thought about adding a PDQ step that would add a persistent service that would call back to the PDQ server when the install was complete after reboot, this would possibly overcome the timeout issue. Sincerely, Darrelle
Lex 46:07 --- s, in general, in all actuality, on a reboot, we do wait for the response to come back. In the case of the feature upgrade, it just timed out. So the other thing you could do, then I wouldn't leave this permanently. But you could go in here under and deploy under preferences, deployments and change your timeout extend that to some ungodly long number two, do your feature updates and I changed it back afterwards like you know, 90 minutes so that's one way to take care of that so easy way. Well, guys, that was lesser known features and less you're typing for me. Thank you. Appreciate you guys watching. I'm Lex from pdq.com. Catch you later.
Kelly 46:53 --- Thanks for joining our webcast today. And thank you so much for all the questions we may actually do a lesser features Volume Two. If you have additional questions, feel free to reach out to our support forums. Thanks again and we'll see you back here next week.
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.