• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:objectSIDについて)

objectSIDについて

このQ&Aのポイント
  • 2003ActiveDirectory上のコンピュータアカウントをLDIFDEで吐き出すと(CSVDEでも良いのですが)、私のコンピュータのobjectSIDは「AQUAAAAAAAUVAAAAqv3j2rRJTZddJX69UQgAAA==」と表示されます。
  • 実際に私のコンピュータでPsGetSidを実行すると、「S-1-5-21-1409082233-1202660629-839522115」と表示されます。
  • 教えて頂きたいことは、以下の2点です。 1.objectSidをS-1-5の形式で表示するには、どうしたらいいのでしょう? 2.DC上でobjectSidのみを抜き出す(表示させる)方法をご教授ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • junkUser
  • ベストアンサー率56% (218/384)
回答No.1

psgetsid は現行のSIDの桁数に対応していないようですね。 GUIで確認するのでしたら、Windows Server 2008 のADSI エディタで確認できますよ。 strDN を確認したいコンピュータ アカウントに変更してください。 --- Option Explicit Const adTypeBinary = 1 Const adTypeText = 2 Const strDN = "CN=DC1,OU=Domain Controllers,DC=example,DC=lan" ' Const strDN = "CN=Administrator,CN=Users,DC=example,DC=lan" Dim adObject, rawSID On Error Resume Next Set adObject = GetObject("LDAP://" & strDN ) If Err.Number <> 0 Then WScript.Echo strDN & " に接続できません" WScript.Quit End If On Error Goto 0 WScript.Echo GetStringSID( adObject ) Function GetStringSID( objAccount ) Dim retStr, rawSID, arrSID Dim adStream, i, tmp, j retStr = "S-" rawSID = objAccount.Get( "objectSid" ) Set adStream = WScript.CreateObject("ADODB.Stream") adStream.Type = adTypeText adStream.Charset = "UTF-16" adStream.Open adStream.WriteText rawSID adStream.Position = 0 adStream.Type = adTypeBinary adStream.Position = 2 ReDim arrSID(UBound(rawSID)) For i=0 to UBound(rawSID) tmp = adStream.Read(1) If IsNull(tmp) Then Exit For arrSID(i) = AscB(tmp) Next adStream.Close retStr = retStr & arrSID(0) & "-" & arrSID(1) j = 3 Do While UBound(arrSID) >= j * 4 - 1 tmp = arrSID(j*4-1) * 256^3 + arrSID(j*4-2) * 256^2 + arrSID(j*4-3) * 256 + arrSID(j*4-4) j = j + 1 retStr = retStr & "-" & tmp Loop GetStringSID = retStr End Function ---

fineshot33
質問者

お礼

ありがとうございますm(_ _)m もう1つだけ質問させてください。 頂いたスクリプトをDC上で実行したところ、SIDが S-1-5-21-3672374698-2538424756-3179160925-2129と表示されました。 が、質問欄に記載したとおり、PsGetSidでは、 S-1-5-21-1409082233-1202660629-839522115と表示されます。 私のPCでレジストリを見てみると、PsGetSidで吐き出したSIDとは別にDC上で調査したSIDと(ほぼ)同じもの (S-1-5-21-3672374698-2538424756-3179160925)が存在していました。 これは、ドメイン参加時にDC側から割り振られたSIDという解釈で良いのでしょうか? 何卒宜しくお願い致します。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • junkUser
  • ベストアンサー率56% (218/384)
回答No.2

>S-1-5-21-3672374698-2538424756-3179160925 ここまではドメイン共通の部分なのでセキュリティ識別子としては不十分です。つまりSIDではありません。 #1 の冒頭にもすこし書きましたが、SIDの桁数が16進で8桁ぶん増えています。 したがって、PsGetSid ではドメインに使用しても正式なSIDが取得できないようです。

参考URL:
http://www.atmarkit.co.jp/fwin2k/win2ktips/307sid/sid.html
fineshot33
質問者

お礼

