C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ツリー一括表示

共有フォルダのアクセス権を取得時、一部SIDで返却されてしま /kawauso (19/05/14(Tue) 09:58) #90923
Re[1]: 共有フォルダのアクセス権を取得時、一部SIDで返却され.. /キングダム (19/05/14(Tue) 21:01) #90953


親記事 / ▼[ 90953 ]
■90923 / 親階層)  共有フォルダのアクセス権を取得時、一部SIDで返却されてしま
□投稿者/ kawauso (1回)-(2019/05/14(Tue) 09:58:25)

分類:[C#] 

お世話になります。

■IDE
VS2017
■言語
C#

共有フォルダのアクセス権を取得したいのですが、一部SIDで返却されてしまうものがあります。

端末AとBがあり、
端末Aはドメイン参加なし
端末Bはドメイン参加

IdentityReference sid = rule.IdentityReference;
→この時点で、ドメインのアカウントはSIDとなってしまいます。
NTAccount account = (NTAccount)sid.Translate(typeof(NTAccount));
→このメソッドでSIDからアカウント名にできると思ったのですが、以下の例外が発生します。

System.Security.Principal.IdentityNotMappedException: ID 参照の一部またはすべてを変換できませんでした。

端末Aから、端末Bを参照した際に、SIDからアカウント名取得することは技術的に不可能でしょうか?

--------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.IO;
using System.Security.AccessControl;
using System.Security.Principal;
using System.Text;

namespace ConsoleApp29 {
    class Program {
        static void Main(string[] args) {

            string targetPath = string.Empty;

            // 共有フォルダ
            targetPath = @"\\192.168.1.1\HOGE";

            var userList = new List<string>();

            StringBuilder st = new StringBuilder();

            foreach (FileSystemAccessRule rule in security.GetAccessRules(true, true, typeof(NTAccount))) {
                IdentityReference sid = rule.IdentityReference;
                NTAccount account = (NTAccount)sid.Translate(typeof(NTAccount));

                st.AppendLine(account.Value);
            }

            Console.WriteLine(st.ToString());

        }
    }
}
--------------------------------------------------------------

[ □ Tree ] 返信 編集キー/

▲[ 90923 ] / 返信無し
■90953 / 1階層)  Re[1]: 共有フォルダのアクセス権を取得時、一部SIDで返却されてしま
□投稿者/ キングダム (25回)-(2019/05/14(Tue) 21:01:03)
No90923 (kawauso さん) に返信

ハイパー適当で恐縮ですが
ググったところVBScriptで実装してる記事がありましたので
技術的には可能そうです、.NETでどう書くのかは私にはさっぱりわかりませんけれど

SIDからユーザ名を逆引きする
https://pnpk.net/cms/?p=1375
[ 親 90923 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -