【问题标题】:Script to Set LocalHostName failed with Invalid argument设置 LocalHostName 的脚本失败,参数无效
【发布时间】: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 以查看返回的文本的外观(包括任何意外字符)并分享?
  • 您要将什么设置为计算机名称?我没有对此进行测试,但如果名称中的空格之类的东西会导致这样的错误,我不会感到惊讶。

标签: macos shell


【解决方案1】:

我有相同的脚本和问题(实际上加入了stackoverflow来回答这个问题,所以我对错误使用答案框感到抱歉)

我的脚本具有“computer-$variable”而不是“$variable”,并且为计算机名称执行 computer-.localized 变量。

您的脚本可能会输出 .localizedvariable 吗?

我建议它尝试对 localhostname 做同样的事情,但 localhostname 不喜欢除了“ - ”之外的任何东西

如果我在本地运行脚本,它工作正常,但使用 MDM 时会出现此错误。

【讨论】:

    猜你喜欢
    • 2011-04-21
    • 1970-01-01
    • 1970-01-01
    • 2012-02-29
    • 1970-01-01
    • 2019-04-27
    • 1970-01-01
    • 2020-09-16
    • 2021-09-22
    相关资源
    最近更新 更多