服务器 Gind.cn

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

在未joinWindows 7的AD中查找计算机

我有一个PowerShell脚本,我们使用了几个东西,当一台新的计算机已经安装了Windows 7的时候,我们也在Windows 10上使用它,而且一切正常。 它在第一次login时运行,然后由技术人员决定,如果计算机必须join域。 但是我们需要find一种方法在脚本中执行检查,以查看计算机名是否已经存在于特定的OU中,技术人员将join。 我们不想将Active Directory模块添加到所有新的Windows 7 PC上,因为这只需要一次。 我们如何才能在PowerShell脚本中实现这样的检查,必须能够在未join的Windows 7 PC上运行,并使用脚本初始运行时技术人员已经键入的凭据? 更新 : 在我们开始部署Windows 10(与Windows 7一起)之后,我们以前的可视基本脚本的行为有所不同。 所以我们决定在PowerShell中重写它以适应Windows 7和Windows 10.我们还设法find了在同一个会话中重命名和join域的方法(=只需要1次重启)。 为了pipe理这个,我们在Win32_ComputerSystem的JoinDomainOrWorkGroup中使用一个(也许不受支持的)参数,强制计算机对象join所选的OU,即使对象已经在那里。 如果用户收到一台新的计算机,并且必须给出相同的名称,则会发生这种情况。这就是为什么我需要能够检查该特定OU是否已经存在,并且在继续join之前向技术人员询问是否正确。 新的powershell脚本有很多非英语和技术人员使用脚本的问题(读取主机)。 所以我决定拿出脚本的片段,这涉及到这个问题。 # $computername, $ou and $credentials is set before this runs $domain = "our.domain.com" $computer = get-wmiobject Win32_ComputerSystem $ret = $computer.rename($computername,$credentials.getnetworkcredential()).password,$credentials.username) if ($ret.ReturnValue -eq 0) { $ret = $computer.JoinDomainOrWorkGroup($domain,($credentials.GetNetworkCredential()).Password, $credentials.UserName, $OU, 0x1 […]