我正在寫返回所有聯機計算機在我們的網絡功能以最快的方式,所以我可以做這樣的東西:什麼是上網電腦
Get-OnlineComputers | % { get-process -computername $_ }
現在我基本上得到了我的功能準備好了,但它太長了。 我想只返回有WinRM活動的計算機,但我也想提供讓每臺計算機甚至沒有WinRM設置(切換參數)的選項。
這是我的功能。首先它爲域控制器創建一個pssession,讓我們的局域網中的所有計算機。然後在計算機上,它會測試他們是否有WinRM活動或者他們是否接受ping。如果是的話,它會被返回。
$session = New-PSSession Domaincontroller
$computers = Invoke-Command -Session $session { Get-ADComputer -filter * } | select -ExpandProperty Name
$computers | % {
if ($IncludeNoWinRM.IsPresent)
{
$ErrorActionPreference = "SilentlyContinue"
$ping = Test-NetConnection $_
if ($ping.PingSucceeded -eq 'True')
{
$_
}
}
else
{
$ErrorActionPreference = "SilentlyContinue"
$WinRM = Test-WSMan $_
if ($WinRM)
{
$_
}
}
}
這是我可以去檢查我的在線電腦的最佳方式嗎?有沒有人有更快更好的主意?
謝謝!
我會先測試他們是否接受ping。那麼你知道他們是否在線,如果是,你可以檢查WinRM。我可能是錯的,但也許這會加快它 – XtremeBaumer
oops - 爲什麼我得到一個downvote?我可以在我的問題中改進什麼? – SimonS