我在使用 Powershell CmdLet 测试路径时遇到问题。
我在服务器上创建了共享 (\\Servername\MyShare$),它允许一组用户仅创建文件并附加数据,而其他用户只能读取和删除这些文件。第一组不允许执行任何其他操作,包括读取权限、读取属性等。
如果我作为“仅删除文件”组的成员对此文件夹执行测试路径,则会返回 false。甚至[System.IO.Directory]::Exists()
返回假。
我正在寻找一种方法来测试目录是否存在,而不需要具有读取权限或读取属性权限。有任何想法吗?
这是这两种方法的正确行为吗?
问候,
团队
好吧,如果没有人愿意冒险......
这是一个解决方案:
我无权访问目录.\f1\f2
and .\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
所以如果你测试$Error[0].exception.gettype()
之后Get-Item
您可以理解为什么它不可访问,以及它是否存在。你可以称之为“拼凑”,但这也是一种解决方案。抱歉示例中的法语。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)