我在使PowerShell脚本工作方面遇到了一些困难,因为我喜欢它,并且经过多次jiggery-pokery,我在这里。
我的总体目标相当简单,不幸的是我有点像PowerShell菜鸟! 我正在试图确定我们庄园中所有系统的名称,制造商和型号,而不必四处盯着大量的锡。
我仅根据我对脚本的不了解而构建了以下内容,并且遇到了麻烦。
我的想法是将来自CSV的DNS / IP信息传递给变量,然后我可以依次使用该变量来执行基于Ping结果的WMI查询。 假Ping响应=不查询 True Ping响应=执行WMI查询
这是我到目前为止所得到的......
Test-connection -computername
foreach ($Ping in $Hosts)
{
test-connection -computername $Ping.IP -count 1 -quiet
if ($Ping.StatusCode -eq 0)
{Get-WmiObject win32_computersystem -computername $ip.Name | select Name,Manufacturer,Model } out-file c:\CSV\Test1.csv -ea SilentlyContinue}
else
{write-host $Hosts.Status Offline}
}
答案 0 :(得分:0)
假设你有文件C:\ CSV \ Hosts.csv,内容如下所述:
computer1.mydomain.com
computer2.mydomain.com
使用以下脚本,您将获得文件C:\ CSV \ Results.csv:
$Hosts = Get-Content "C:\CSV\Hosts.csv"
foreach ($PingIP in $Hosts)
{
$alive = Test-Connection -ComputerName "$PingIP" -count 1 -quiet
if ($alive)
{
Get-WmiObject Win32_ComputerSystem -ComputerName "$PingIP" | Select Name, Manufacturer, Model | Out-File "C:\CSV\Results.csv" -ea SilentlyContinue
}
else
{
Write-Output "$PingIP offline"
}
}