macOS Sierra : AppleScript 마운트 볼륨이 계속 로그인을 요구합니다 -e mount volume

여러 OS X 버전에서 다음을 사용했습니다.

/usr/bin/osascript -e mount volume "smb://yourserver" as user name  "yourusername" with password yourpassword

네트워크 공유가 가능하다면 훌륭하고 조용하게 마운트되었습니다.

최근에 macOS Sierra (10.12 공개 베타, 빌드 16A238m)를 설치했지만 스크립트가 계속 작동하지만 “yourusername”및 “yourpassword”값으로 미리 채워진 로그인 대화 상자가 항상 표시됩니다. 공유를 마운트하려면 사용자는 여전히 “연결”을 클릭해야합니다.

베타 버전에서 “버그”인지 (Apple의 피드백 앱으로보고 했는가) 아는 사람이 있습니까?

AppleScript 문서 “마운트 볼륨” 도 참조하십시오.



답변

macOS Sierra 10.12에서 Apple이 위 의 mattdwen의 Open Radar 링크에 언급 된 티켓에 응답했을 때 ,

루트가 아니면 더 이상 / Volumes에 항목을 만들 수 없습니다.

또한, 애플 스크립트의 최선의 이해 마운트 볼륨 명령은 마운트 지점을 지정하는 방법이 결과적으로 그것을하지 않는다는 것입니다 아래 마운트 볼륨 /Volumes파인더의 표준 메커니즘을 통해. 따라서 AppleScript를 통해 할 수 있다고 생각하지 않습니다.

그러나 다른 방법이 있습니다. 하위 수준 mount명령을 사용하여 동일한 작업을 수행 할 수 있습니다 .

mkdir -p ~/mnt
mount_smbfs "//my_username:my_password@my_hostname/share" ~/mnt

이 방법으로 볼륨을 마운트하면 데스크탑에 일반 “볼륨”아이콘이 나타나고 ~/mntFinder를 통해 사용자 디렉토리를 탐색 할 때 디렉토리가 “공유”로 나타납니다.

이 접근 방식에서 누락 된 한 가지는 로그인 자격 증명을 키 체인에 저장하는 것입니다. 그렇게하려면 조금 더 스크립팅해야합니다. 이 같은.

비밀번호를 저장하십시오.

security add-generic-password -a my_username -s my_hostname -w my_password

비밀번호를 검색하고 공유를 마운트하십시오.

pass=$(security find-generic-password -a my_username -s my_hostname -w)
mount_smbfs "//my_username:${pass}@my_hostname/share" ~/mnt

참고 : 비밀번호에 특수 문자가있는 경우 다음과 같이 URL을 인코딩해야합니다.

pass='my !@#%%^& password'
pass=$(php -r "echo urlencode(\"$pass\");")
>>> my+%21%40%23%25%25%5E%26+password


답변

이것은 macOS Sierra 10.12.2에서 Apple에 의해 수정되었습니다.

https://support.apple.com/en-us/HT207112


답변