0

我正在使用创建本地共享文件夹的 PowerShell 脚本。

function shareCacheFolder() {
  $Sharename = 'cacheFolder'
  $Foldername = 'c:\cacheFolder'
  if (!(Get-WmiObject Win32_Share -Filter "name='$Sharename'")) {
    $Shares = [WMICLASS]"Win32_Share"
    $Shares.Create($Foldername, $Sharename, 0)
  }
}

这似乎适用于大多数机器。但不是我的。

我得到这个输出:

__属:2
__CLASS : __PARAMETERS
__超类:
__DYNASTY : __参数
__RELPATH :
__PROPERTY_COUNT : 1
__派生:{}
__服务器 :
__命名空间:
__小路 :
返回值:8
PS计算机名称:

我也尝试过使用这个约定:

function shareCacheFolder() {
  $path = "c:\cachefolder"
  $name = "cachefolder"
  $type = 0
  $password = ""
  $description = ""
  $max = 100
  $access = $null
  if (!(Get-WmiObject Win32_Share -Filter "name='$Sharename'")) {
    Invoke-WmiMethod -Class Win32_Share -Name Create -ArgumentList $access, $description, $max, $name, $password, $path, $type
  }
}

我正在使用 PowerShell 版本 3。

4

1 回答 1

0

文件所述,返回代码 8 表示“未知错误”。该命令在语法上是正确的,并且可以在其他计算机上运行,​​因此问题不在于您的代码。该问题也不太可能是由共享名称冲突、缺少文件夹、权限问题等引起的,因为这些会导致不同的错误/返回代码。

我怀疑您的系统上的服务器服务没有运行。使用以下命令进行验证:

Get-Service 'Server' | Select-Object StartType, Status | Format-List

启动类型应为“自动”,状态应为“运行”。如果不是,请更改启动类型并像这样启动服务:

Get-Service 'Server' | Set-Service -StartupType 'Automatic'
Start-Service 'Server'
于 2016-02-28T13:44:40.397 回答