我有以下情况:
- 我需要在 Windows 7 计算机上共享 C 盘根目录中的文件夹。
- 该共享应该为本地网络上的其他机器上的任何人提供读/写访问权限。
- Windows 7 计算机不属于域的一部分。
- 我需要从代码(命令行工具)建立共享。
- 如果可能的话,代码应该可以在任何本地化的 Windows 7 安装上运行
据我了解,我必须处理两种类型的权限:
- 分享权限和
- NTFS权限。
两者都需要允许读/写访问才能使最终解决方案发挥作用。
现在,我们假设要共享的文件夹名为C:\共享文件夹。我以提升的权限使用命令行工具创建文件夹,然后提供共享:
MD C:\共享文件夹
NET SHARE 共享名=C:\SharedFolder /GRANT:Everyone,Full
icacls c:\SharedFolder /grant:r *S-1-1-0:F
步骤 1 创建文件夹,步骤 2 创建具有正确共享权限的共享,步骤 3 添加所需的 NTFS 权限,对吗?(请注意,“S-1-1-0“只是“Everyone”对应的SID。”
通过这三个步骤,我最终得到了所需的共享,但是当我从另一台机器连接到共享时,我只有只读访问权限!这是为什么呢?
如果我右键单击 Windows 7 计算机上的共享文件夹,我会得到以下信息:
请注意,只读复选框有点标记!
我可以通过单击只读标记(然后单击“确定”或“应用”)轻松解决此问题,但我如何通过代码执行此操作?为什么有必要这样做?
另请注意,净份额命令使用术语“每个人”在其/授予开关。这是有问题的,因为在德语 Windows 7 中,您应该写“Jeder”而不是“Everyone”,而在丹麦语 Windows 中,正确的单词应该是“Alle”。
这个语言问题不是问题伊卡克尔斯命令,因为在这里我可以使用相应的 SID(如图所示)。但我如何才能让净份额命令也适用于任何语言吗?