3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

(WSH)VBScriptでユーザが特定のグループに属しているかを判定する

ログインスクリプトで、特定のグループに所属するユーザだけ任意の処理をしたいという場合の判定方法です。

[ADSI] IADsGroup.IsMember メソッドを使ってユーザが特定のグループに所属してるかチェックしてみよう (VBScript / .NET Framework) というサイトが非常に参考になりました。

というか、答えがそのままコード付きで載せられています。(C#のコードもあるのもうれしいです。)

ということで、ほぼ参考先コードまるままですが、VBScriptでの判定方法です。

ローカルグループとドメイングループの判定をしています。

Option Explicit

 

'グループに所属しているかどうかをチェックするスクリプト

Dim comInfo , currentUser , domaingroup ,localgroup

 

Set comInfo = CreateObject("WinNTSystemInfo")

currentUser = comInfo.DomainName + "/" + comInfo.UserName

Set currentUser = GetObject("WinNT://" + currentUser + ",user")

 

'ローカルグループに属しているかの判定

Set localgroup = GetObject("WinNT://" + comInfo.ComputerName + "/Administrators,group")

Wscript.Echo currentUser.AdsPath

If localgroup.IsMember(currentUser.ADsPath) Then

WScript.Echo "ローカルAdministratorsに所属しています"

Else

WScript.Echo "ローカルAdministratorsに所属していません"

End If

 

'ドメイングループに属しているかの判定

Set domaingroup = GetObject("WinNT://ドメイン名/testu")

If domaingroup.IsMember(currentUser.ADsPath) Then

WScript.Echo "ドメインtestuグループに所属しています"

Else

WScript.Echo "ドメインtestuグループに所属していません"

End If