Sco*_*ain 6 powershell active-directory
我有一个脚本,我需要找到完整的专有名称(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);
}
Run Code Online (Sandbox Code Playgroud)
Sha*_*evy 10
试试这个(需要v2):
$filter = "(&(objectCategory=computer)(objectClass=computer)(cn=$env:COMPUTERNAME))"
([adsisearcher]$filter).FindOne().Properties.distinguishedname
Run Code Online (Sandbox Code Playgroud)
请小心使用 ADSIsearcher 方法。如果同一林中的不同域中有两台具有相同名称的计算机(导致我执行返回本文的搜索的问题),则此方法不能保证返回正确的计算机。此方法将简单地在 AD 中搜索具有由 ComputerName 环境变量返回的名称的计算机。如果您处于林中具有多个域的环境中,则需要确保交叉引用计算机加入的域。
主持人,这确实应该是对 Shay Levy 的答案的评论,但我无法发表评论,因为我是新人。
| 归档时间: |
|
| 查看次数: |
40280 次 |
| 最近记录: |