2

PowershellCmdLetTest-Pathの使用に問題があります。

サーバー上に共有(\\ Servername \ MyShare $)を作成しました。これにより、1つのユーザーグループがファイルを作成してデータを追加し、他のユーザーはこれらのファイルを読み取って削除することができます。最初のグループは、Read-Permissions、Read-Attributesなどを含む他のことを行うことは許可されていません。

このフォルダで「ファイルのみを削除」グループのメンバーとしてTest-Pathを実行すると、falseが返されます。false[System.IO.Directory]::Exists()を返します。

Read-PermissionsまたはRead-Attributes権限を必要とせずにディレクトリが存在するかどうかをテストする方法を探しています。何か案は?

これは、これら2つの方法の正しい動作ですか?

よろしく、teamoo

4

1 に答える 1

3

さて、誰も冒険したくないのなら...

ここに解決策があります:

ディレクトリへのアクセスが許可されて.\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

したがって、後でテスト$Error[0].exception.gettype()するGet-Itemと、アクセスできない理由、つまり存在するかどうかを理解できます。それを「ブリコラージュ」と呼ぶこともできますが、それは解決策でもあります。例のフランス語で申し訳ありません。

于 2011-04-13T05:40:03.240 に答える