여러 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
이 방법으로 볼륨을 마운트하면 데스크탑에 일반 “볼륨”아이콘이 나타나고 ~/mnt
Finder를 통해 사용자 디렉토리를 탐색 할 때 디렉토리가 “공유”로 나타납니다.
이 접근 방식에서 누락 된 한 가지는 로그인 자격 증명을 키 체인에 저장하는 것입니다. 그렇게하려면 조금 더 스크립팅해야합니다. 이 같은.
비밀번호를 저장하십시오.
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