powershell - 使用Powershell在任务序列期间将计算机添加到多个Active Directory组

标签 powershell active-directory sccm

我正在尝试为SCCM设置任务序列,以将便携式计算机自动添加到3个Active Directory组中。我已经设置了执行此操作的步骤,并且正在调用Powershell脚本来执行此操作。该脚本应以网络管理员身份运行,因此我不认为授权有任何问题,但是对于Powershell来说我是 super 新手,因此我认为我的问题与语法有关。我的脚本非常简单,我所需要的所有资源似乎使Powershell变得过于复杂。这是我的脚本:

ADD-ADGroupMember "GroupOne" -members "$env:computername$"
ADD-ADGroupMember "GroupTwo" -members "$env:computername$"
ADD-ADGroupMember "GroupThree" -members "$env:computername$"

我发现,$ env:computername应该会自动收集在任务序列中较早建立的计算机的名称,然后需要使用powershell添加$之后的$。

任何帮助,将不胜感激。

编辑:我终于让它工作了,下面是我找到的并用于其中一种powershell脚本的代码-
 $ComputerName = gc env:computername

 $isMember = new-object DirectoryServices.DirectorySearcher([ADSI]"")
 $ismember.filter = “(&(objectClass=computer)(sAMAccountName=$Computername$)(memberof=CN=<CN NAME>,OU=<OU NAME>,DC=<DC NAME>,DC=<DC NAME>))”
 $isMemberResult = $isMember.FindOne()

 If ($isMemberResult) {exit}

 else
{
   $searcher = new-object DirectoryServices.DirectorySearcher([ADSI]"")
   $searcher.filter = “(&(objectClass=computer)(sAMAccountName= $Computername$))”
   $FoundComputer = $searcher.FindOne()
   $P = $FoundComputer | select path
   $ComputerPath = $p.path
   $GroupPath = "LDAP://CN=<CN NAME>,OU=<OU NAME>,DC=<DC NAME>,DC=<DC NAME>"
   $Group = [ADSI]"$GroupPath"
   $Group.Add("$ComputerPath")
   $Group.SetInfo()
}

最佳答案

无需尝试从环境变量中编写计算机的帐户名,然后再使用该帐户名将其添加到组中,只需从Active Directory中获取计算机对象:

$Computer = Get-ADComputer -Identity $env:ComputerName
foreach ($Group in @("GroupOne", "GroupTwo", "GroupThree")) {
    Add-ADGroupMember -Identity $Group -Members $Computer
}

关于powershell - 使用Powershell在任务序列期间将计算机添加到多个Active Directory组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43981614/

相关文章:

powershell - 从表输出中删除椭圆

java - Windows 与 Tomcat 的集成安全性

c# - System.DirectoryServices.Protocols Paged get all users 代码突然停止获取超过第一页的用户

c# - 仅轮询 Active Directory 中的密码更改

sql - SQL语句中分组多个 'AND x not like y'

sql-server - 已安装 SQL,但 powershell 未获取 sqlps 命令(如 invoke-sqlcmd)

powershell - 从Windows批处理文件调用Powershell cmdlet

powershell - Powershell将电子邮件发送给Excel电子表格中的收件人

c# - 使用 Powershell 创建 ConfigMgr 应用程序时图标质量不佳

powershell - Powershell SCCM客户端应用程序安装