在 vbscript 中从用户字符串解析域和用户名的最可靠方法是什么

在 vbscript 中从用户字符串解析域和用户名的最可靠方法是什么

用户可以输入一个字符串,因此基本上有 4 个选项:

  1. 用户名
  2. 。\用户名
  3. 本地计算机名\用户名
  4. remotedomain.com\用户名

在 vbs 中,根据输入的字符串返回域和用户名的最可靠方法是什么?

因此,对于上面的 4 个输入字符串,输出如下:

  1. domain = “本地计算机名称”,usernme = “用户名”
  2. domain = “本地计算机名称”,usernme = “用户名”
  3. domain = “本地计算机名称”,usernme = “用户名”
  4. domain = “remotedomain.com”, usernme = “用户名”

答案1

我会分两个阶段进行:
首先使用正则表达式将输入拆分为用户名和密码

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

然后,使用 Select Case 使域名有效:

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

将这两者结合起来,您就拥有了获取域和用户名的脚本。
免责声明:以上代码是经过测试的示例代码,但您必须根据具体情况进行调整。

相关内容