3

I have a script that installs Remote Desktop Services on remote machines (from the DC).

I'm now at the phase where I check if RDS installed on the connection broker (server) and connection host (server).

I want to use invoke-command since a remote powershell session seemed too complicated.

This is the code I have:

$res = Invoke-Command -ComputerName "testpc.eil.local" -ScriptBlock {
if((Get-WindowsFeature -Name "Remote-Desktop-Services").Installed -eq 1)
{
   #i need this output (true or false or a string)
}
else
{
     #i need this output (true or false or a string)
}
}


Write-Host $res

But my question is, how do I encapsulate the output of the scriptblock in the invoke-command in a variable that the DC can access? I'm trying to write away if RDS is succesfully installed or failed to a log-file

How do we encapsulate the output of the function and pass it to the machine who's running it?

Thanks

1 Answer 1

7

Generally for powershell to return something from a command\function, you want to produce any kind of output. So just "bla-bla" inside your code will return "bla-bla" to the caller. With that your case simplified:

$res = Invoke-Command -ComputerName "testpc.eil.local" -ScriptBlock {
    (Get-WindowsFeature -Name "Remote-Desktop-Services").Installed
}

do something with $res here
Sign up to request clarification or add additional context in comments.

5 Comments

Thank you very much, it's weird that your method works but mine doesn't hehe!
just like I said, yours doesn't because you don't actually OUTPUT anything. You need to OUTPUT stuff to have something to capture
Okay but I was wondering why I couldn't just write Write-Host "Installed!" When I included it in my first script. (if test) but if I understand you correctly, it's because it's gets printed in the 'window' of the remote server and not the one from the DC?
yeah, don't use write-host, generally speaking, its messed up, use write-output
Thanks for the answer! I've understood it thanks to your explanation

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.