目前我正在研究脚本以自动化IE中的进程以添加计算机名称及其MAC,以便我们可以对其进行映像。该页面有两个字段,一个用于MAC,另一个用于计算机名称,然后添加新按钮。我不得不通过提交后退出com对象来避免从页面弹出一个相当sl solution的解决方案。使用Powershell操纵CSV
我对Powershell还没有太多的经验,也没有使用CSV的经验,所以我在做这项工作时遇到了一些麻烦。我的目标是让脚本读取一行中的两个条目填写正确的字段,然后提交它,然后移动到下一行并重复。
现在它所做的是填充两个字段中未定义的字段,然后提交并重复。
编辑:我已经编辑了我的代码,所以它确认了什么试图阅读。 This is what the results look like.我相信@WalterMitty对$ ie.document.getElementsByName行有些问题,我只是试过$ ie.document.getElementById但没有填写任何字段。读取CSV似乎没有问题,但是输入正确读入字段的信息确实存在问题。
这是CSV的样子。
NewComputerName,NewMACAddress
ComputerName1,111122223333
ComputerName2,112233446677
ComputerName3,AAAABBBBCCCC
ComputerName4,AABBCCDDEEFF
这就是我的代码目前的样子。
cls
$URL = ""
$iterator = 1;
$csv = Get-Content C:\example1.csv
foreach($row in $csv)
{
#starts IE
$ie = new-object -ComObject "InternetExplorer.Application"
$ie.visible = $true
$ie.navigate($URL)
while($ie.Busy -eq $true) { start-sleep -Milliseconds 100 }
($ie.document.getElementsByName("mc_id") |select -first 1).value = $_.NewComputerName;
($ie.document.getElementsByName("mac_id") |select -first 1).value = $_.NewMACAddress;
$ie.document.forms | Select -First 1| % { $_.submit() };
$ie.quit()
$iterator++
write-host "$iterator new ID(s) added"
write-host $row.NewComputerName - $row.NewMACAddress
}
使用'Import-CSV'而不是'Get-Content',当你循环访问$ csv'中的$行时,使用'$ row'而不是'$ _'来访问事物。 – TessellatingHeckler
仍然似乎吐出了未定义。 –
[...不,不是?](http://i.imgur.com/Owaeudn.png)。 – TessellatingHeckler