这是我的代码,$var.droppath
是一个有效的网络空间路径,我已经测试过了。
$map3 = new-PSDrive -name droppath -psprovider FileSystem -root $var.droppath
然后我就跑了
Get-PSDrive | ?{$_.Name -match "droppath"} | FT -AutoSize
得到结果:
Name Used (GB) Free (GB) Provider Root CurrentLocation
---- --------- --------- -------- ---- ---------------
droppath FileSystem \\network\sharespace\test1
为什么已用空间和可用空间都是空的?这是否意味着 get-psdrive 无法映射网络空间,或者我犯了什么错误?
答案1
Get-PSDrive 工具仅返回具有可用信息的提供商的可用和已使用信息。奇怪的是,PS 并不容易获取 PS-Drives 的信息,因为它实际上是一个别名,可能会映射到没有该信息的东西。PS-drives 仅在会话中存在,因此它们不是完整的操作系统级别映射。因此,您无法获得操作系统级别的信息,例如远程可用空间。
简单的解决方法是使用net use
并将其映射到真实驱动器号。完成后别忘了将其拆除。
更新我遗漏了这个链接:通过 powershell 查询不同的空闲共享空间,但每次都得到相同的结果其中有一些示例代码可以从 PS 进行映射并手动获取所需的数据。
答案2
Mark 是对的,但是查看有关 Get-PSDrive 的 TechNet 文章这里,您可以看到,通过使用 get-wmiobject 和 win32_logicaldisk 类,您可以非常轻松地获取可用空间和总空间。