Powershell script

Robert Ford
Elite Poster
Elite Poster
Berichten: 1443
Lid geworden op: 12 Nov 2005
Bedankt: 99 keer
Recent bedankt: 2 keer
Uitgedeelde bedankjes: 104 keer

Powershell script

Berichtdoor Robert Ford » 28 Nov 2019, 15:54

Is er iemand die me even kan helpen met een eenvoudig Powershell script. Ik zou graag de uptime van een ESXi host terugkrijgen in een script als variabele. Momenteel heb ik een werkend script maar er is nog iets te veel output dat ik niet gefilterd krijg.

Import-Module VMware.PowerCLI
Connect-VIServer vcsa.domain.local -User [email protected] -Password 123456789
New-Timespan -Start (Get-VMHost -Name 192.168.1.250).ExtensionData.Summary.Runtime.BootTime -End (Get-Date) | Select -ExpandProperty Days


Geeft momenteel volgende output:


Name Port User
---- ---- ----
vcsa.domain.local 443 VSPHERE.LOCAL\admin
80



Eigenlijk heb ik enkel 80 nodig als output, dus

Write-Output van bijvoorbeeld $uptime zou 80 moeten zijn. Hoe kan ik dit klaarspelen? Format-Table?

NickG
Elite Poster
Elite Poster
Berichten: 1499
Lid geworden op: 13 Sep 2005
Bedankt: 50 keer
Uitgedeelde bedankjes: 36 keer

Re: Powershell script

Berichtdoor NickG » 29 Nov 2019, 08:53

Heb zelf niet meteen een ESXi om te testen, maar afgaande op je output: kan je niet gewoon splitten op een spatie of newline (afhankelijk van je output)? Dus bv $split=$output.split(" ") en dan $split[4] gebruiken? Ugly, maar zou volgens mij wel moeten werken :-)

Gebruikersavatar
raf1
Elite Poster
Elite Poster
Berichten: 4494
Lid geworden op: 17 Nov 2009
Bedankt: 1453 keer
Recent bedankt: 6 keer
Uitgedeelde bedankjes: 229 keer

Re: Powershell script

Berichtdoor raf1 » 29 Nov 2019, 09:50

Je kan de output van het eerste commando onderdrukken:

Code: Selecteer alles

Import-Module VMware.PowerCLI
[void]Connect-VIServer vcsa.domain.local -User [email protected] -Password 123456789
New-Timespan -Start (Get-VMHost -Name 192.168.1.250).ExtensionData.Summary.Runtime.BootTime -End (Get-Date) | Select -ExpandProperty Days

of

Code: Selecteer alles

Import-Module VMware.PowerCLI
Connect-VIServer vcsa.domain.local -User [email protected] -Password 123456789 > $null
New-Timespan -Start (Get-VMHost -Name 192.168.1.250).ExtensionData.Summary.Runtime.BootTime -End (Get-Date) | Select -ExpandProperty Days

of

Code: Selecteer alles

Import-Module VMware.PowerCLI
Connect-VIServer vcsa.domain.local -User [email protected] -Password 123456789 | Out-Null
New-Timespan -Start (Get-VMHost -Name 192.168.1.250).ExtensionData.Summary.Runtime.BootTime -End (Get-Date) | Select -ExpandProperty Days

Robert Ford
Elite Poster
Elite Poster
Berichten: 1443
Lid geworden op: 12 Nov 2005
Bedankt: 99 keer
Recent bedankt: 2 keer
Uitgedeelde bedankjes: 104 keer

Re: Powershell script

Berichtdoor Robert Ford » 07 Jan 2020, 16:01

raf1 schreef:Je kan de output van het eerste commando onderdrukken:


Raf, ik heb nog een uitdaging :)

PS C:\Users\User> Get-Stat -Memory -IntervalSecs 5 -Entity ($vmHost)-MaxSamples 1 | Where-Object {$_.MetricID -eq “mem.usage.average”}

Geeft me een mooie tabel met resultaten, ik heb echter alleen de waarde 62,25 nodig in een variabele.

Afbeelding

Hoe kan ik de waarde 62,25 er nog uit filteren?

Turbokeu
Member
Member
Berichten: 81
Lid geworden op: 28 Feb 2007
Locatie: Dilbeek - Brussels
Bedankt: 10 keer
Uitgedeelde bedankjes: 6 keer
Contact:

Re: Powershell script

Berichtdoor Turbokeu » 07 Jan 2020, 17:12

Ik zou zeggen:

$Variable = (Get-Stat -Memory -IntervalSecs 5 -Entity ($vmHost)-MaxSamples 1 | Where-Object {$_.MetricID -eq “mem.usage.average”}).Value

NickG
Elite Poster
Elite Poster
Berichten: 1499
Lid geworden op: 13 Sep 2005
Bedankt: 50 keer
Uitgedeelde bedankjes: 36 keer

Re: Powershell script

Berichtdoor NickG » 08 Jan 2020, 12:55

Of Get-Stat -Memory -IntervalSecs 5 -Entity ($vmHost)-MaxSamples 1 | Where-Object {$_.MetricID -eq “mem.usage.average”} | select Value


Terug naar “Web-en applicatie-ontwikkeling”

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers en 1 gast