我们使用以下代码在 Windows 7 中创建共享: public static CreateUncShareResult Create(string path, string shareName, string description, AccessControlList permissions) { ManagementClass managementClass = new ManagementClass(WIN32_Share); const string METHOD_NAME = "Create"; ManagementBaseObject inParams = managementClass.GetMethodParameters(METHOD_NAME); inParams["Description"] = description; inParams["Name"] = shareName; inParams["Path"] = path; inParams["Type"] = 0x0; // Disk Drive inParams["Access"] = permissions; ManagementBaseObject outParams = managementClass.InvokeMethod(METHOD_NAME, inParams, null); return (CreateUncShareResult)(outParams.Properties["ReturnValue"].Value); }public enum CreateUncShareResult: uint { Success = 0, [Description("Access Denied")] AccessDenied = 2, [Description("Unknown failure")] UnknownFailure = 8, [Description("Invalid Name")] InvalidName = 9, [Description("Invalid Level")] InvalidLevel = 10, [Description("Invalid Parameter")] InvalidParameter = 21, [Description("Duplicate Share")] DuplicateShare = 22, [Description("Redirected Path")] RedirectedPath = 23, [Description("Unknown Device or Directory")] UnknownDeviceOrDirectory = 24, [Description("Net Name Not Found")] NetNameNotFound = 25,}它一直运行良好。最近,我们得到了新的 Windows 10 开发机器。上面的代码现在失败了,返回值 2:拒绝访问。我们一直在寻找高低的原因,为什么会发生这种情况。运行此代码的用户具有本地管理员权限。Windows 7 和 Windows 10 之间是否存在导致这种情况的差异?是否需要在 Windows 10 中授予某些在 Windows 7 中不需要的特殊权限?编辑:我们在 Asp.Net MVC 5 Web 应用程序中执行此操作,而不是在桌面应用程序或 Windows 服务中执行此操作。我们确实有一个运行此代码的自动化测试,并且会出现相同的结果。调用此代码的代码提升(模拟)作为计算机本地管理员的用户。
1 回答
手掌心
TA贡献1942条经验 获得超3个赞
事实证明,我们的首席系统工程师给出了这个答案。这是UAC的问题。但是,如上所述,由于这是一个 Web 应用程序,因此该解决方案不涉及使用应用程序清单提升权限。我需要编辑组策略。
使用 gpedit:
计算机配置 -> Windows 设置 -> 安全设置 -> 本地策略 -> 安全选项
需要禁用“用户帐户控制:在管理员批准模式下运行所有管理员”的设置。
- 1 回答
- 0 关注
- 213 浏览
添加回答
举报
0/150
提交
取消