2012-07-17 77 views
0

我正在尝试使用New-PSDrive来装载共享,然后从中读取项目。New-PSDrive交互式工作,但不能在PowerShell脚本中

function NRLFind ([object[]]$Releases) { 
    $relvols = @{} 

    New-PSDrive -Name NRL -PSProvider FileSystem -Root "\\FileServer\shareName" 
    foreach ($dir in $(Get-Item NRL:\* | where {$_.PsIsContainer})) { 
     foreach($release in $Releases) { 
      if ($d = get-item $($dir.FullName + '\' + $release.glob) -ErrorAction:SilentlyContinue) { 
       if(! $relvols[$release.name] -or $relvols[$release.name].LastWriteTime -lt $d.LastWriteTime) { 
       $relvols[$release.name] = $d 
       } 
      } 
     } 
    } 
    $relvols 
} 

这是轰炸上运行New-PSDrive来行,用错误:新-PSDrive来:驱动器根目录“\文件服务器\共享名”不存在,或者它不是一个文件夹。

有趣的部分是New-PSDrive命令在交互式运行时工作,但不在PS脚本中。

任何想法?

+0

我发现了另一块拼图。我在我们的CruiseControl.net CI服务器进程中使用这个PS脚本。 PS脚本在从命令行运行时起作用,但在作为服务器进程运行时不起作用。 – 2012-07-17 22:35:12

回答

0

确保运行脚本的用户有权访问共享。