Improve company productivity with a Business Account.Sign Up

x
?
Solved

What is wrong with this for loop?

Posted on 2013-01-22
7
Medium Priority
?
531 Views
Last Modified: 2013-06-16
I am trying to find the state a a list of vms with this for loop:

$VM = get-content C:\Users\PowerShell\left_overs.txt

foreach ($PC in $VM) { get-vm }

Open in new window


Instead of giving me the list of the few VMs in the list it gives me everything in vsphere... any ideas why this is not working?
0
Comment
Question by:Thaidog
  • 3
  • 2
  • 2
7 Comments
 
LVL 35

Accepted Solution

by:
Joseph Daly earned 2000 total points
ID: 38807238
Your not passing the -name parameter to your GET-VM command.

Try this.

$VM = get-content C:\leftovers.txt
foreach ($computer in $VM) {
get-vm -name $computer
}
0
 
LVL 40

Expert Comment

by:Subsun
ID: 38807310
$VM = get-content C:\Users\PowerShell\left_overs.txt
foreach ($PC in $VM) { get-vm $PC}


and

Get-content C:\Users\PowerShell\left_overs.txt | get-vm

Should also work..
0
 
LVL 1

Author Comment

by:Thaidog
ID: 38807358
The first worked - thanks! The second I got an error:

"Cannot process argument transformation parameter 'Datastore'. Strings as pipeline input are not supported."
0
NEW Internet Security Report Now Available!

WatchGuard’s Threat Lab is a group of dedicated threat researchers committed to helping you stay ahead of the bad guys by providing in-depth analysis of the top security threats to your network.  Check out this quarters report on the threats that shook the industry in Q4 2017.

 
LVL 40

Expert Comment

by:Subsun
ID: 38807374
Then Try..
Get-content C:\Users\PowerShell\left_overs.txt | % {get-vm $_}

Open in new window

0
 
LVL 1

Author Comment

by:Thaidog
ID: 38810412
Did not work:

PS C:\Users\> Get-content C:\Users\SkyDrive\PowerShell\left_overs.txt | % {get-vm $_}
Get-VM : 1/23/2013 10:33:23 AM    Get-VM        VM with name 'Server1 on' was not found using the specified filter(
s).
At line:1 char:77
+ Get-content C:\Users\SkyDrive\PowerShell\left_overs.txt | % {get-vm <<<<  $_}
    + CategoryInfo          : ObjectNotFound: (:) [Get-VM], VimException
    + FullyQualifiedErrorId : Core_OutputHelper_WriteNotFoundError,VMware.VimAutomation.ViCore.Cmdlets.Commands.GetVM

Open in new window


(Edit: Redacted - Modulus_Twelve)
(http://www.experts-exchange.com/R_20923.html)
0
 
LVL 40

Expert Comment

by:Subsun
ID: 38810452
It says  VM with name 'Server1 on' was not found

(Edit: Redacted - Modulus_Twelve)
(http://www.experts-exchange.com/R_20923.html)
0
 
LVL 35

Expert Comment

by:Joseph Daly
ID: 38810453
If my solution worked why are you still looking for another answer?
0

Featured Post

Improved Protection from Phishing Attacks

WatchGuard DNSWatch reduces malware infections by detecting and blocking malicious DNS requests, improving your ability to protect employees from phishing attacks. Learn more about our newest service included in Total Security Suite today!

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Excel allows various different methods to link Excel files to each other. This includes relative paths, mapped drives (or the local drive) and UNC paths. UNC paths are the least robust of the three.
What is Archiving? Archiving in Exchange Online (called In-Place Archiving) provides users with additional mailbox storage space.
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)
Screencast - Getting to Know the Pipeline

595 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