2003ActiveDirectory上のコンピュータアカウントをLDIFDEで吐き出すと(CSVDEでも良いのですが)、
私のコンピュータのobjectSIDは「AQUAAAAAAAUVAAAAqv3j2rRJTZddJX69UQgAAA==」と表示されます。
実際に私のコンピュータでPsGetSidを実行すると、「S-1-5-21-1409082233-1202660629-839522115」と表示されます。
教えて頂きたいことは、以下の2点です。
1.objectSidをS-1-5の形式で表示するには、どうしたらいいのでしょう?
2.DC上でobjectSidのみを抜き出す(表示させる)方法をご教授ください。
何卒宜しくお願い致します。
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
---
ありがとうございます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という解釈で良いのでしょうか?
何卒宜しくお願い致します。
No.2
- 回答日時:
>S-1-5-21-3672374698-2538424756-3179160925
ここまではドメイン共通の部分なのでセキュリティ識別子としては不十分です。つまりSIDではありません。
#1 の冒頭にもすこし書きましたが、SIDの桁数が16進で8桁ぶん増えています。
したがって、PsGetSid ではドメインに使用しても正式なSIDが取得できないようです。
参考URL:http://www.atmarkit.co.jp/fwin2k/win2ktips/307si …
冒頭に桁数が・・・と仰っていたのはその事だったのですね。
すっきりしました。
大変、助かりました。
ご丁寧にご教授くださり感謝しております。
今後とも何卒宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの数式について教えてください。 2 2023/03/04 09:54
- Windows 10 パソコンの操作ができません。。。 4 2022/06/02 18:38
- Excel(エクセル) エクセルの数式について教えてください。 2 2023/02/18 11:30
- Windows 10 windows11のUSB接続の機器がcomポートに表示されない。 3 2023/04/13 07:51
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/04/13 10:55
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/06/19 10:08
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/04/21 08:59
- LINE アップルウオッチへのLINEログイン通知について 1 2022/10/07 17:49
- Excel(エクセル) Excel ユーザー定義で変換したセルについて 3 2023/02/04 01:25
- Excel(エクセル) Excelで【1-1】【1-2】【1-3】という連番の文字の入力が上手く出来ません。 5 2022/11/16 13:24
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
グループポリシーとローカルポ...
-
ファイルサーバーで毎回パスワ...
-
LINUXにおけるワークグループの...
-
グループポリシーオブジェクト...
-
ドメインにログインするのにタ...
-
DNSサーバ(BIND9)でドメインの...
-
セキュリティポリシー(ドメイ...
-
パソコンの履歴をリセットする...
-
Windowsドメイン・ネットワーク...
-
サーバーでFTPアカウントの...
-
ローカルPCのWindowドメイン参...
-
アクティブディレクトリやDCが...
-
同じコンピューター名がネット...
-
ローカルネットワークのドメイ...
-
Windowsドメイン参加用のクロー...
-
パソコン起動時のサーバー接続
-
Windows7+2008R2ドメイン参加で...
-
Authenticated Userって何ですか?
-
セグメントを越えてのプリンタ...
-
管理者権限のないユーザーにプ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイルサーバーで毎回パスワ...
-
Authenticated Userって何ですか?
-
グループポリシーとローカルポ...
-
LINUXにおけるワークグループの...
-
ワークグループからADに移行す...
-
Active Directoryの管理者パス...
-
DNSサーバ(BIND9)でドメインの...
-
グループポリシーオブジェクト...
-
Windowsドメイン参加用のクロー...
-
ドメインにログインするのにタ...
-
ドメイン参加PCで、自動ログオ...
-
ログオン要求できるログオンサ...
-
ローカルPCのWindowドメイン参...
-
ローカルネットワークのドメイ...
-
Windows7+2008R2ドメイン参加で...
-
同じコンピューター名がネット...
-
cutestat.comというサイトでip...
-
パソコン起動時のサーバー接続
-
DNSのマスターとスレーブの同時...
-
アクティブディレクトリやDCが...
おすすめ情報