Microsoft Virtualization Discussions
Microsoft Virtualization Discussions
Please help a serious newbie to powershell. 🙂
Thanks to a lot of plagiarism from this community I was able to put together powershell line that outputs exactly what I need to see in the format I want to see it. It outputs snapshots older than 14 days and their sizes in GB:
Get-NaVol |
Get-NaSnapshot |
where-object {$_.AccessTimeDT -le $Now.AddDays(-14) -and $_.Dependency -eq "" } |
select TargetName,Name,Created,Total,CumulativeTotal,Dependency |
ft @{Expression={$_.TargetName};Label="Volume";Width=20},@{Expression={$_.Name};Label="Name";Width=25},@{Expression={$_.Created.ToShortDateString()};Label="Created";Width=12},@{Expression={ConvertTo-FormattedNumber $_.Total DataSize "0.0"};Label="Total";Width=10},@{Expression={ConvertTo-FormattedNumber $_.CumulativeTotal DataSize "0.0"};Label="Cumulative";Width=10},@{Expression={$_.Dependency};Label="Dependency"}
This works perfectly if I run it as a standalone line after I have already connected to a filer.
But if I put it it in the most simple of loops it errors out - I cannot for the life of me figure out why:
$pass="p@ssword"
$user = "root"
$NetappList=("90.0.0.2","90.0.0.3")
$password = ConvertTo-SecureString $pass -AsPlainText -Force
$cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $user,$password
$WarningDays = 14
foreach ($np in $NetappList) {
Connect-nacontroller $np -Credential $cred
Get-NaVol |
Get-NaSnapshot |
where-object {$_.AccessTimeDT -le $Now.AddDays(-14) -and $_.Dependency -eq "" } |
select TargetName,Name,Created,Total,CumulativeTotal,Dependency |
ft @{Expression={$_.TargetName};Label="Volume";Width=20},@{Expression={$_.Name};Label="Name";Width=25},@{Expression={$_.Created.ToShortDateString()};Label="Created";Width=12},@{Expression={ConvertTo-FormattedNumber $_.Total DataSize "0.0"};Label="Total";Width=10},@{Expression={ConvertTo-FormattedNumber $_.CumulativeTotal DataSize "0.0"};Label="Cumulative";Width=10},@{Expression={$_.Dependency};Label="Dependency"}
}
Output and error:
Name Address Ontapi Version
---- ------- ------ -------
90.0.0.2 90.0.0.2 1.15 NetApp Release 8.1RC3 7-Mode: Wed Feb 15 19:28:21 PST 2012
out-lineoutput : The object of type "Microsoft.PowerShell.Commands.Internal.Format.FormatStartData" is not valid or not
in the correct sequence. This is likely caused by a user-specified "format-table" command which is conflicting with th
e default formatting.
+ CategoryInfo : InvalidData: (:) [out-lineoutput], InvalidOperationException
+ FullyQualifiedErrorId : ConsoleLineOutputOutOfSequencePacket,Microsoft.PowerShell.Commands.OutLineOutputCommand
Would anyone happen to know why this happens or know how to fix it??
Thanks!!!
Solved! See The Solution
try to pipe all of it to 'Out-String' ( | Out-String)
try to pipe all of it to 'Out-String' ( | Out-String)
THANKS!!! Very much appreciated....
Graham