2016-02-28 138 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

您是否需要將其作爲管理員運行? (只是猜測)。另外你爲什麼不簡單地使用'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

似乎沒有工作:(啓動類型是空的,但服務正在運行。我做了你寫的,並導致相同的結果... –