我需要完成下面的场景,为此我必须创建几个powershell脚本来完成它。
环境:Windows服务器和Windows客户端
场景1-创建在每天特定时间运行的脚本(使用任务计划程序)。此脚本会将当前计算机的主机名和IP地址推送到带有特定标头的csv文件中(我们将其称为“主机名”和“IP地址”)。这些标头不应更改,因为这些脚本同时从多台计算机运行,并且所有计算机数据应该附加到每个头,而不是在此操作继续时覆盖它们。2-从服务器,(15分钟后)获取此“计算机”列表(csv),则应使用它们的IP地址对每台计算机进行ping检查。如果在这些远程计算机上ping成功,它应该在每台计算机的名称及其IP地址旁边显示“此计算机已启动”。如果ping不成功,它应该在每台计算机的名称及其IP地址旁边显示“此计算机已关闭”。在这些“状态”信息之上,应该有另一个标头(比如“IsAlive”)。这个标头也应该被添加到csv中。
因此,通过这种设置,我可以了解哪些计算机在特定时间处于运行状态,在我触发它们的一些操作后,我可以了解它们是否仍处于运行状态。
老实说,我不能花很长的时间,我开始写一个脚本的第一步,但我不能合并的头部与值添加在他们下面。
$header="Hostname"
$outputfile="\\10.10.10.40\reports\upcomputers.csv"
Add-Content $outputfile -Value $header
$hostname >> $outputfile
如果我使用这个脚本(即使只有一个头),它会在主机名的每个字母后面添加“NULL”,并且不会在“Hostname”头下面附加其他主机名。
另外,我不知道从哪里开始添加第三个头(IsAlive),并添加每个Test-NetConnection查询的输出作为检查它们的IP地址。
最后,我的输出应该是这样的;
为第一步;
为第二步;
感谢您的帮助和信息
在请求的正文中陈述
1条答案
按热度按时间fcg9iug31#
**阶段2:**使用PSCustomobject执行此操作得简单方法.请查看下面得示例代码:
主机名和IP地址输入将作为输入。注意:您的输入csv文件应包含主机名IP地址作为标题。**阶段1:**为什么不?
有多种方法来获得一台计算机的IP地址,我使用了Get-WMI对象。你可以使用其他简单的方法,如测试连接或获取网络IP地址。
要了解更多信息,请访问:请参见[PsCustomObject]:https://learn.microsoft.com/en-us/powershell/scripting/learn/deep-dives/everything-about-pscustomobject?view=powershell-7.3