I think I found the issue. The $Ldap value was coming out as "LDAP://Group"
instead of "LDAP:// cn=Group,ou=Groups,dc=csuchico,dc=edu". I modified the
following:

 

#Set Group Name

#$Ldap = "LDAP://" + $name

$Ldap = "LDAP://cn=" + $name + ",ou=Groups,dc=csuchico,dc=edu"

[ADSI]$group = $LDAP  

 

 

From: [email protected] [mailto:[email protected]]
On Behalf Of Jerousek, Jeff
Sent: Wednesday, June 22, 2016 8:43 AM
To: [email protected]
Subject: Re: [mssms] RE: VB Script to add user to security group during
imaging?

 

The search filter at the top should replace the one on the bottom.

 

The PC also needs to be a member of the domain or you need to specify it
manually, instead of using get current domain.

  _____  

From:  <mailto:[email protected]>
[email protected] < <mailto:[email protected]>
[email protected]> on behalf of Murray, Mike <
<mailto:[email protected]> [email protected]>
Sent: Wednesday, June 22, 2016 9:38:50 AM
To:  <mailto:[email protected]> [email protected]
Subject: RE: [mssms] RE: VB Script to add user to security group during
imaging? 

 

Makes sense. I'm still having problems with the original, though. Here is
the updated script that reads in the parameters. I get the error listed
below the code. I Googled, but couldn't find anything definitive. I am
running this script as a user with domain admin.

 

 

