windowspowershellremote-server

I'm a novice at Powershell and im trying to complete a task


I'm starting to work with Powershell and I've been doing some courses online. At this moment I'm stuck in a Challenge, I hope some good soul can help me with the instructions from the course.

Instructions are:

1-Find out what Windows features are installed on the server machine. (I'm remoting command to a computer named "Server")

2-Select only the data stored in the Name and InstallState columns.

3-Sort the data by the Name property in ascending (alphabetical) order.

4-Make sure the output format is set to table

5-Save the final output into a file called C:\features.txt on your desktop machine.

What I have come up with is this:

 Invoke-Command -ComputerName Server -ScriptBlock{
>> Get-WindowsFeature | Select-Object -Property Name, InstallState | Sort-Object -Property Name | Format-Table
>> } | Out-File C:\features.txt

I have tried both with and without the select-object command since I know the format-table command works almost the same in this case. Thank u!


Solution

  • As per my comment for example.

    # 1-Find out what Windows features are installed on the server machine. 
    Get-WindowsFeature
    # Results
    <#
    
    #>
    
    
    # 2-Select only the data stored in the Name and InstallState columns.
    Get-WindowsFeature | 
    Select-Object -Property Name, InstallState
    # Results
    <#
    
    #>
    
    # 3 - Sort the data by the Name property in ascending (alphabetical) order.
    Get-WindowsFeature | 
    Select-Object -Property Name, InstallState | 
    Sort-Object -Property Name
    # Results
    <#
    
    #>
    
    # 4-Make sure the output format is set to table
    Get-WindowsFeature | 
    Select-Object -Property Name, InstallState | 
    Sort-Object -Property Name | 
    Format-Table # though this is not needed, since table is the default for less than 5 properties.
    # Results
    <#
    
    #>
    
    <#
    # 5-Save the final output into a file called C:\features.txt on your desktop 
    machine.
    #>
    Get-WindowsFeature | 
    Select-Object -Property Name, InstallState | 
    Sort-Object -Property Name | 
    Export-Csv -Path 'SomePathName' -NoTypeInformation -Append
    
    
    # (I'm remoting command to a computer named "Server")
    $Computers | 
    ForEach-Object {
            Invoke-Command -ComputerName $PSItem.ComputerName -ScriptBlock{
            Get-WindowsFeature | 
            Select-Object -Property Name, InstallState | 
            Sort-Object -Property Name | 
            Export-Csv -Path 'SomePathName' -NoTypeInformation  -Append
        } 
    }