2015-03-14 3 views
0

У меня есть создать VBscript перечислить пользователей в группеVbscript Функция печати Выход

Function GetUserInGroup() 
strComputer = "localhost" 
Set colGroups = GetObject("WinNT://" & strComputer & "") 
colGroups.Filter = Array("group") 
For Each objGroup In colGroups 
    For Each objUser in objGroup.Members 
     If objUser.name = "yayantritaryana" Then 
      WScript.stdout.write objGroup.Name + " " 
     End If 
    Next 
Next 
End Function 
WScript.stdout.write "Group=" + GetUserInGroup 

Но когда я исполняю его, выход is'nt, что я ожидал

Script Output

Выход I Wanted как

Group=Administrator SQLAdmin Sysadmin 

Может кто-нибудь мне помочь?

ответ

0

A Function имеет цель (например, доставку строки разделенных пробелами имен групп). Для этого вы задаете желаемый результат имени функции (другие языки используют своего рода оператора возврата):

Function GetUserInGroup() 
    GetUserInGroup = "pi pa po" 
End Function 

WScript.stdout.write "Group=" & GetUserInGroup() 

выход:

cscript 29053176.vbs 
Group=pi pa po 

функция не должна иметь side-effects (как ваш

WScript.stdout.write objGroup.Name + " " 

, который печатает имена на консоли before, вы выводите «Group =» в последней строке вашего скрипта). Вместо этого объедините objGroup.Names.

Оператор для конкатенации строк &.

Список возможных функций вызова функции должен быть заключен(); этот список параметров() являются незаконными для вызовов Sub.

Некоторые дополнительного кода в качестве пищи для размышлений:

Function GetUserInGroup() 
    For Each s In Split("pi pa po") 
     GetUserInGroup = GetUserInGroup & s & "*" 
'  GetUserInGroup = GetUserInGroup() & s & "*" 
    Next 
End Function 

WScript.stdout.write "Group=" & GetUserInGroup() 
+0

Вы Удивительный Братан !!! Моя проблема решена – yayantritaryana