Войти

Показать полную графическую версию : Скрипт входа для пользователей домена


Ybik1810
27-12-2019, 09:19
Доброго времени суток. Столкнулся с задачей на VBS: нужно написать скрипт который запускает программу в зависимости от принадлежности пользователя к доменной группе. Есть 3 юзера (User1, User2, User3) и 2 группы (Group1, Group2). User1 состоит в Group1, User2 в Group2, а User3 и в Group1 и в Group2. В итоге при входе Userу1 открывается одна программа, Userу2 другая, а Userу3 выбор из этих 2 программ, т.к. состоит в 2ух группах. Как реализовать сию задачу? У меня получилось 3 разных файла, но как сделать так чтобы скрипт проверял юзера на принадлежность незнаю. Помогите, прошу.

Для User1
With CreateObject(“WScript.Shell”)
.Run “mspaint.exe”
End With

Для User2
With CreateObject(“WScript.Shell”)
.Run “notepad.exe”
End With

Для User3
Dim msg
With CreateObject(“WScript.Shell”)
msg = MsgBox(“Да – запустить Блокнот” & vbCrLf & _
“Нет – запустить Paint”, _
vbYesNo, “Выбор программы”)
Select Case msg
Case vbYes
.Run “notepad.exe”
Case vbNo
.Run “mspaint.exe”
End Select
End With

DJ Mogarych
27-12-2019, 10:46
Это реализуется фильтром безопасности в GPO безо всяких скриптов.

Ybik1810
27-12-2019, 11:22
Знаю, но суть задачи именно в написании скрипта

Ybik1810
27-12-2019, 12:44
Не могу понять почему он не работает
Function GpRunObject(strGpName)
Set RunObj = wscript.createobject("wscript.shell")
'запуск текстового CMD
RubObj.run ("notepad.bat")
wscript.Quit
End Function

Set WshShell = WScript.CreateObject("WScript.Shell")
Set WshNetwork = WScript.CreateObject("WScript.Network")
UserDomain = WshNetwork.UserDomain
Set UserObj = GetObject("WinNT://" & UserDomain & "/" & WshNetwork.UserName)
For Each GroupObj in UserObj.Groups

If GroupObj.Name = "Первый отдел" Then

Dim Msg, Style, Title, Response, MyString
Dim WSHShell

Msg = "Готовы поработать?"
Style = vbYesNo + vbQuestion + vbDefaultButton2
Title = "Добрый день"
Response = MsgBox(Msg, Style, Title)
if Response = vbYes Then
MyString = "Да"
Set WSHShell = WScript.CreateObject("WScript.Shell")
WSHShell.Run "notepad.bat", 0, false
Else
MyString = "Нет"
End if
End if

If GroupObj.Name = "Второй отдел" Then
Msg = "Готовы поработать?"
Style = vbYesNo + vbQuestion + vbDefaultButton2
Title = "Добрый день"
Response = MsgBox(Msg, Style, Title)
If Response = vbYes Then
MyString = "Да"
Set WSHShell = WScript.CreateObject("WScript.Shell")
WSHShell.Run "paint.bat", 0, false
Else
MyString = "Нет"
End if
end if
Next

Charg
27-12-2019, 20:23
но суть задачи именно в написании скрипта »
Тогда зачем старый дряхлый vbs?
Вот на powershell например:

if ($env:USERNAME -in @((Get-LocalGroupMember -Group "group1").Name.Split('\')[1]))
{
Write-Output "user in group1, run program1"
Start-Process -FilePath "cmd.exe"
}
elseif (($env:USERNAME -in @((Get-LocalGroupMember -Group "group2").Name.Split('\')[1])))
{
Write-Output "user in group2, run program1"
Start-Process -FilePath "cmd.exe"
}




© OSzone.net 2001-2012