Script for automating vmware

We have two VMware ESX servers in production, and also use the Virtual Center for management. I downloaded and installed the vmware VI3 toolkit and Windows Powershell so that we can automate such things as deleting and cloning our virtual servers. I can open the toolkit command window and execute the commands with no problem, but how would I make a script that I can schedule? I tried making one in notepad and giving it a ps1 extension, but the only thing that happens is a command window pops up then goes away immediately. I am totally new to scripting with powershell/vmware. The bad thing is, I can't even see what is going on because I don't know how to "pause" the script to see what is happening.
Here is what I put into notepad and saved as script.ps1 :

connect-esx -server 192.168.1.249 -user root -password vmware
remove-vm (get-vm "eservice clone") -deletefromdisk
LVL 1
ilguybobAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
BSonPoshConnect With a Mentor Commented:
try adding this to the top of your script

add-pssnapin VMware.VimAutomation.Core -ea 0
0
 
BSonPoshCommented:
I do not believe there is a connect-esx. Perhaps you are looking for connect-viserver or get-vc

(as a side note... probably not a good idea to store your password in clear text. Look here on other options http://bsonposh.com/archives/338)
0
 
S00007359Commented:
you'd be better of with some scripting tools, where you can compile etc, to see/debug your scripts. Trying using this link: http://www.primalscript.com/
0
Receive 1:1 tech help

Solve your biggest tech problems alongside global tech experts with 1:1 help.

 
ilguybobAuthor Commented:
The first suggestion appeared to work, but I have the virtual machine that was deleted still in the inventory, but it is in italics and says orphaned in parenthesis. I know I can remove it manually, but is there another script entry I could put in to do this for me?
0
 
BSonPoshCommented:
You can use Remove-Inventory to remove it.

Type this at the prompt for more on the cmdlet
get-help Remove-Inventory -full

You may even be able to do this
get-vm <name> | remove-Inventory
0
 
ilguybobAuthor Commented:
If I do that after the delete command, I get an error that the vm cannot be found, even though it says it is there and orphaned. If I run the remove-inventory command first, it gives the same "orphaned" state and I canot run the delete command (vm not found).
Maybe I am looking at this the wrong way? We are trying to come up with an automated way to clone our vm servers and delete the old ones once a week to a different esx server. Works great if we do it manually. If we schedule it, it cannot run because there is not enough space on that server to have more than one copy of the cloned vm's. It seems like this would be a pretty common thing to do and I am surprised there is no automated way of doing it.
0
 
BSonPoshCommented:
Perhaps I was confused. I thought you were just trying to cleanup.

What you want is Remove-VM

Remove-VM VMName -DeleteFromDisk
0
 
ilguybobAuthor Commented:
That works, but always prompts me to make sure I want to execute it. I tried adding /y -y and just plain y at the end of the delete command. Is there a parameter that will execute the command without prompting?
0
 
BSonPoshCommented:
Try this

Remove-VM VMName -DeleteFromDisk -Confirm:$false
0
 
ilguybobAuthor Commented:
Bingo! Thanks a lot!
0
All Courses

From novice to tech pro — start learning today.