将NT格式(NetBIOS)域名转换为可分辨名称(DNS域名)

时间:2017-10-27 16:06:45

标签: powershell dns netbios

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

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

  

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

我正在寻找另一种方法来实现这一点(在PowerShell脚本中任何方式都没有遇到VPN问题)。我正在寻找一种不需要第三方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}

0 个答案:

没有答案