Solved

Script to move a computer object and add to specified groups.

Posted on 2013-05-16
14
598 Views
Last Modified: 2013-06-16
Hello all,

Im looking for some help creating a script (or finding one) that can be used easily by our workstation support team.

Here is what needs to happen

1. Computer Object gets created in a specified OU - This will be done manually.
2. Workstation Tech starts the script and enters the computer name that was created.
3. Script moves the computer object to a specified OU and adds it to a set of specified security groups.

Thanks again,
0
Comment
Question by:omcmonitor
  • 6
  • 6
14 Comments
 
LVL 7

Expert Comment

by:BT15
ID: 39172400
this asks for an inputed computername. you just need to sub out the distiguished name of the OU that you are moving to and the group names you want to add.

you also need the activedirectory commandlets installed (RSAT)

if you dont have those (or are running XP/server 2003) there are AD commandlets availible from Quest with similar syntax.



import-module activedirectory

$computername = read-host Enter Computer Name

get-adcomputer $computername | move-adobject -targetpath "OU=Destination,DC=Test,Dc=Domain,DC=com

add-adgroupmember "Group1" -members $computername
add-adgroupmember "Group2" -members $computername
add-adgroupmember "Group3" -members $computername
0
 

Author Comment

by:omcmonitor
ID: 39172533
Sorry for my lack of knowledge, is this a vb script?
0
 
LVL 7

Expert Comment

by:BT15
ID: 39172553
no need to be sorry. I didnt see that this was given multiple topics.

This is powershell.

what Operating system will you be using to execute this?
0
 

Author Comment

by:omcmonitor
ID: 39172566
Well we all run windows 7. So that should work out just fine! Ill go test it out!
0
 
LVL 7

Expert Comment

by:BT15
ID: 39172581
great.

you will want to install RSAT if you dont have it already.

http://www.microsoft.com/en-us/download/details.aspx?id=7887
0
 

Author Comment

by:omcmonitor
ID: 39172588
Yep I have that installed for sure. I can get the others setup with it.
0
 

Author Comment

by:omcmonitor
ID: 39172615
Is there a way i can specify the OU that the script looks in initially? say OU=Computers,DC=Domain,DC=Org

Currently, does it just look through the entire directory?
0
 
LVL 7

Expert Comment

by:BT15
ID: 39172761
absolutely

import-module activedirectory

$computername = read-host Enter Computer Name

get-adcomputer $computername -searchbase "OU=Computers,DC=Domain,DC=Org" | move-adobject -targetpath "OU=Destination,DC=Test,Dc=Domain,DC=com

add-adgroupmember "Group1" -members $computername
add-adgroupmember "Group2" -members $computername
add-adgroupmember "Group3" -members $computername
0
 

Author Comment

by:omcmonitor
ID: 39174656
I am running the commands one at a time and get the following error.

Windows PowerShell
Copyright (C) 2009 Microsoft Corporation. All rights reserved.

PS U:\> import-module activedirectory
PS U:\> $computername = read-host Enter Computer Name
Enter Computer Name: SEC1ITL004
PS U:\> get-adcomputer $computername -searchbase "OU=Computers Test,DC=Domain,DC=org" | move-adobject -targetpath "OU=Wi
reless Lockdown,OU=Imprivata,OU=Workstations,OU=Devices,OU=Hospital,DC=Domain,DC=org"
Get-ADComputer : A positional parameter cannot be found that accepts argument 'SEC1ITL004'.
At line:1 char:15
+ get-adcomputer <<<<  $computername -searchbase "OU=Computers Test,DC=Domain,DC=org" | move-adobject -targetpath "OU=W
ireless Lockdown,OU=Imprivata,OU=Workstations,OU=Devices,OU=Hospital,DC=olmmed,DC=org"
    + CategoryInfo          : InvalidArgument: (:) [Get-ADComputer], ParameterBindingException
    + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.ActiveDirectory.Management.Commands.GetADComputer

Open in new window

0
 
LVL 7

Expert Comment

by:BT15
ID: 39174854
my appologies. Please try this instead:

import-module activedirectory

$computername = read-host Enter Computer Name

get-adcomputer -searchbase "OU=Computers,DC=Domain,DC=Org"  -filter {name -eq $computername}| move-adobject -targetpath "OU=Destination,DC=Test,Dc=Domain,DC=com

add-adgroupmember "Group1" -members $computername
add-adgroupmember "Group2" -members $computername
add-adgroupmember "Group3" -members $computername

Open in new window

0
 

Author Comment

by:omcmonitor
ID: 39174886
Now after this

get-adcomputer -searchbase "OU=Computers,DC=Domain,DC=Org"  -filter {name -eq $computername}| move-adobject -targetpath "OU=Destination,DC=Test,Dc=Domain,DC=com

Open in new window


I just get the following prompt with the blinking cursor after it.

>>

Open in new window

0
 
LVL 7

Accepted Solution

by:
BT15 earned 500 total points
ID: 39181687
sorry. its missing a closed quote on that line, which apparently didnt paste.


import-module activedirectory

$computername = read-host Enter Computer Name

get-adcomputer -searchbase "OU=Computers,DC=Domain,DC=Org"  -filter {name -eq $computername}| move-adobject -targetpath "OU=Destination,DC=Test,Dc=Domain,DC=com"

add-adgroupmember "Group1" -members $computername
add-adgroupmember "Group2" -members $computername
add-adgroupmember "Group3" -members $computername

Open in new window

0
 
LVL 45

Expert Comment

by:Martin Liss
ID: 39251080
This question has been classified as abandoned and is closed as part of the Cleanup Program. See the recommendation for more details.
0

Join & Write a Comment

Utilizing an array to gracefully append to a list of EmailAddresses
In this article, we will see the basic design consideration while designing a Multi-tenant web application in a simple manner. Though, many frameworks are available in the market to develop a multi - tenant application, but do they provide data, cod…
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now