0

個人グループのメンバーシップに応じてネットワークドライブを設定および削除したり、フォルダーを作成したりできるように、小さなスクリプトにすばやく取り組んでいますが、機能していないようで、エラーメッセージはありません。2番目のペアで実行できます目、私は本当にそれをいただければ幸いです!

DIM CHS
SET CHS = CreateObject("Scripting.FileSystemObject")
SET CHSshell = CreateObject("WScript.Shell")
SET CHSnetwork = CreateObject("WScript.Network")

PRIVATE FUNCTION isMember( Group )
    SET netCHS = CreateObject("WScript.Network")
    Domain = netCHS.UserDomain
    User = netCHS.UserName
    isMember = false
    SET userCHS = GetObject("WinNT://" & Domain & "/" & User & ",user")
        FOR EACH Group in userCHS.Groups
            IF (Group.Name = GroupName) THEN
                isMember = true
        EXIT FOR
            END IF
    NEXT    
    SET userCHS = NOTHING
    SET netCHS = NOTHING
END FUNCTION

SET CHS = NOTHING

IF ( isMember("Domain Admins") = "True" ) THEN
    CHSnetwork.RemoveNetworkDrive "z:"
    WSript.Echo "CHSnetwork.UserName"
END IF
4

2 に答える 2

1

あなたが呼ぶ

isMember("Domain Admins")

関数

PRIVATE FUNCTION isMember( Group )

name のパラメータを取得しますGroup。しかし、あなたは(再/誤って)使用Groupしています

FOR EACH Group in userCHS.Groups

userCHS.Groupsandをループする

IF (Group.Name = GroupName) THEN

.Nameと比較するを取得しGroupNameます。どこGroupNameから来るの?. 関数のヘッダーを次のように変更してみてください

PRIVATE FUNCTION isMember( GroupName )

Option Explicitそのような間違いを避けるために使用することを検討してください。

于 2013-03-19T10:55:38.743 に答える