连接到 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 共享时检查用户名和密码的苹果脚本的主要内容,如果未能解决你的问题,请参考以下文章

fedora 的windows共享

使用 Java 连接到远程共享文件夹时 SMB API 出现问题

使用 Kerberos 连接到 SMB 共享时出现 KrbException“消息流已修改 (41)”

安卓手机怎么共享海雀摄像头给苹果手机

无法用php连接到mysql

SMB连接电脑提示用户名密码错误怎么办