使用Powershell中的提示窗口检查错误

时间:2012-11-16 14:17:08

标签: powershell

以下不起作用。我理解我的写作方式并不是最有效的,但我很难学习PowerShell。

我正在尝试使用此脚本:

首先,在本地计算机上找到IP地址(我这里没有包含该脚本的位,但它在$ IPAddress变量中由“169.254.2.2”表示)

其次,如果IP地址有效(即不是169.254),则继续使用脚本(由'Write-Host'表示)。如果它无效,则提示用户,以便他们可以采取措施,然后当他们单击确定时,再次找到IP地址,然后循环,直到IP地址有效。

脚本类型有效,直到我将IPAdressCheck函数放在脚本的那一部分,然后它什么都不做

function IPDialog {

$IPDia= [System.Windows.Forms.MessageBox]::show( "This computer doesn't have a vaild IP Address. 
Please resolve and click OK." , "No Network Connection" , 1 ) 
if ($IPDia -eq "OK" ){IPAddressCheck} 
else
{
exit
}
  }


 function IPAddressCheck{
$IPAddress = "169.254.2.2"
switch ($IPAddress){
    {($_ -like "0.*") -or ($_ -like "169.254.*")} {IPDialog}
    default {write-host 'Continue Script'}
      }

}   

欢迎任何指导和感激

1 个答案:

答案 0 :(得分:0)

我坐下来思考了一段时间后才开始工作。

这是工作代码,我认为它有效,我只是偏爱测试它。如果有人希望分享他们对如何改进或改进它的意见,我很乐意听到它,但我很高兴能让它发挥作用。

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