繁体   English   中英

在我清除资产之前 Ping 然后 DNS 查找

[英]Ping then DNS lookup before I purge an asset

所以我试图从我们使用的工具中清除 IP。 在我清除资产之前,我们需要确保主机不可 ping 且不在 DNS 中。 我是 PS 新手,似乎无法完全理解这样做。 任何帮助是极大的赞赏。 我一直在手动执行此操作,方法是在选择需要删除的 IP 之前 ping IP 和主机名列表并在 cmd 提示符下执行 nslookup。 我还有大约 13k 个 IP 要做。

更新:我想在其中实现这一部分。 在单元格 A 中,IP 单元格 B 会告诉我它是向上还是向下。 Cell D 也会让我知道它是否也是 DNS。 下面是我得到的用于 ping 和检查是向上还是向下以及检查 AD 以查看主机名是否仍在 AD 中的脚本。 我想要类似于这个..请原谅我的英语

$path = ".\results.xls"

$objExcel = new-object -comobject excel.application 

if (Test-Path $path) 
{ 
$objWorkbook = $objExcel.WorkBooks.Open($path) 
$objWorksheet = $objWorkbook.Worksheets.Item(1) 
}

else { 
$objWorkbook = $objExcel.Workbooks.Add() 
$objWorksheet = $objWorkbook.Worksheets.Item(1)
}

$objExcel.Visible = $True

#########Add Header####

$objWorksheet.Cells.Item(1, 1) = "HostName"
$objWorksheet.Cells.Item(1, 2) = "Result"
$objWorksheet.Cells.Item(1, 3) = "MachineIP"
$objWorksheet.Cells.Item(1, 4) = "Active Directory"

$machines = Get-Content .\machinelist.txt

$row=2

$machines | foreach-object{
$ping = $null
$iname = $null
$machine = $_
$ping = Test-Connection $machine -Count 1 -ea silentlycontinue
$checkAD = try {$comp = Get-ADComputer -Identity $machine -ErrorAction 
Stop
if ($comp){"Yes"}else{throw}
}
catch {"No"}

$objWorksheet.Cells.Item($row,4) = $checkAD

if($ping){

$objWorksheet.Cells.Item($row,1) = $machine
$objWorksheet.Cells.Item($row,2) = "UP"

$iname = $ping.IPV4Address.IPAddressToString

$objWorksheet.Cells.Item($row,3) = $iname

$row++}
else {

$objWorksheet.Cells.Item($row,1) = $machine
$objWorksheet.Cells.Item($row,2) = "DOWN"

$row++}
}

这是一个开始,使用Test-ConnectionResolve-DnsName ,假设您有一个由空格分隔的主机 IP 和名称列表,每个主机之间有一个回车:

$Assets = @"
127.0.0.1 localhost
255.255.255.255 fakehost
"@
$FailedPing = @()
$NoDNS = @()
$Assets -split "`r" | %{
    $ipaddress = ($_.split(' ')[0]).trim() 
    $hostName = ($_.split(' ')[1]).trim()
    Write-Host "IP: $ipaddress HOST: $hostName " 
    Try {
        Test-Connection -ComputerName $ipaddress -Count 2 -ErrorAction Stop | Out-Null
    }Catch {
        $FailedPing += [pscustomobject]@{IP=$ipaddress; HostName = $hostName}
    }
    Try {
        Resolve-DnsName -Name $hostName -ErrorAction Stop |  Out-Null
    }Catch {
        $NoDNS += [pscustomobject]@{HostName = $hostName;Problem = $Error[0].Exception}
    }

}
$FailedPing | ft 
$NoDNS | ft

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM