远程连接计算机到Windows域

今天我遇到了一个有趣的问题。基本上,从一个域中删除了一大堆机器帐户。由于计算机帐户分布在众多的u中,纯粹的数字删除帐户,以及删除和实现之间的持续时间,做某种类型的恢复将被证明是有趣的。所以…提出了这个问题。如何远程使大量的机器重新加入域一旦他们的帐户已从目录删除?

当然,需要使用某种自动化脚本。由于倾向于使用PowerShell,我知道我将使用什么。这就留下了一个真正的问题:如何做到这一点?NetDom我想到了,就试了一下。但是,出于某种原因,似乎需要存在机器帐户,以便将机器放入一个工作组,然后再返回域。

失败后,我变成了一个信任的老朋友叫WMI和两个方法命名:UnjoinDomainOrWorkgroupJoinDomainOrWorkgroup。最后,它成功了,为了每个人的利益,我决定发布部分结果脚本。

* * *注意* * *

该脚本需要PowerShell 2.0 CTP2。而且,它又快又脏……通常我用大量的错误处理之类的方法来清理我的脚本。但是,我没有时间,所以请注意。

所以,脚本的所有荣耀(注意格式):

# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # - # # - foreach(记录Machine_List美元){$ ObjMachine = Get-WMIObject海尔集团“Win32_ComputerSystem”名称空间“根\ cimv2”-电脑记录。美元MachineName凭据LocalMachineCred认证6模拟3 write-host

#主要

# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

#——

#设置配置变量

#——

美元Machine_CSV = " machine_list.csv "

美元域名= " mydomain "

#定义的datatable

#——

$MachinesTable = new-object System.Data.DataTable

MachinesTable美元。表= "机器"

[空白]MachinesTable.Columns.Add美元(“名字”)

[空白]MachinesTable.Columns.Add美元(“状态”)

[空白]MachinesTable.Columns.Add美元(“UnJoinStatus”)

[空白]MachinesTable.Columns.Add美元(“JoinStatus”)

#获取域信誉

#——

$ DomainCred = Get-Credential

定义通用陷阱

#——

陷阱{write-host $_ -Foregroundcolor Red;

继续}

$Machine_List = Import-Csv

& {

(MachineName = $美元Record.MachinePath) .Split (", ")

(MachineParentOU = $美元Record.MachinePath) .SubString($(美元MachineName[0]。长度+ 1))

(MachineName = $美元MachineName [0] .Split (" = ")) [1]

Add-Member -inputObject $Record -membertype noteProperty '

-name "MachineName" -value $MachineName

Write-Host”检查$ (Record.MachineName美元)"-NoNewline

{。

陷阱{继续}

$Ping = new-object Net.NetworkInformation.Ping

结果= Ping.Send美元($ Record.MachineName)

}

如果美元的结果。地位eq“成功”){

写host ' t "[ONLINE]" -Foregroundcolor Green

Add-Member -inputObject $Record -membertype noteProperty '

-名称“Status”-值“Online”

}

其他{

write-host ' t "[脱机]" -前色为红色

Add-Member -inputObject $Record -membertype noteProperty '

-名称“Status”-值“脱机”

}

如果美元的纪录。地位eq“在线”){

$ LocalMachineCred = Get-Credential

$ = [System.Runtime.InteropServices.marshal]:型:SecureStringToBSTR (DomainCred.Password美元)

密码= [System.Runtime.InteropServices.marshal]:美元:PtrToStringAuto(美元)型

UnJoinStatus = ObjMachine美元。UnjoinDomainOrWorkgroup($Null, $Null)

JoinStatus = ObjMachine美元。JoinDomainOrWorkgroup($DomainName, $Password, $($DomainCred.UserName), $MachineParentOU, 3)

}

[空白](MachinesTable.Rows.Add美元纪录。MachineName,美元纪录。地位,UnJoinStatus美元。ReturnValue JoinStatus.ReturnValue美元)

}

}

MachinesTable美元

加入网络世界社区有个足球雷竞技app脸谱网LinkedIn对最重要的话题发表评论。
相关:

版权©2008Raybet2

工资调查:结果在