1

Пользователь может ввести строку, поэтому в основном 4 варианта:

  1. имя пользователя
  2. .\ Имя пользователя
  3. localcomputername\ имя пользователя
  4. remotedomain.com\ имя пользователя

Каков наиболее надежный способ вернуть домен и имя пользователя с учетом этой входной строки в VBS?

Итак, для 4 входных строк, приведенных выше, вот выходы:

  1. domain = "localcomputername", usernme = "username"
  2. domain = "localcomputername", usernme = "username"
  3. domain = "localcomputername", usernme = "username"
  4. domain = "remotedomain.com", usernme = "username"

1 ответ1

0

Я бы сделал это в два этапа:
Сначала разделите ввод по имени пользователя и паролю с помощью регулярного выражения.

Option Explicit

dim re, matches, match, test

Set re = new regexp
re.pattern = "^((.*)\\)?(.*)$"

for each test in array( _
    "username", _
    ".\username", _
    "localcomputername\username", _
    "remotedomain.com\username")

    Set matches = re.Execute(test)
    for each match in matches
        msgbox "domain: " & match.submatches(1) & vbNewLine & _
                "username: " & match.submatches(2)
    next
next

Затем используйте вариант выбора, чтобы сделать доменное имя действительным:

dim localhost, testdomain, outputDomain

localhost = "192.168.0.1"
for each testDomain in array( _
    ".", _
    localhost, _
    "", _
    "remotedomain.com")

    select case testDomain
        case localhost, "", "."
            outputDomain = localhost
        case else
            outputDomain = testDomain
    End Select

    msgbox testDomain & " becomes " & outputDomain
Next

Объедините эти два, и у вас есть свой скрипт, чтобы получить домен и имя пользователя.
Отказ от ответственности: приведенный выше код является проверенным примером кода, но вы должны адаптировать его к вашей конкретной ситуации.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .