Sherlock is going against the Beast with PowerShell
I'm no powershell expert but if spaces sprinkled around here and there would make the code more readable. So instead of this:

for($inputIndex=1;$inputIndex -le $inputNumbers[0];$inputIndex++){


it would read like this:

for (inputIndex = 1; $inputIndex -le $inputNumbers[0]; $inputIndex++) {


Less crammed and easier to read I'd say.
Your outer for loop could be expresses as a ForEach which would yield cleaner code:

ForEach ($N in $inputNumbers) {
    # Create a loop that runs for the number of passes in the current line of input.
    # Count down from the number until 0
    $highestNumber = $N..0 | ForEach-Object {
        # Check to see if this digit combination is a decent number.
        # If it is then we pass it thru the pipeline and stop the loop.
        If (($_ % 3) -eq 0 -and (($N - $_) % 5) -eq 0) {
            ("5" * $_).PadRight($N, "3")
            # If we get a result then this is the highest. Exit the loop.
            continue
        }
    }

    # Check the value of $highestNumber. It is possible that for this pass there
    # are no decent numbers. Nulls evaluate to false.
    if ($highestNumber) { $highestNumber } else { -1 }
}

As for the algorithm: You kind of brute force it which is usually not the intend of these programming challenges. I have outlined a slightly better algorithm in my answer to another question trying to solve the same problem.