Sunday, April 21, 2024
HomePowershellDiscover the Command and Make sure the Effectivity

Discover the Command and Make sure the Effectivity


The most effective a part of this whole course of—the writing about PowerShell for developing on 9 years—has been the conclusion of my very own errors whereas utilizing PowerShell, after which sharing these. I’ve an upcoming publish on this, however in between getting ready and publishing that, I, sure me, made one other mistake.

Let’s begin with what I wrote first, which is included beneath. It’s a easy Get-ADComputer command. By now, we’ve all possible written loads of these. Seems to be nice proper? Does it although?


Get-ADComputer -Filter * -Properties OperatingSystem,Description |
    The place-Object -Property OperatingSystem -like '*Server*' |
    Choose-Object -Property Title, OperatingSystem |
    Kind-Object -Property OperatingSystem, Title

Earlier than we transfer ahead and decide what I did incorrect, let’s use Measure-Command to see how lengthy the execution takes for me on my machine.


Measure-Command -Expression 
        The place-Object -Property OperatingSystem -like '*Server*' 

Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 4
Milliseconds      : 105
Ticks             : 41055467
TotalDays         : 4.75179016203704E-05
TotalHours        : 0.00114042963888889
TotalMinutes      : 0.0684257783333333
TotalSeconds      : 4.1055467
TotalMilliseconds : 4105.5467

4 seconds. That doesn’t appear too lengthy, however I’m guessing it’s based mostly on the best way during which the command was written. I by no means actually belief a single check, so let’s arrange the above Measure-Command command to run 10 occasions consecutively utilizing ForEach-Object.


1..10 | Foreach-Object {
    Measure-Command -Expression 
            Choose-Object -Property Title, OperatingSystem 
} | Choose-Object -Property Seconds, Milliseconds

Seconds Milliseconds
------- ------------
      5          370
      5          213
      5          311
      5          839
      4          500
      6          234
      5           50
      5          239
      4          656
      5          421

A number of assessments and that is nearer to a full 5 seconds per invocation. I don’t find out about you, however 5 seconds in PowerShell is an eternity. We use PowerShell for accuracy, positive, however we use it for effectivity, as effectively. The faster the higher; we shouldn’t restrict ourselves. In case you discover a mistake then repair it.

Now, let’s use the Filter parameter the best way it was meant for use. Piping to The place-Object is at all times going to be slower than utilizing the filtering choices supplied by the instructions we use. Right here’s our base command corrected.


Get-ADComputer -Filter {OperatingSystem -like '*Server*'} -Properties OperatingSystem, Description |
    Choose-Object -Property Title, OperatingSystem |
    Kind-Object -Property OperatingSystem, Title

And right here it’s wrapped as much as be examined 10 occasions equivalent to we did beforehand.


1..10 | Foreach-Object {
    Measure-Command -Expression {
        Get-ADComputer -Filter {OperatingSystem -like '*Server*'} -Properties OperatingSystem, Description |
            Choose-Object -Property Title, OperatingSystem |
            Kind-Object -Property OperatingSystem, Title
    }
} | Choose-Object -Property Seconds, Milliseconds

Seconds Milliseconds
------- ------------
      1          501
      0          922
      0          907
      0          895
      0          930
      0          906
      1          790
      1          534
      1          284
      0          937

Perhaps you’re not frightened about these misplaced seconds. If these aren’t that essential, then let or not it’s the likelihood that somebody’s going to see your failure to be environment friendly. If I noticed this—and once more I made this error first—I’d be involved that the particular person penning this code didn’t higher discover the command(s) they’re utilizing. In case you’re going to make use of a command, then understand it effectively sufficient to know the way effectively you’re utilizing it.

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments