我有一个脚本,我需要找到正在运行的计算机的完整专有名称(CN=MyComputer, OU=Computers, DC=vw, DC=local
),但是我不能保证ActiveDirectory
模块将在运行该脚本的所有计算机上都可用。有没有一种方法可以在不使用Get-ADComputer $Env:COMPUTERNAME
的情况下获取当前计算机的完整专有名称?
万一这是一个XY问题,我想做的就是将计算机移至特定的OU,但是我需要一种方法来获取正在运行的计算机的ASDI条目。
[ADSI]$computer = ("LDAP://" + $localDN)
if($Production)
{
[ADSI]$destination = 'LDAP://ou=Production,ou=Computers,ou=VetWeb,dc=vw,dc=local'
$computer.MoveTo($destination);
}
else
{
[ADSI]$destination = 'LDAP://ou=Test,ou=Computers,ou=VetWeb,dc=vw,dc=local'
$computer.MoveTo($destination);
}
最佳答案
试试这个(需要v2):
$filter = "(&(objectCategory=computer)(objectClass=computer)(cn=$env:COMPUTERNAME))"
([adsisearcher]$filter).FindOne().Properties.distinguishedname
关于powershell - 在Powershell中获取当前计算机的专有名称,而无需使用ActiveDirectory模块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11146264/