目前我正在研究腳本以自動化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