我有一个来自内部网站报告的服务器名称动态列表。我希望 PowerShell 从 URL 获取此列表,然后将其用作我可以循环访问的变量。
目前,这就是我所拥有的。
$servers = Invoke-WebRequest -URI http://myserver/hostgroup.php?hostgroup=test | Select -expand Content
Run Code Online (Sandbox Code Playgroud)
这将返回一个简单的列表,例如"SERVER1","SERVER2","SERVER3",。我想循环浏览这个列表来运行报告。这是一个简单的 foreach 作为起点(不起作用)。
foreach ($s in $servers) {
if(Test-Connection -Quiet $s -Count 1) {
Write-Host "Online"
} else {
# connection test failed
Write-Host "`a`n" $s "is unreachable" -ForegroundColor Red
}
}
Run Code Online (Sandbox Code Playgroud)
我收到的输出看起来像是使用整个字符串作为服务器名称,并且没有分解它。
这是输出。
"SERVER1","SERVER2","SERVER3", is unreachable
Run Code Online (Sandbox Code Playgroud)
除了将单个字符串拆分为字符串数组之外,您还需要修剪掉双引号,例如:
$result = ($servers = Invoke-WebRequest -URI http://myserver/hostgroup.php?hostgroup=test).Content
$servers = $result -split ',' -replace '"','' | Where {$_ -notmatch '^\s*$'}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3934 次 |
| 最近记录: |