【问题标题】:Remote Join/ReJoin a PC to Domain远程加入/重新加入 PC 到域
【发布时间】:2018-11-07 17:10:33
【问题描述】:

我正在尝试使用我的域电脑加入/重新加入其他已脱离域的电脑。我有两台正在使用的测试计算机,但两者都无法使用。一种是加入并在域上工作,另一种已脱离域。对于此过程,两者都是域的网络硬线。运行我的脚本时,我一直遇到这个问题。如何解决我的错误?

Remove-Computer : Cannot establish the WMI connection to the computer 'JoinTest' with the following error message: 
Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)).
$CorpDomain = "Domain.com\"
$ComputerName = Read-Host -Prompt 'Target Computer Name?'
$AdminCreds = Read-Host -Prompt 'Admin account username'
$DomainAdmin = $CorpDomain+$AdminCreds
$LocalCreds = $ComputerName+"\Administrator"

Remove-Computer -ComputerName $ComputerName -UnjoinDomaincredential 
$DomainAdmin  -PassThru -Verbose -Restart


Add-Computer -ComputerName $ComputerName -LocalCredential $LocalCreds - 
DomainName "Domain.com" -Credential $DomainAdmin -Force -Verbose -Restart

#Allow time for reboot
Start-Sleep -Seconds 30

Get-ADComputer $ComputerName -Properties *

【问题讨论】:

  • 第一个问题,你能ping通有问题的设备吗?其次,当您声明 CORP 域变量时,不要在其末尾包含 .com。只需使用“域\”
  • 对于第一个问题:是的,我可以 ping 设备,尽管我可以在继续之前输入 ling 来 ping 设备。第二:域中有.com。不知道为什么这里会这样。
  • 再次尝试该脚本并从您的域变量中删除 .com。这就是它始终工作的方式,如果管理员帐户位于森林中,您将执行“域\管理员”,如果您有一个像 corp.domain.com 这样的子域,您将使用“CORP\管理员”。尝试仅使用域,看看会得到什么。
  • 我得到了完全相同的错误。此时,假设我的帐户在网络上没有完全的管理员权限。这会导致这个错误正确吗?对于本地帐户,我正在尝试使用本地管理员帐户,因为我们所有的机器都在那里进行了映像。
  • 是的,您似乎在相关机器上没有 wmi 访问权限。如果您将自己添加到本地管理员组,这应该不是问题。

标签: powershell


【解决方案1】:

如果 PC 尚未在域中,但都启用了 PS 远程处理并共享相同的本地管理员用户名/密码,您可以使用:

$localUser = "Administrator"
$localPassword = "YourPasswordHere"
$localCreds = New-Object -TypeName System.Management.Automation.PSCredential -Argumentlist $localUser, $localPassword

$domainUser = "Domain\Username"
$domainPasswrod = "YourPasswordHere"
$domainCreds = New-Object -TypeName System.Management.Automation.PSCredential -Argumentlist $domainUser, $domainPassword

[array]$computers = @("pc01", "pc02")

$scriptBlock = {
    Add-Computer -ComputerName $env:COMPUTERNAME -LocalCredential $args[0] -DomainName "Domain.com" -Credential $args[1] -Force -Restart
}
Invoke-Command -ComputerName $computers -ScriptBlock $scriptBlock -ArgumentList $localCreds, $domainCreds

您可以将PowerShell remotingInvoke-Command 之类的命令一起使用,您可以在其中指定远程计算机以执行您想要的命令(即Add-Computer)。显然,您需要启用 PS 远程处理(catch 22)才能使用此方法。

【讨论】:

  • 所以这里的网络似乎有端口被阻止或没有为 WinRM 配置。 “WinRM 服务将用于 HTTP 或 HTTPS。 WinRM 2.0:默认 HTTP 端口是 5985,默认 HTTPS 端口是 5986。指定侦听器可以使用的 IPv4 或 IPv6 地址。所以我正在努力解决这个问题......我确实更喜欢你的编码写作。我会尝试一下。我确实想强制管理员每次都输入他们的凭据,而不是将其存储在脚本本身中,这样我就可以对此进行修改。欣赏洞察力!对 PS 来说还是比较新的。
猜你喜欢
  • 1970-01-01
  • 2022-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多