我正在尝试修改一个应该列出域内所有计算机的脚本,如果有人在该计算机上登录,则应该显示该帐户的用户名。
脚本运行正常,但我有一点美学问题。有没有办法将返回数据(对于那些在线的计算机和服务器)变成另一种颜色?
这是我目前的剧本:
function Check-Domain {
Get-ADComputer -Filter * |
Select-Object -ExpandProperty Name |
ForEach-Object {
$computer = $_
$pingme = Test-Connection -ComputerName $computer -Quiet -Count 1
if ($pingme -eq $true) {
Invoke-Command -ComputerName $computer -ScriptBlock {
Get-WmiObject Win32_ComputerSystem |
Select-Object Username, Name }
} else {
Write-Host "$computer - OFF" -ForegroundColor Red
}
} | Format-Table
}
答案 0 :(得分:0)
您可以编辑此部分 - 这会将Invoke-Command
的结果存储在变量中,并使用Write-Host
所需的颜色输出它:
if ($pingme -eq $true) {
$result = Invoke-Command -ComputerName $computer -ScriptBlock {
Get-WmiObject Win32_ComputerSystem | Select-Object Username, Name
}
Write-Host $result -ForegroundColor Green
}