0
下面的代碼有效,但我很想知道是否有更有效的腳本編寫方式,可能是使用循環,或者這是編寫這樣一個腳本的正確方法?我試圖使用循環語句時遇到的問題是,我無法弄清楚如何將$ Dialog「OK」放入循環中,如果IP地址仍然無效,它可以循環回到自身。這會更好地使用循環而不是函數嗎?
劇本的想法是讓IP地址(一的前三個八位),看看它是有效的(即不是0.0.0.0或169.254。*),把它作爲一個變量,如果它不是之前有效地拋出一個對話框給管理員修改它的機會,然後再次檢查,等等。
function Check-IP
{
$IPSiteAddress = Get-IPAddress
if ($IPSiteAddress -like "0.*" -or $IPSiteAddress -like "169.254.*") {DialogBox-IP}
}
function Get-IPAddress
{
(Get-WmiObject Win32_NetworkAdapterConfiguration |
Where { $_.IPAddress } |
Select -Expand IPAddress).split('.')[0..2] -join '.'
}
function DialogBox-IP
{
$IPDialog = [System.Windows.Forms.MessageBox]::show("This computer doesn't have a valid IP Address.
Please correct the IP Address and click OK, or click Cancel to exit.","No Network Connection",1)
if ($IPDialog -eq "OK") {Check-IP} else {exit}
}
Check-IP
$IPSiteAddress = Get-IPAddress
如果任何人有一個更好的解決方案,或有什麼想法,我一定會喜歡聽到他們
偉大的工作。謝謝 – idarryl