2016-02-28 11 views
0

Я использую сценарий PowerShell, который создает локальную папку общего доступа.Создать общую папку с помощью [WMICLASS] «Win32_Share»

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

Это, похоже, работает на большинстве машин. Но не по моему.

Я получаю этот выход:

__GENUS   : 2 
__CLASS   : __PARAMETERS 
__SUPERCLASS  : 
__DYNASTY  : __PARAMETERS 
__RELPATH  : 
__PROPERTY_COUNT : 1 
__DERIVATION  : {} 
__SERVER   : 
__NAMESPACE  : 
__PATH   : 
ReturnValue  : 8 
PSComputerName :

Я также попытался с помощью этой конвенции:

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.

+0

Вам нужно запустить его как admin? (просто гадать). Также почему вы не просто используете 'net share ...'? Введите 'net help share' для синтаксиса. – Swonkie

+0

Выполняется как администратор –

ответ

0

Как documented возвращения код 8 означает «неизвестная ошибка». Команда синтаксически корректна и работает на других компьютерах, поэтому проблема не в коде. Проблема также вряд ли может быть вызвана конфликтом имен разделов, отсутствующей папкой, разрешением и т. Д., Поскольку они могут вызывать разные коды ошибок/возврата.

Я подозреваю, что в вашей системе служба сервера не запущена. Убедитесь в том, что с помощью следующей команды:

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

Тип запуска должен быть «Автоматический», и статус должен быть «Запуск». Если это не так, измените тип запуска и запустите сервис, например:

Get-Service 'Server' | Set-Service -StartupType 'Automatic' 
Start-Service 'Server' 
+0

, который, похоже, не работает :(тип запуска был пуст, но служба была запущена. Я сделал то, что вы написали, и это приводит к такому же результату ... –