ここでは、VBScript / JavaScript / ADSI などのスクリプト系の実験室です。
いちおう、そのままコピー&ペーストすると動くように作ってます。(たぶん (^^ゞ)

 

カテゴリ
VBScript
JavaScript
ADSI



ファイルの中身を取得

NewLine = Chr(10) ' 改行コード
Const ForReading = 1 ' ファイルのオープンモード
Const strFileName = "c:\boot.ini" ' ファイル名
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.getfile(strFileName)
Set TextStream = File.OpenAsTextStream(ForReading)
Do While Not TextStream.AtEndOfStream
  s = s & TextStream.ReadLine & NewLine
Loop
TextStream.Close
msgbox s, ,strFileName

結果サンプル


ファイルへの書き込み

strFile = "c:\output.txt" ' 出力ファイル名
Set fso = CreateObject("Scripting.FileSystemObject") ' ファイルシステムオブジェクト取得
Set tf = fso.CreateTextFile(strFile, True) ' テキストファイルの作成
tf.Write("ファイルに書き込み")
tf.WriteBlankLines(2) ' ブランク行を 2 行書き込む
tf.Write("ファイルに書き込み")
tf.Close ' ファイルを閉じる

ユーザーの一覧表示

Dim objUser As Object  
Dim strList As String  
   
Set Obj = GetObject("LDAP://CN=Users, DC=domain, DC=com") ' ユーザーオブジェクトを取得します。
For Each member in UserObj ' ユーザーオブジェクトから、情報を一つずつ取得します。
  strList = strList & member.name & vbCr ' strList に Name 情報を確保します。
next  
MsgBox strList  

全てのユーザーの「パスワードの無期限」の設定をする

Dim myusr
Dim user
Const UF_DONT_EXPIRE_PASSWD =&H10000
   
Set cont = GetObject("WinNT://computername,computer") ' computername に設定するコンピューター名を設定します。
cont.Filter = Array("User")
For Each user In cont
  Set myusr = GetObject( "WinNT://computername/" & user.name & ",user" )
  myusr.Put "UserFlags", myusr.Get("UserFlags") Or UF_DONT_EXPIRE_PASSWD ' パスワードを無期限にする
  myusr.SetInfo
Next

全てのユーザーのホームディレクトリを設定する

adspath = "LDAP://CN=Users,DC=domain,DC=com"
Set obj = GetObject(adspath)
for each member in obj
  member.put "homeDirectory","\\Server\share\" &  member.cn
  member.put "homeDrive","Y:"
  member.setinfo
next

OU を作成する

set obj = getobject("LDAP://OU=testou,DC=domain,DC=com")  
set ou = obj.create("organizationalUnit", "OU=testou1") ' testou の下に testou1 を作成します。
ou.setinfo  

OU の全プロパティを取得する

buf = ""  
buf2 = ""  
   
set obj = getobject("LDAP://CN=User1,CN=Users,DC=domain,DC=com")  
set objc = getobject(obj.schema)  
   
for each mem in objc.mandatoryProperties  
  buf = buf & mem & vbcrlf  
next  
   
for each mem in objc.OptionalProperties  
  buf2 = buf2 & mem & vbcrlf  
next  
   
msgbox "OU の必須アトリビュートは " & buf  
msgbox "OU の任意アトリビュートは " & buf2  

Windows 2000 ドメインの DC の作成時間と比較し Windows NT ドメインから移行されたコンピュータを調べる

strnew = "DC より新しいコンピュータは" & vbcrlf  
strold = "DC より古いコンピュータは" & vbcrlf  
   
Set dcobj = GetObject("LDAP://CN=DCServer,OU=Domain Controllers,DC=Domain,DC=com") ' DC の取得
Set clobj = GetObject("LDAP://CN=Computers,DC=shiva,DC=com") ' コンピュータコンテナの取得
   
dctime = dcobj.get("whenCreated") ' DC の Create Time を取得
   
for each uniclobj in clobj  
  cltime = uniclobj.get("whenCreated")  
  if DateDiff("s", dctime, cltime) > 0 then ' 秒単位で日時を比較。
    strnew = strnew & uniclobj.name & vbcrlf  
  else  
    strold = strold & uniclobj.name & vbcrlf  
  end if  
next  
   
msgbox strnew  
msgbox strold  

ネットワークプリンタの作成

Set WshNetwork = CreateObject("WScript.Network")  
PrinterPath = "\\Server\Printer"  
PrinterDriver = "PrinterDriver"  
WshNetwork.AddWindowsPrinterConnection PrinterPath, PrinterDriver  
WshNetwork.SetDefaultPrinter "\\Server\Printer"  

参考資料 : Q263226


複数入力可能なアトリビュートに値を格納する方法

adspath = "LDAP://CN=user01,CN=Users,DC=domain,DC=com"
 
Set usr = GetObject(adspath)
usr.Put "extensionName" , Array("aaa","bbb","ccc") ' extensionName 属性に aaa と bbb と ccc を設定します
usr.setnfo

コンピュータ名およびユーザー名の取得

Dim WshNetWork
Dim Dmn
Dim Cn
Dim Usr
   
Set WshNetWork = WScript.CreateObject("WScript.Network")
   
Dmn= WshNetWork.userdomain
Cn = WshNetwork.ComputerName
Usr = WshNetwork.UserName
   
MsgBox "ドメイン名 :" & Dmn & chr(13)+chr(10) _
& "コンピュータ名 :" & Cn & chr(13)+chr(10) _
& "ユーザー名 : " & Usr
   
Set WshNetWork = Nothing

イベントログに書き込む

Const AUDIT_SUCCESS = 8 ' 成功のイベント
Const AUDIT_FAILURE = 16 ' 失敗のイベント
Const SERVER_NAME = "server01.domain.com"
Set wshShell = WScript.CreateObject("WScript.Shell")
wshShell.LogEvent AUDIT_SUCCESS, strMsg , SERVER_NAME

参考資料 : LogEvent メソッド


ウィンドウを振動させる
<script language="JavaScript">
<!--
for (i = 10; i > 0; i--) {
  for (j = 10; j > 0; j--) { // ウィンドウをを少しずつ移動しているだけです。
   self.moveBy(0,i);
   self.moveBy(j,0);
   self.moveBy(0,-i);
   self.moveBy(-j,0);
  }
}
//-->
</script>


メニューの表示を切り替える
<SCRIPT LANGUAGE="JavaScript"> // この画面のメニューのように
<!-- // メニュー項目をクリックすると
function showMenu(id){ // 表示を切り替えるます。
  id = document.all[id].style;
  if (id.display=='none') id.display = "block";
  else id.display = "none";
}
//-->
</script>
<table onclick="showMenu('id1');" style="cursor=hand"> クリック <!-- HTML タグで showMenu を呼び出しています。 -->
  <table id="id1" style="display=none">ここの表示/非表示が切替る</table> <!-- 表示を切り替えるタグに id をつけます。 -->
</table>

<!-- なお余分なタグは省略しています。 -->


右クリックの制御
<SCRIPT LANGUAGE="JavaScript">
<!--
var message="右クリックを押しましたね。";
function click(e){
  if (document.all) {
    if (event.button == 2) {
      alert(message);
      return false;
    }
  }
}
document.onmousedown=click;

//-->
</script>