使用 Windows Powershell 创建具有权限的共享

use*_*666 9 windows powershell network-share

使用 Powershell 如何创建共享并设置访问权限。

例如如下

  • 创建名为“public”的共享,映射到“路径 c:\shares\foo”
  • 允许 DOMAIN1\Users 对共享具有只读访问权限(这并不意味着在文件上设置 acls,而是在共享上)

Mat*_*son 7

这应该可以解决问题:

net share "Public=c:\shares\foo" "/GRANT:Users,READ"
Run Code Online (Sandbox Code Playgroud)

当然,您需要使用管理权限启动 PowerShell,具体取决于您在何处/如何执行此操作。


spl*_*tne 7

使用 Win32_Share 创建方法。例子:

(Get-WmiObject -List -ComputerName . | Where-Object -FilterScript 
{$_.Name -eq "Win32_Share"}).InvokeMethod("Create",
   ("C:\FolderToShare","ShareName",0,100,"Share description"))
Run Code Online (Sandbox Code Playgroud)

您可以在 MSDN 上找到此方法的文档。

uint32 Create(
  [in]  string Path,
  [in]  string Name,
  [in]  uint32 Type,
  [in]  uint32 MaximumAllowed,
  [in]  string Description,
  [in]  string Password,
  [in]  Win32_SecurityDescriptor Access
);
Run Code Online (Sandbox Code Playgroud)

参数:

  • 路径 - Windows 共享的本地路径。例如,“C:\FolderToShare”。
  • 名称 - 将别名传递给在 Windows 系统上设置为共享的路径。例如,“共享名”。
  • 类型 - 传递共享资源的类型。类型包括磁盘驱动器、打印队列、进程间通信 (IPC) 和通用设备。可以是以下值之一。
    • 0 - 磁盘驱动器
    • 1 - 打印队列
    • 2 - 设备
    • 3 - 工控机
    • 2147483648 - 磁盘驱动器管理员
    • 2147483649 - 打印队列管理员
    • 2147483650 - 设备管理员
    • 2147483651 - IPC 管理员
  • MaximumAllowed - 限制允许同时使用此资源的最大用户数。示例:100。该参数是可选的。
  • 描述 - 描述共享资源的可选注释。该参数是可选的。示例:“共享描述”。
  • 密码 - 共享资源的密码(当服务器以共享级安全运行时)。如果服务器以用户级安全运行,则忽略此参数。该参数是可选的。
  • 访问 - 用户级别权限的安全描述符。安全描述符包含有关资源的权限、所有者和访问能力的信息。

有关如何设置访问权限的详细信息,请参阅 MSDN 上的此页面:Win32_SecurityDescriptor Class。本文也是一个很好的起点:WMI 任务:文件和文件夹