0

我目前正在使用以下代码将 NT 格式(NetBIOS)域名转换为可分辨名称(DNS 域名)。

NameTranslate对象在我的代码中运行良好...直到我尝试在我的工作 VPN 上使用相同的代码...导致异常

远程过程调用失败。(结果:0x800706BE)

我正在寻找另一种方法来做到这一点(在 PowerShell 脚本中的任何方式都不会在 VPN 上出现问题)。我正在寻找一种不需要 3rd 方 PS 模块或程序集依赖项且代码行数最少的解决方案。

$Domain = "SF"
$objTrans = New-Object -comObject "NameTranslate"
$objNT = $objTrans.GetType()
$objNT.InvokeMember("Init", "InvokeMethod", $Null, $objTrans, (3, $Null))
$objNT.InvokeMember("Set", "InvokeMethod", $Null, $objTrans, (3, "$Domain\"))
$DNSDomain = $objNT.InvokeMember("Get", "InvokeMethod", $Null, $objTrans, 1)

编辑: 对于那些对 NameTranslate 没有太多经验的人(并且还需要更大的图景我正在尝试做的事情):

我需要验证用户输入的 AD 用户名/密码,例如用户名的“ SF\MKANET ”。我知道在 PowerShell 中验证 AD 帐户的最佳方法是使用以下代码。我需要一种编程方式来获取“SF”这个用户输入的文本示例;并且,将其转换为可以在$DNSDomain下方使用的格式。如果有人有替代解决方案,我可以用来做同样的事情,请告诉我。

$DOM = New-Object System.DirectoryServices.DirectoryEntry($DNSDomain,$UserName,$Password)
if ($DOM.name -ne $null) {$CredentialValid = $True}
4

0 回答 0