Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Test if powershell remoting is enabled

I have been looking and can't find specifically what I am looking for, I need a way that I can test about 900 machines and tell whether or not powershell remoting is enabled, I figured out that with the script below I can verify that powershell is installed but it doesn't check that it can actually remotely manage the machine, any ideas?

function Check-PSVersion
{

[CmdletBinding()]
Param (
    [Parameter(Mandatory = $true)]
    $ComputerName
)
if (Test-Path $ComputerName)
{
    $Computers = Get-Content $ComputerName
}
Else
{
    $Computers = $ComputerName
}

Foreach ($Computer in $Computers)
{
    Try
    {
        Write-Host "Checking Computer $Computer"
        $path = "\\$Computer\C$\windows\System32\WindowsPowerShell\v1.0\powershell.exe"
        if (test-path $path) { (ls $path).VersionInfo }
        else
        {
            Write-Host "Powershell isn't installed" -ForegroundColor 'Red'
        }
        Write-Host "Finished Checking Computer $Computer"
    }

    catch { }
}
}
like image 847
Luke Avatar asked May 28 '15 17:05

Luke


2 Answers

You can use the Test-WSMan cmdlet to check whether the WinRM service is running on a remote computer.

[bool](Test-WSMan -ComputerName 'ComputerName' -ErrorAction SilentlyContinue)
like image 189
ojk Avatar answered Sep 18 '22 22:09

ojk


at the risk of being off-topic ...

function server_available?( $_server_to_act_on ) {
   if ( Test-Connection -ComputerName $_server_to_act_on -Count 1 -Quiet ) {
     Write-Host "`nTest-Connection: $_server_to_act_on OK" -NoNewline
     if ( [bool](Test-WSMan -ComputerName $_server_to_act_on -ErrorAction SilentlyContinue) ) {
       Write-Host ", Test-WSMan: $_server_to_act_on OK" -NoNewline
       if ( [bool](Invoke-Command -ComputerName $_server_to_act_on -ScriptBlock {"hello from $env:COMPUTERNAME"} -ErrorAction SilentlyContinue) ) {
         Write-Host ", Invoke-Command: $_server_to_act_on OK" -NoNewline
         return $true
       }
     }
  }
  return $false
}
like image 37
Straff Avatar answered Sep 18 '22 22:09

Straff