以下不起作用。我理解我的写作方式并不是最有效的,但我很难学习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'}
}
}
欢迎任何指导和感激
答案 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