(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