Param (

       

       [Parameter(Mandatory = $true, HelpMessage = "AD Group
(distingiushedname)", Position = 0)]

       [string]$ADGroup,

       [Parameter(Mandatory = $true, HelpMessage = "User Sammacount",
Position = 1)]

       [string]$userName

 

)

$search.Filter = "(SAMAccountName=$userName)"

 

 

#Distinguished Name of group

$name = $ADGroup

 

#Get Domain

$domain =
[System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()

$root = $domain.GetDirectoryEntry()

 

#Find user in Domain

$search = [System.DirectoryServices.DirectorySearcher]$root

$search.Filter = "(SAMAccountName=$env:USERNAME)"

$result = $search.FindOne()

$user = [ADSI]$result.path

 

#Set Group Name

$Ldap = "LDAP://" + $name

[ADSI]$group = $LDAP 

 

#Add Computer to Named Group

$group.psbase.Invoke("Add",$user.psbase.path) 

 

Exception calling "Invoke" with "2" argument(s): "The server is not
operational.

"

At C:\Users\mmurray\Desktop\CM2012 Project\OSD PS
Scripts\AddUserToGroup.ps1:30 char:1

+ $group.psbase.Invoke("Add",$user.psbase.path)

+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    + CategoryInfo          : NotSpecified: (:) [],
MethodInvocationException

    + FullyQualifiedErrorId : DotNetMethodException 

 

 

 

 

From:  <mailto:[email protected]>
[email protected] [ <mailto:[email protected]>
mailto:[email protected]] On Behalf Of Ryan
Sent: Wednesday, June 22, 2016 5:24 AM
To:  <mailto:[email protected]> [email protected]
Subject: Re: [mssms] RE: VB Script to add user to security group during
imaging?

 

The original script doesn't use the AD cmdlets so it should work in WinPE. 

 

On Tue, Jun 21, 2016, 5:21 PM Murray, Mike <[email protected]
<mailto:[email protected]> > wrote:

This doesn't seem to be working via the TS. I'm guessing because the AD PS
module is not in our image. Anyone else have anything that might work for
this?

 

From: [email protected] <mailto:[email protected]>
[mailto:[email protected]
<mailto:[email protected]> ] On Behalf Of Jerousek, Jeff

Sent: Tuesday, June 21, 2016 11:52 AM


To: [email protected] <mailto:[email protected]> 
Subject: [mssms] RE: VB Script to add user to security group during imaging?

 

You are welcome. 

 

We don't use MDT but these scripts work best with the ad user you are
running them as in the local admin group of that machine. 

 

We add the SCCM user at the start of the task sequence and remove it at the
end.

 

From: [email protected] <mailto:[email protected]>
[mailto:[email protected]] On Behalf Of Murray, Mike
Sent: Tuesday, June 21, 2016 12:43 PM
To: [email protected] <mailto:[email protected]> 
Subject: [mssms] RE: VB Script to add user to security group during imaging?

 

I really appreciate your help! I was able to simplify this, I believe. I
haven't tested in OSD just yet, but it works running locally.

 

Param (

       

       [Parameter(Mandatory = $true, HelpMessage = "AD Group
(distingiushedname)", Position = 0)]

       [string]$ADGroup,

       [Parameter(Mandatory = $true, HelpMessage = "User Sammacount",
Position = 1)]

       [string]$userName

 

)

 

Add-ADGroupMember -Identity $ADGroup -Members $userName 

 

 

 

 

 

From: [email protected] <mailto:[email protected]>
[mailto:[email protected]] On Behalf Of Jerousek, Jeff
Sent: Monday, June 20, 2016 11:27 AM
To: [email protected] <mailto:[email protected]> 
Subject: [mssms] RE: VB Script to add user to security group during imaging?

 

It should if you do something like this:

 

Param (

       

       [Parameter(Mandatory = $true, HelpMessage = "AD Group
(distingiushedname)", Position = 0)]

       [string]$ADGroup,

[Parameter(Mandatory = $true, HelpMessage = "User Sammacount" Position = 1)]

       [string]$userName

 

)

$search.Filter = "(sAMAccountName=$userName)"

 

Then call it with something like powershell.exe .\scriptName.ps1 -Adgroup
%TSVar% -userName %TSVar2%

 

Thanks,

 <mailto:[email protected]> Jeff Jerousek

 

From: [email protected] <mailto:[email protected]>
[mailto:[email protected]] On Behalf Of Murray, Mike
Sent: Monday, June 20, 2016 11:44 AM
To: [email protected] <mailto:[email protected]> 
Subject: [mssms] RE: VB Script to add user to security group during imaging?

 

I need this to be able to read in the user name from a task sequence
variable. Will this do that?

 

From: [email protected] <mailto:[email protected]>
[mailto:[email protected]] On Behalf Of Jerousek, Jeff
Sent: Monday, June 20, 2016 9:32 AM
To: [email protected] <mailto:[email protected]> 
Subject: [mssms] RE: VB Script to add user to security group during imaging?

 

Here is PS script that I use:

 

Param (

       

       [Parameter(Mandatory = $true, HelpMessage = "AD Group
(distingiushedname)", Position = 0)]

       [string]$ADGroup

)

 

#Distinguished Name of group

$name = $ADGroup

 

#Get Domain

$domain =
[System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()

$root = $domain.GetDirectoryEntry()

 

#Find user in Domain

$search = [System.DirectoryServices.DirectorySearcher]$root

$search.Filter = "(sAMAccountName=$env:USERNAME)"

$result = $search.FindOne()

$user = [ADSI]$result.path

 

#Set Group Name

$Ldap = "LDAP://" + $name

[ADSI]$group = $LDAP 

 

#Add Computer to Named Group

$group.psbase.Invoke("Add",$user.psbase.path) 

 

 

Thanks,

 <mailto:[email protected]> Jeff Jerousek

 

From: [email protected] <mailto:[email protected]>
[mailto:[email protected]] On Behalf Of Murray, Mike
Sent: Monday, June 20, 2016 10:54 AM
To: [email protected] <mailto:[email protected]> 
Subject: [mssms] RE: VB Script to add user to security group during imaging?

 

:bump:

 

From: [email protected] <mailto:[email protected]>
[mailto:[email protected]] On Behalf Of Murray, Mike
Sent: Thursday, June 16, 2016 4:26 PM
To: [email protected] <mailto:[email protected]> 
Subject: [mssms] VB Script to add user to security group during imaging?

 

Hey folks,

 

I have the script below that adds the *computer* account to a security group
via "CSCRIPT.EXE AddGroup.vbs "Group Name". Could someone help me modify it
to add a user to the same group? The user would be a task sequence variable
(OSDUser or whatever). Thanks in advance!

 

Const ADS_PROPERTY_APPEND = 3

Set WshShell = WScript.CreateObject("WScript.Shell")

'----Get Computer DN------

 

Set objADSysInfo = CreateObject("ADSystemInfo")

ComputerDN = objADSysInfo.ComputerName

strcomputerdn = "LDAP://" & computerDN

Set objADSysInfo = Nothing

 

'----Connect AD-----

 

Set oRoot = GetObject("LDAP://rootDSE")

strDomainPath = oRoot.Get("defaultNamingContext")

Set oConnection = CreateObject("ADODB.Connection")

oConnection.Provider = "ADsDSOObject"

oConnection.Open "Active Directory Provider"

 

Count = WScript.Arguments.Count

For i = 0 To  count-1        

                Group = WScript.Arguments(i)

                Addgroup Group

Next 

 

'----Get Group DN------

Function Addgroup(groupname)

                Set oRs = oConnection.Execute("SELECT adspath FROM 'LDAP://"
& strDomainPath & "'" & "WHERE objectCategory='group' AND " & "Name='" &
GroupName & "'")

                If Not oRs.EOF Then

                                strAdsPath = oRs("adspath")

                End If

                If IsEmpty(strAdsPath) = False  Then 

                                Const ADS_SECURE_AUTHENTICATION = 1

                                Set objGroup = GetObject(stradspath) 

                                Set objComputer = GetObject(strComputerDN)

                                If (objGroup.IsMember(objComputer.AdsPath) =
False) Then

                                                objGroup.PutEx
ADS_PROPERTY_APPEND, "member", Array(computerdn)

                                                objGroup.SetInfo

                                End If

                End If 

End Function

 

 

Best Regards,

 

Mike Murray

Desktop Management Coordinator - IT Support Services

California State University, Chico

530.898.4357
[email protected] <mailto:[email protected]> 

 

Remember, Chico State will NEVER ask you for your password via email!  

For more information about recognizing phishing scam emails go to:
http://www.csuchico.edu/isec/basics/spam-and-phishing.shtml

 

 

 

 

 

 

 

 

 

 

 

 



Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to