我在使用Powershell CmdLet测试路径时遇到了问题。
我在服务器上创建了一个共享(\Servername\MyShare$),它允许一组用户只创建一个文件并附加数据,而其他用户只能读取和删除这些文件。第一组不允许执行任何其他操作,包括读取权限、读取属性等。
如果我以"drop files only“组成员的身份在此文件夹上执行Test-Path,它将返回false。即使是[System.IO.Directory]::Exists()也会返回false。
我正在寻找一种方法来测试目录是否存在,而不需要具有读取权限或读取属性权限。有什么想法吗?
这是这两种方法的正确行为吗?
问候,teamoo
发布于 2011-04-13 13:40:03
好吧,如果没人想冒险...
这里有一个解决方案:
不允许我访问目录.\f1\f2,并且.\f1\f3不存在。
PS C:\Silogix> Get-ChildItem .\f1\f2 -ErrorAction silentlycontinue
PS C:\Silogix> $Error[0].exception
L'accès au chemin d'accès 'C:\Silogix\f1\f2' est refusé.
PS C:\Temp\Temp> $Error[0].exception.gettype()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True UnauthorizedAccessException System.SystemException
PS C:\Silogix> Get-ChildItem .\f1\f3 -ErrorAction silentlycontinue
PS C:\Silogix> $Error[0].exception.gettype()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True ItemNotFoundException因此,如果您在Get-Item之后测试$Error[0].exception.gettype(),您就可以理解为什么它不可访问,以及它是否存在。您可以将其称为"bricolage",但它也是一种解决方案。对于示例中的法语,我很抱歉。
https://stackoverflow.com/questions/5632908
复制相似问题