【发布时间】:2022-12-09 22:51:53
【问题描述】:
在 macOS(10.14 及更高版本)上运行我正在使用我发现的 shell 脚本:
显示一个新计算机名称的输入窗口,然后让它更改以下内容:计算机名,
主机名,
本地主机名。该脚本不断失败并出现以下错误:SCPreferencesSetLocalHostName() 失败:参数无效.
当我删除行时 - scutil --set LocalHostName "$MacName"
该脚本运行时没有错误。
我让它访问本地主机名的方式中的某些内容不正确。
defaults=/usr/bin/defaults
CurrentUser=$(/usr/sbin/scutil <<< "show State:/Users/ConsoleUser" | awk '/Name :/ && ! /loginwindow/ {print $3}')
MacName=$(sudo -u "$CurrentUser" /usr/bin/osascript -e 'tell application "System Events" to set MacName to text returned of (display dialog "Enter the new Computer Name:" buttons "Continue" default button "Continue" default answer "" with icon 1)')
scutil --set ComputerName "$MacName"
scutil --set HostName "$MacName"
scutil --set LocalHostName "$MacName"
defaults write /Library/Preferences/SystemConfiguration/com.apple.smb.server NetBIOSName -string "$MacName"
/usr/bin/dscacheutil -flushcache```
【问题讨论】:
-
您能否添加一行 a-la
echo "$MacName" | xxd -g1以查看返回的文本的外观(包括任何意外字符)并分享? -
您要将什么设置为计算机名称?我没有对此进行测试,但如果名称中的空格之类的东西会导致这样的错误,我不会感到惊讶。