Показать полную графическую версию : Скрипт входа для пользователей домена
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
но суть задачи именно в написании скрипта »
Тогда зачем старый дряхлый 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
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.