连接到 smb 共享时检查用户名和密码的苹果脚本
Posted
技术标签:
【中文标题】连接到 smb 共享时检查用户名和密码的苹果脚本【英文标题】:apple script to check user name and password when connecting to smb share 【发布时间】:2016-05-29 19:30:24 【问题描述】:-- Applescript to ask for username/password. repeats if incorrect.
repeat
-- Ask for user name
set userName to text returned of (display dialog "enter your user name" with title "User Name" default answer "" buttons "Cancel", "Okay" default button 2)
-- Asks for password
set myPassword to text returned of (display dialog "enter your password" with title "User Name" default answer "" buttons "Cancel", "Okay" default button 2 with hidden answer)
-- Sets users network share path
set userShare to "smb://" & userName & ":" & myPassword & "@ourserver/usershare/" & userName & ""
try
-- Attempts to mount the above location
mount volume userShare
-- This where the script pauses on the OSX connect to server prompt
--checks to see if users share is mounted in /volumes/
if " & userName & " is in (do shell script "/bin/ls /volumes") then
--exits loop
exit repeat
end if
end try
end repeat
我拥有一个 iMac 实验室,教师现在需要学生使用本地帐户,但要访问他们的网络共享。 iMac 已加入 Active Directory,但在这种情况下,孩子们以通用本地“学生”帐户登录。
我有一个要求用户输入用户名和密码的applescript,但实际上只有在提供的用户名和密码正确时才有效。否则,当输入错误的用户名或密码时,会启动“连接到服务器”提示。
我正在尝试查看是否有办法处理此提示,或者如果输入的用户名不正确,则完全跳过它。目前,提示似乎基本上是“暂停”脚本。如果我按下取消,脚本会再次启动,用户可以重新输入用户名和密码。
这是由年轻的小学生使用的,因此限制错误对教师很有帮助。
有什么想法吗?我认为我正在寻找一种将凭据传递到我们的服务器的方法,看看它们是否正确,然后尝试安装网络共享。
【问题讨论】:
我认为问题是指令“挂载卷服务器”。服务器一词未定义。您不会收到脚本错误,因为您处于“尝试”块中。我建议更改为“挂载卷 UserShare”。 (UserShare 在上面的行中定义)。 我对我的原始文件进行了一些编辑,以使名称更加通用以用于问题目的,但错过了一个。编辑在这里有正确的名字。 自从您编辑后,它现在按预期工作了吗? 【参考方案1】:通过使用 ldapsearch 绑定到 AD 并验证用户名和密码,我最终找到了我要查找的内容。
【讨论】:
以上是关于连接到 smb 共享时检查用户名和密码的苹果脚本的主要内容,如果未能解决你的问题,请参考以下文章
使用 Java 连接到远程共享文件夹时 SMB API 出现问题