我一直在寻找并且无法具体找到我想要的东西,我需要一种方法可以测试约900台计算机并判断是否启用了Powershell远程处理,我发现使用以下脚本可以验证Powershell已安装,但它不会检查它是否可以真正远程管理计算机,有什么想法吗?

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 { }
}
}

最佳答案

您可以使用Test-WSMan cmdlet来检查WinRM服务是否正在远程计算机上运行。

[bool](Test-WSMan -ComputerName 'ComputerName' -ErrorAction SilentlyContinue)

10-08 05:13