脚本
# Save this as tcpping.ps1
param (
[string]$hostname,
[int]$port
)
$t1 = [System.Diagnostics.Stopwatch]::StartNew()
$result = Test-NetConnection -ComputerName $hostname -Port $port -WarningAction SilentlyContinue
$t1.Stop()
if ($result.TcpTestSucceeded -eq $true) {
Write-Output "Connected to $hostname on port $port - Time: $($t1.ElapsedMilliseconds)ms"
} else {
Write-Output "Failed to connect to $hostname on port $port"
}
执行结果:
PS D:\桌面> powershell -ExecutionPolicy Bypass -File .\tcping.ps1 -hostname wiki.lxfsite.com.cn -port 80
Connected to wiki.lxfsite.com.cn on port 80 - Time: 8335ms
您遇到的错误是由于 PowerShell 执行策略限制导致的,这种策略用于帮助防止在您的系统上运行未经授权的脚本。要解决这个问题,您可以临时或永久更改 PowerShell 的执行策略。请按以下步骤操作:
如果您只想临时运行脚本,而不更改系统的执行策略,可以使用以下命令:
powershell -ExecutionPolicy Bypass -File .\tcping.ps1 -hostname wiki.lxfsite.com.cn -port 80
这将绕过执行策略,仅用于当前脚本的执行。
要永久更改执行策略,可以按以下步骤进行:
以管理员权限打开 PowerShell:
检查当前的执行策略:
Get-ExecutionPolicy
更改执行策略:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser
注意:Unrestricted 将允许运行所有脚本,但有潜在的安全风险,建议仅在了解风险的情况下使用。
确认更改:
更改生效后,您可以再次运行脚本:
.\tcping.ps1 -hostname wiki.lxfsite.com.cn -port 80
希望这样可以解决您运行 PowerShell 脚本时遇到的问题。如果有其他问题或者进一步的疑问,请随时告知。