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

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

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

Re[1]: 共有フォルダのアクセス権を取得時、一部SIDで返却されてしま


(過去ログ 157 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■90923 / inTopicNo.1)  共有フォルダのアクセス権を取得時、一部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());

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

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

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

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


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -