后端SQL DB包含UNC路径形式的"托管文件夹".在PowerShell中使用SQL查询我有一个循环,它将通过这些文件夹工作,并对它们运行GCI操作,以计算出他们正在使用多少磁盘空间.
$managedFolder = "\\server\share\folder\subfolder"
Run Code Online (Sandbox Code Playgroud)
为了问题,$managedFolder如上所述.下面的失败命令:
$diskTrendsInitialUsage = "{0:N2}" -f ((Get-ChildItem $managedFolder -Recurse -Force | Measure-Object -Property Length -Sum).Sum / 1GB)
Run Code Online (Sandbox Code Playgroud)
现在如果我在PS控制台中手动运行此命令就可以了,它会拉回数据.但是只要它打包在脚本中,它就会失败并出现以下错误.该文件夹可从服务器访问,因为它可以在本地PS控制台会话中正常工作.
ERROR: Get-ChildItem : Invalid Path: '\\server\share\folder\subfolder'.
AddManagedFolder.psf (17): ERROR: At Line: 17 char: 42
ERROR: + $diskTrendsInitialUsage = "{0:N2}" -f ((Get-ChildItem $managedFolder -Recurse ...
ERROR: + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ERROR: + CategoryInfo : NotSpecified: (:) [Get-ChildItem], ArgumentException
ERROR: + FullyQualifiedErrorId : System.ArgumentException,Microsoft.PowerShell.Commands.GetChildItemCommand
ERROR:
Run Code Online (Sandbox Code Playgroud)
我很难过.
您的路径问题是它没有任何关于使用哪个提供程序的指示,因此PowerShell只使用当前的提供程序.如果当前提供者不是文件系统提供者,那么它将失败.因此,您需要在路径中指定提供程序,以允许PowerShell选择正确的提供程序,而不管当前提供程序:
$managedFolder = "filesystem::\\server\share\folder\subfolder"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1694 次 |
| 最近记录: |