2

我想制作一个 shell 脚本,通过创建网络连接到我的 macbook pro 上的隐藏无线网络。但是,我只想在需要时连接到该网络,并且为了防止机场自动连接,我必须从钥匙串中删除网络密码。

到目前为止,我有:

networksetup -setairportnetwork en1 $ssid $networkpassword
networksetup -removepreferredwirelessnetwork en1 $ssid

我还知道在 OSX 10.7 中该security命令可以修改钥匙串。

无论如何,我将不胜感激有人可以给我的任何帮助。如果可行,我也愿意使用 applescript 或其他东西。谢谢你。

4

1 回答 1

1

我想到了。我使用的命令是:

sudo security delete-generic-password -l $ssid "/Library/Keychains/System.keychain"

sudo 是必需的,因为此钥匙串位于系统库中。security还包含更多删除和有用的命令,您可以指定如何在此命令中指示位置。


编辑:我在使用这个命令时遇到了一些麻烦,然后回过头来得知我可以使用另一个命令来完全不记得如果我找到它之前会使用的网络。使用此选项,您可以使用适配器和 networksetup 选项做很多事情。

这是我的最终脚本,它首先以 root 身份运行。然后它将系统偏好更改为不记住新网络。然后它会断开与任何当前网络的连接。然后它添加新网络。最后,它使系统记住新的 wifi 网络。

sudo -i
sudo /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport prefs RememberRecentNetworks=NO
sudo /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -Z
networksetup -setairportnetwork en1 $ssid $password
sudo /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport prefs RememberRecentNetworks=YES
于 2013-01-23T06:44:15.867 回答