У нас есть сервер Multipoint 2012 с RDS для немых терминалов, установленный по всему нашему предприятию. Клиенты названы по месту нахождения. Каждое место использует свой собственный принтер. В связи с тем, что клиентов больше, чем пользователей, у нас будет пользователь, входящий в систему из разных мест.
Я разработал сценарий VBS, который запускается в сеансе RDS, чтобы установить принтер по умолчанию в зависимости от того, где находится клиент. Код работает хорошо. Однако, когда пользователь также входит в систему из разных мест, все сеансы для этого пользователя получают новый принтер по умолчанию. Это привело к тому, что люди повсюду гоняются за документами.
Могу ли я что-нибудь сделать, чтобы изменить принтер по умолчанию только для текущего сеанса, а не для всего профиля пользователя?
Вот мой сценарий:
Dim ClientName
Dim Shell
Dim WSHNetwork
Set Shell = CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
ClientName = LCase(Shell.ExpandEnvironmentStrings("%ClientName%"))
Set WSHNetwork = CreateObject("WScript.Network")
If InStr(ClientName, "inspection") > 0 Then
WSHNetwork.SetDefaultPrinter "[INSPECTION_PRINTER_NAME]"
ElseIf InStr(ClientName, "tooling") > 0 Then
WSHNetwork.SetDefaultPrinter "[TOOLING_PRINTER_NAME]"
ElseIf InStr(ClientName, "assembly") > 0 Then
WSHNetwork.SetDefaultPrinter "[ASSEMBLY_PRINTER_NAME]"
ElseIf InStr(ClientName, "lathe") > 0 Then
WSHNetwork.SetDefaultPrinter "[LATHE_PRINTER_NAME]"
End If
Если нет возможности сделать именно то, что я пытаюсь сделать, я открыт для предложений сделать что-то по-другому.