【问题标题】:Powershell: New-SMBshare cmdlet not working on remote serverPowershell:New-SMBshare cmdlet 在远程服务器上不起作用
【发布时间】:2014-07-03 05:17:50
【问题描述】:

我正在尝试制作一个多合一脚本,它将在服务器上创建一个共享文件夹,授予它(NTFS)权限,共享它,设置共享权限,然后设置 DFS 文件夹和目标。到目前为止,所有这些都运行良好(至少在个别部分),除了 Share 部分。

我的代码看起来不错。

为了测试,如果我在本地创建/许可共享,没有问题。示例:

New-SmbShare –Name test1 –Path C:\test -FullAccess Administrators

这很好用。

但是,如果我在服务器上尝试相同的操作,我会收到此错误:“文件名、目录名或卷标语法不正确。”示例:

New-SmbShare -name test1 -path \\server\e$\data -FullAccess 管理员

我不确定错误是什么意思(Google 也不是),但我想知道我是否输入了错误的服务器地址语法……或者是否可以使用 Powershell 创建远程共享?我在网上看到的每个示例都显示了本地创建。

谢谢!

【问题讨论】:

  • 您是否在服务器名称前使用了两个反斜杠?比如\\Server01\E$\Test?
  • 是的,我是,但出于某种原因,这些论坛中只有其中一个出现。我会把它们分开。
  • 如果您使用New-SmbMapping\\server\e$ 映射到像K: 这样的驱动器,然后使用New-SmbShare 共享K:\Data 目录怎么办?该命令似乎在 UNC 路径上阻塞。

标签: powershell share smb


【解决方案1】:

New-SmbShare cmdlet 将使用 cimsession 进行远程管理(通过 winrm)。

根据您的问题,这里是一个示例和下面的帮助参考。

$c = new-CimSession -ComputerName Server
New-SmbShare -Name test1 -Path E:\data -CimSession $c



PS C:\> get-help New-SmbShare -Parameter cimsession

-CimSession <CimSession[]>
    Runs the cmdlet in a remote session or on a remote computer. Enter a computer name or a session object, such as
    the output of a New-CimSession or Get-CimSession cmdlet. The default is the current session on the local computer.

    Required?                    false
    Position?                    named
    Default value
    Accept pipeline input?       false
    Accept wildcard characters?  false

【讨论】:

    猜你喜欢
    • 2017-04-23
    • 1970-01-01
    • 2015-10-15
    • 2015-12-28
    • 1970-01-01
    • 2018-01-30
    • 1970-01-01
    • 1970-01-01
    • 2018-04-01
    相关资源
    最近更新 更多