Adam Bertram has a paean in honor of Tee-Object:
What does Tee-Object do anyway? Tee-Object basically kills two birds with one stone. This cmdlet redirects output from a PowerShell command and either saves it to a file or to a variable while also returning the output to the pipeline. It allows a scripter to save the output and send the output across the pipeline all in one shot.
Let’s say a scripter wants to send some text to a file and then perform kind of task on that same text afterward. Perhaps we’re pulling a list of Windows services from a computer and saving that output to a text file to create a snapshot of the before state before we attempt to start the services. This task can be done in two separate steps or with a single one with Tee-Object .
I’ve used it several times in Powershell as well as the tee command in Linux. It’s great when you need to do several things with the same data but don’t want to break out of your pipeline.