冒頭に桁数が・・・と仰っていたのはその事だったのですね。 すっきりしました。 大変、助かりました。 ご丁寧にご教授くださり感謝しております。 今後とも何卒宜しくお願い致します。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Windows2003 セキュリティグループ

    Windows2003のActiveDirectoryを使用しています。 とあるセキュリティグループの参加メンバをCSVで吐き出したいのですが、 C:\>ldifde -f c:\test.csv -d "CN=SG_AccsessUser,OU=FileAccess,OU=Groups ,OU=Group,OU=NK,DC=aa,DC=com" と入力し吐き出したCSVを見るとmemberの部分が全てSIDで表示されています。 SIDではなく、DomainUserアカウントで表示させたいのですが、どのようにすれば良いでしょうか。 (ldifdeのオプションは何を追加すればよいでしょうか?) ちなみにCSVDEでは文字化けしてしまい読み取りが不可能でした。 アドバイスを宜しくお願い致します。

  • ActiveDirectoryで制御の委任後の運用

    Win2003でActiveDirectoryを構築してます。 今、あるOUに対してアカウントuser01に制御の委任で、 「アカウントの追加・削除」の委任の設定をしようと思い、 設定は完了しました。 ここで、user01が実際にアカウントを追加したり、 削除する場合にはどうすればできるのでしょうか。 user01が、DCサーバにログインして、 ActiveDirectoryユーザとコンピュータの画面を立ち上げるのでしょうか。 よろしくお願いします。

  • ActiveDirectoryのCSVエクスポート

    お世話になっております。 ActiveDirectoryに登録されているユーザー情報をCSV形式の ファイルにエクスポートしたいのですが、どのようにすれば良いでしょうか。 抽出したい情報は、、、 ・ユーザーログオン名 ・説明 ・部署 ・表示名 の4点です。 コマンドプロンプトで「CSVDE」を使うというところまでは たどりついたのですが、上記抽出にはいたっていません。。。 サーバOSは、Windows2003ServerR2です。 以上、よろしくお願いします。

  • お世話になります。

    お世話になります。 ActiveDirectoryについての質問です。 Server:WindowsServer2003 R2 全ユーザーアカウントの作成日付を取得し、指定場所へ出力したい。 (1)以下のプログラムでは全ユーザーアカウントを対象にすることができません。 全ユーザーアカウントを対象とするにはどのように記述すればよいでしょうか。 ▼プログラム Set objUser = GetObject("LDAP://cn=userName,ou=Kanri,ou=jsystem,dc=domain,dc=co,dc=jp") Wscript.Echo objUser.WhenCreated (2)保存場所の指定方法及び、ファイル形式を指定して、保存するにはどのように記述すればよいで  しょうか。 以上、2点よろしくお願い致します。

  • 2000ServerからServer2003へのDC移行

    今までWindows2000ServerSP4で稼動してきたドメインコントローラ(旧DC)を 新しい別のWindowsServer2003マシン(新DC)に移行しようと思っています。 今までのドメインにはDCは旧DCの1台だけで、混在モードでした。 今まで取ってきた手順は以下の通りです。  1)旧DCにて『adprep /forestprep』『adprep /domainprep』を実行  2)新DCにDNSサービスをインストール  3)新DCの優先DNS(TCP/IPの設定)を旧DC(代替DNSは空白)  4)新DCにActiveDirectoryをインストール(dcpromo)し、DCに昇格  5)RIDマスタ、PDCマスタ、インフラストラクチャの操作マスタを新DCに変更  6)ドメイン名前付けの操作マスタを新DCに変更  7)スキーママスタの操作マスタを新DCに変更(mmcコマンド)  8)旧DC/新DCともに優先DNSを新DCに変更(代替DNSは空白)  9)NTDS Settingsのグローバルカタログのチェックを新DCでon、旧DCでoffに変更 10)旧DCをDCから降格させるべく、旧DCにてdcpromoを実行 この最後のステップで、「ActiveDirectoryを削除します」を行うと 「アカウントolddc$を含むドメインコントローラをドメインfoo.comで検索しています」 というダイアログがしばらく出た後、以下のようなエラーメッセージが出ます。 「ドメインfoo.comに適切なドメインコントローラが検出できませんでした。  ”指定されたドメインがないか、またはアクセスできません”」 ここで願いとしては新DCを見つけてほしいのですが、うまくいきません。 DOSプロンプトからpingでnewdc.foo.comもolddc.foo.comも、 お互いにFQDN名で通っているので、見えてはいると思うのですが。。。。 何か確認すべきポイントなどありましたら教えてください。

  • TigerのみAD環境の共有フォルダにアクセス不可

    TigerのみActiveDirectory環境で共有フォルダにアクセスできない状況です。 原因及び対処方法がわからず、困っております。 ご教示頂けますようお願い致します。 【事象の状況】 1.Lion、Snow Leopard、Leopard、TigerでWindowsServer2003R2及びWindowsServer2008R2の共有フォルダにアクセスは問題なくできる。(環境はワークグループ環境) 2.Lion、Snow Leopard、LeopardからはWindowsServer2003R2及びWindowsServer2008R2の共有フォルダにアクセスは問題なくできる。 ただし、TigerからはWindowsServer2003R2及びWindowsServer2008R2の共有フォルダにアクセスできない。(環境はActiveDirectory環境) 共有フォルダはActiveDirectoryサーバーに作成してあり、アクセス権の設定は問題ない。Lion、Snow Leopard、Leopardでは同じユーザーアカウントを使用して 共有フォルダにアクセスできているため。 3.ActiveDirectoryサーバーにTigerのコンピュータアカウントは追加できるが、コンピュータアカウント作成で使用したアカウントを使用してもアクセスできず。 4."Finder"より"サーバー接続"を選択して、サーバーアドレスにsmb://ActiveDirectoryサーバーのIPアドレスを入力すると"SMB/CIFSファイルシステムの認証"が表示され、ユーザアカウントを入力すると"名前またはパスワードが正しくないため、サーバに接続できませんでした。"が表示される。サーバーアドレスにsmb://ActiveDirectoryサーバーのコンピュータ名を入力しても状況には変わりがない。  

  • アクティブディレクトリやDCが良く分かりません

    タイトルの通りなのですが ActiveDirectoryというのは、ユーザーアカウントを管理するもの、という認識でいいのでしょうか? 以前ちょっとだけ触れたことがあるのですがいまいち良く分かっていませんでした。 ドメインというグループのようなものを作り、そこに所属するグループ?のようなものを作り(OU?) さらにそこに所属するユーザーアカウントを作る・・・って認識で良いでしょうか? 例えば abc.com   ├soumubu   │ ├tanaka   │ └yamada   └jinjibu      ├satou      └suzuki こんな風に、abc.comというドメインの中に、総務部と人事部のグループがあり そこに所属している、田中さんや山田さんのアカウントがある・・・というようなイメージなのでしょうか? また、ここでいう「ドメイン」とは、よくURLなどに表示されているwww.yahoo.co.jpといったドメインとは 全く別物なのでしょうか? メールアドレスなどのドメインは業者から借りて使用していると聞きましたが ActiveDirectoryで作成するドメインはURLやメアドで使用するものではなく あくまでアカウントを管理するためのもの・・・という認識でよいのでしょうか。 ドメインコントローラーというもの、いまいちはっきりとしないのですが >Active Directoryでは、こうした情報を扱い、ユーザーがログオンする際の認証を受け付けるコンピ>ュータのことを、ドメイン・コントローラと呼んでいる。 という説明をWebで見かけました。 ActiveDirectoryってそもそも何なのか、ソフトウェア?それともサーバが持つ機能の一つ? どうもアカウント管理だけではなく、フォルダへのアクセス権を組織単位で設定できたりもするようですが それ以外にもいろいろと機能があって、その一部がアカウントを管理する機能=その機能をもった コンピュータをドメコンという、ということなのでしょうか? というか、ActiveDirectory機能を有したコンピピューター=ドメコンではないのですか? ドメイン管理の機能だけを別のコンピュータに持たせることができるから、このような説明なのでしょうか? うまく疑問がまとめられず分かりにくくて申し訳ありません。 なにとぞご教授ください。

  • LDAP認証について

    お世話になっております。 この質問がこのカテゴリであっているか自身がありませんが、実行プログラムがASPなため、このカテゴリに質問させて頂きます。 LDAP認証をする場合、OUがない、ActiveDirectoryは、OUに何を指定すればいいのでしょうか?「Users」でいいのでしょうか? 以下プログラム strLdapPath="LDAP://xxx.xxx.xxx.xxx/CN=123,OU=???,DC=xxx,DC=xxx" strUserID="123" strPassword="****" Set obj = objLdap.OpenDSObject(strLdapPath, strUserID, strPassword, 0) よろしくお願い致します。

  • 特殊なCDからのデータ抽出

    CDに収められたソフトウェアを ActiveDirectoryを利用して配信しようと考えております。 しかし、このCD内にはsetup.exeとAutorun.infしか入っておらず setup.exeも40KB程度で、この中にはファイルは何も入っていないようです。 CDからsetup.exeを直接実行すると、どこからかファイルが抽出されてインストールできますが このsetup.exeをローカルディスクに移してから実行すると、以下の警告が表示されます。 --------------------------- 警告(AliasMain 1.2) --------------------------- CD-ROMから起動されていません --------------------------- インストールしなくてはいけないディスクも多く、台数も多いため できればActiveDirectory上から配信を行いたいのですが、 このファイルの抽出方法など、ご存じでしたらご教授ください。 なお、本ソフトは営利目的のものではなく、社内で使用するため ライセンス違反にはなりません。 以上、何か方法をご存知でしたらよろしくお願いいたします。

  • タスクスケジューラの設定について

    OS:WinXP Pro SP1 を使用しております。 タスクスケジューラの設定について質問です。 タスクスケジューラにて午前3時にDSHUT(パソコンを終了してくれるソフト)を実行するように設定しました。この時点では毎日正常に実行されているのを確認しました。しかし、コンピュータ名を変更後、動作しなくなってしまいました。作業内容は以下です。 1.コンピュータ名変更。 2.DSHUTのアカウント変更 3.再起動 タスクスケジューラを見ると、「開始できませんでした」となっていました。そこで、 1.DSHUTの設定を一度削除。 2.もう一度設定しなおす。 としたところ、正常に実行できたのですが、なぜコンピュータ名を変更した後、アカウントを設定しなおすだけではダメなのでしょう? わざわざ再設定しなくてもよい方法があるのならご教授願います。

apache2が起動しない
このQ&Aのポイント
  • apache2が起動しない原因と対処法
  • apache2の起動に関するエラーメッセージと解決方法
  • apache2が起動しない場合の対処方法
回答を見る