• 締切済み

お世話になります。

お世話になります。 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点よろしくお願い致します。

みんなの回答

  • 0909union
  • ベストアンサー率39% (325/818)
回答No.1

アクセス権とかどうなっているんだろう。 あなたのレベルだとまず下記のURLサイトの物を参考にしてください。それから、リファレンスサイトで、オブジェクト、メソッドなどを勉強してください。システムの要件の記載がないので、べたにスクリプトを提示するのはとても危険なので(質問を繰り返すので)。 http://technet.microsoft.com/ja-jp/scriptcenter/default.aspx http://technet.microsoft.com/ja-jp/scriptcenter/ff606709.aspx

drivestar
質問者

お礼

大変参考になるサイトの紹介、感謝致します。 紹介して頂いたサイトを参考に一から勉強致します。 ちなみに、全アカウントを対象にする方法として、全アカウントをハードコーディングし、 コマンドラインより、出力する事で解決致しました。 ※全アカウントを出力するスクリプトを拾ってきました。

関連するQ&A

  • このサイトのコードを利用したいです。

    http://gallery.technet.microsoft.com/scriptcenter/d73b2ae1-2997-4952-8946-18dea79ba827 「Set objUser = GetObject("LDAP://cn=ken myer, ou=Finance, dc=fabrikam, dc=com") Wscript.Echo objUser.WhenCreated」 知らないユーザーアカウントがあったため、作成日を知りたいと思ったところ上記のサイトの上記のコードにたどり着きました。しかし私にはこのコードの使い方が分かりません。どなたか使い方を教えてください。

  • LDAPの区切り文字。

    WSHでLDAPを使用したいのですが、うまくいきません。 CN名(姓,名)にカンマが含まれているのでオブジェクトの取得に失敗します。どのように記述したらいいのでしょうか? LDAPの区切り文字をカンマ以外の区切り文字に変えたりできるのでしょうか? Set objUser = GetObject("LDAP://cn=LASTNAME, FirstName" & ", ou=Test, dc=Test")

  • ActiveDirectoryのユーザー取得

    GetObject("LDAP://OU=ABC,DC=XXX,DC=local") でOU毎のユーザーは取得できるのですが、 OUを指定せずに、全てのユーザーを取得する方法はないでしょうか? (複数のOUが作成されているので、指定したくない) ネットで検索しても「CNorOU」を指定しない方法が見つけられませんでした。 OUの一覧を取得して、複数回ループするしかないのでしょうか? よろしくお願いします。

  • ActiveDirectoryにおけるパスワード一括登録

    Windows2003Serverで構築したActiveDirectoryにおいて、1000以上のアカウントに対してパスワードを一括登録したいと思っています。 色々検索した結果、マイクロソフトのスクリプトセンターで見つけたWSHで実施するのが簡単そうです。 http://www.microsoft.com/japan/technet/scriptcenter/scripts/ad/users/pwds/uspwvb01.mspx そこにあったサンプルは以下で、3行になっています。 Set objUser = GetObject _ ("LDAP://cn=MyerKen,ou=management,dc=fabrikam,dc=com") objUser.SetPassword "i5A2sj*!" WSHのことは初心者のため、初歩的な質問で恐縮ですが、 上記スクリプトを1行で記述したいのですが、「_」のところでエラーになってしまいます。 どのように変更したらいいのでしょうか? 1000以上のデータをEXCLEで作成しBATで実行したいので 複数行になるのはまずいのです。ご教授よろしくお願いします。

  • 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) よろしくお願い致します。

  • WSHでテキストファイルの値を代入

    WSHについての質問です。 環境はwindows2003サーバです。 初歩的な質問かと思いますが・・・ マイクロソフトのサイトで、 WSHでユーザアカウントを作成するサンプルが ありまして、 http://www.microsoft.com/japan/technet/scriptcenter/scripts/ad/users/manage/usmgvb05.mspx (以下スクリプト) Set objOU = GetObject("LDAP://OU=management,dc=fabrikam,dc=com") Set objUser = objOU.Create("User", "cn=MyerKen") objUser.Put "sAMAccountName", "myerken" objUser.SetInfo これで1人分のアカウントを作成できるわけですが、 他のテキストファイルに複数のユーザの情報を記入し、 それを自動的に連続して読み込んで、 複数ユーザを一気に作成するには、 どのようなコードを書けばよいでしょうか。 用意するテキストファイルは下記のようなものです。 OU名,ユーザ名 newou,user1 newou,user2 newou1,user101 ・   ・ ・   ・ ・   ・ (任意の値が入ります) スクリプトの、ユーザ情報の部分をカスタマイズして テキストの1行目から代入して、 それを繰り返すコードにすればよいのでしょうが、 わかりません・・・ ヒントだけでも助かります。どうかよろしくお願いいたします。

  • ActiveDirectoryで高い層のOUを指定する

    以下のように多階層でOrganizational Unitが作成されています。 ou1 - ou1-1    - ou1-2    - ou1-3 - ou1-3-1 ou2 - ou2-1    - ou2-2 ou3 - ou3-1 - ou3-1-1 この状態で、ou1-1 に所属するユーザー情報を取得したいのですが、その方法がわかりません。 LDAP://xxxxx.xxx/OU=ou1-1,dc=xxxxx,dc=xxx と指定すると、以下のエラーが出てしまいます。 System.DirectoryServices.DirectoryServicesCOMException: サーバーにそのようなオブジェクトはありません。 LDAP://xxxxx.xxx/OU=ou1,dc=xxxxx,dc=xxx と指定すればユーザー情報は取得できますが、1-1だけでなく、1-2,1-3のユーザー情報も一緒に取れてしまいます。 1-1のユーザーだけを指定するにはどうすればいいのでしょうか?

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

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

  • ExcelにADのセキュリティグループのメンバーを表示させる

    Visual Basicが全くわかっていないので、どなたか教えてください。 前任者が、OutlookのセキュリティグループのメンバーをExcelに表示させるVBSを残していきました。 とても便利に使っていましたが、ADのセキュリティグループに1500以上のユーザーが登録されているのに、 どういうわけか1500件までしか表示されません。どうやったらセキュリティグループのメンバー全員を吐き出すことができるんでしょうか? Dim objGroup, objExcel, iRow, strUser Set objGroup = GetObject("LDAP://cn=[セキュリティグループ名],ou=Distribution Groups,ou=XXXXX,dc=[domain]…") Set objExcel = CreateObject("Excel.Application") With objExcel .SheetsInNewWorkbook = 1 .Workbooks.Add .Visible = True .Worksheets.Item(1).Name = mid(objGroup.Name, instr(1,objGroup.Name,"=") + 1 ) 'set Worksheet name to that of the DL irow=1 For Each strUser in objGroup.Member Set objUser = GetObject("LDAP://" & strUser) .Cells(iRow,1) = objUser.CN irow=irow + 1 Next .Cells(iRow,1) = "Total users: " & irow - 1 .Columns(1).entirecolumn.autofit End With Set objExcel = Nothing Set objGroup = Nothing よろしくお願いいたします。

  • WMIを利用。

    はじめましてこんにちわ。 現在、WindowsのWSHのWMIを利用して、 パスワードが無期限ではないユーザーを無期限にしようと思っています。 以下、プログラムを利用して↑を実行しようと思っているのですが、 エラー:テーブルが存在しません。 と出てしまいます。どうすればよいでしょうか? 以下サンプルプログラムを見つけてVBSファイルにして実行しました。 [sample]パスワードが無期限じゃないユーザーを一括で無期限に szDomain = "dc=annou,dc=com" szOU = "OU=Students" Const ADS_UF_DONT_EXPIRE_PASSWD = &h10000 Set objConnection = CreateObject("ADODB.Connection") objConnection.Open "Provider=ADsDSOObject;" Set objCommand = CreateObject("ADODB.Command") objCommand.ActiveConnection = objConnection objCommand.Properties("Page Size") = 20000 objCommand.CommandText = _ "<LDAP://" & szOU & "," & szDomain & ">;" & _ "(&(objectCategory=person)(objectClass=user)" & _ "(!userAccountControl:1.2.840.113556.1.4.803:=65536));" & _ "userAccountControl,sAMAccountName,distinguishedName;" & _ "subtree" Set objRecordSet = objCommand.Execute Do Until objRecordset.EOF szDN = objRecordset.Fields("distinguishedName") intUAC = objRecordset.Fields("userAccountControl") Set objUser = GetObject("LDAP://" & szDN ) objUser.Put "userAccountControl", intUAC XOR ADS_UF_DONT_EXPIRE_PASSWD objUser.SetInfo WScript.Echo szDN objRecordset.MoveNext Loop objConnection.Close Set objCommand = Nothing