使用 networksetup 连接到 WPA2 Enterprise,但 AD 无需进行身份验证

使用 networksetup 连接到 WPA2 Enterprise,但 AD 无需进行身份验证

使用 networksetup 连接到 WiFi 网络时,WiFi 符号上会出现一个感叹号。它还显示网络偏好设置中没有 802.1x 身份验证。我尝试了以下命令:

networksetup -setairportnetwork $INTERFACE "$SSID"

我尝试在设置网络之前解锁钥匙串,并尝试将密码添加为最后一个参数。我还尝试在钥匙串中设置密码,以允许所有应用程序无限制地访问它。

我期望网络连接的方式与手动切换网络的方式相同。但是,通过 networksetup 连接后,查看网络偏好设置时,似乎没有身份验证。

在网络偏好设置下,手动切换后,状态为已连接,并显示“Wi-Fi 已连接到 XXXX,IP 地址为 XXXXXXX”。还显示“802.1X:默认”和“通过 EAP-PEAP (MSCHAPv2) 进行身份验证”

但是,使用脚本切换后,状态为“开启”,并显示消息“Wi-Fi 没有 IP 地址,无法连接到互联网。”也没有关于 802.1X 身份验证的消息。

答案1

我最终使用 Bash 脚本中的 Applescript 解决了这个问题。这模仿了用户手动切换 WiFi 网络的方式。

为了防止将来其他人遇到这个问题,这里是我创建的可以帮我解决此问题的 bash 函数。

switchWiFi () { 
osascript \
-e'tell application "System Events"' \
    -e 'tell process "SystemUIServer"' \
        -e 'click (menu bar item 1 of menu bar 1 whose description contains "Wi-Fi")' \
        -e "click menu item $1 of menu 1 of result" \
    -e 'end tell' \
-e 'end tell' 
}

答案2

此解决方案仅在 SSID 未隐藏时才有效。在我看来,您需要使用 networksetup 命令修复地址和脚本:

  • 如果丢失,则创建 WiFi 网络接口
  • 创建新位置
  • 加入 SSID
  • 修复地址
  • 重新启动 wifi 电源即可完成,测试时间..

相关内容