powershell - 用于提取主机名列表的 powershell 脚本,确认服务器已启动并使用主机名连接到 url 并提取独特的东西
问题描述
在 PowerShell 中非常绿色,但在批处理和 shell 脚本方面非常好。打算使用 curl 但确实需要它在 PowerShell 中工作,并希望有人有一个例子让我开始。我需要一个脚本来根据 Web 内容识别两种类型的 IoT 设备中的一种。我有大约 20k 台设备,我们需要识别这些设备才能在 Cyberark 中管理他们的密码,具体取决于哪个设备将取决于将其分配到哪个平台。
我想在文本文件中提供主机名列表,脚本将确认主机已启动并响应,然后连接到主机 URL 并提取唯一的内容以识别设备类型和输出主机名、设备类型 A 或 B 或主机名,不响应。这些物联网设备会根据所连接的电池类型而变化,我们无法轻松识别哪些电池。
解决方案
这不是一个完整的脚本,但它可以帮助您开始......请参考以下链接以使用 Invoke-webrequest https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility /invoke-webrequest?view=powershell-7.2
$devices = Get-Content C:\PS\ServerNames.txt
$port = "5432" #sample port number
foreach ($device in $devices){
$connection = New-Object System.Net.Sockets.TcpClient($device,$port)
if ($connection.Connected) {
$status = "Success"
#$fromwebrequest = Invoke-WebRequest -uri "https://yoururl" (use Invoke-webrequest instead of curl)
} else {
$status = "Not responding"
}
[pscustomobject][ordered]@{
deviceName = $device
Status = $status
devicetype = $fromwebrequest.deviceType
#addotherparametershere
}
}
推荐阅读
- c - 创建控制台管道而不是文件管道
- java - 将 Double 与从方法计算的 Double 值相等会导致 0.0?可能是什么问题呢?
- ios - 如何在 Xcode 中使用 CMake 添加 Copy Bundle Resources 阶段?
- c# - asp.net核心项目中的不断错误
- php - PHPMailer 使用 oauth2 gmail SMTP - 如何防止电子邮件进入已发送文件夹?
- powershell - 如果进程冻结,则终止进程
- python - 遍历多个 Pandas 数据帧时删除行
- vb.net - 如何将一个按钮单击生成的变量传递给另一个按钮单击的函数?
- java - 独立消费者(SpringJMS)在 ActiveMQ 上创建了另一个队列
- xamarin.forms - Xamarin 表单和 Mdash 视频