copybyte
Goto Top

Powershell Problem IF Statement

Hallo liebe Admins,

ich bin neu in Powershell eingertiegen und habe mit Hilfe und Beispielen schon Einiges gebaut.
Jetzt verzweifle ich seit 2 tagen daran ein Skripe anzupassen.
Es soll eine Liste aus dem AD ziehen und prüfen, ob die Rechner online sind.
Ich habe das Skript soweit, daß es mir eine Liste in CSV erstellt, aber ich möchte nur Einträge haben, wenn der Rechner online ist.
Habe mit diversen IF, ELSE Konstrukten probiert im folgenden Teil zu verzweigen, aber keinen Erfolg gehabt.

# Create an object for each computer with the client's online status.  
$Output += New-Object -TypeName PSObject -Property @{
"ComputerName" = $_.Name;  
"Status" = Test-Connection -ComputerName $_.Name -Quiet -Count 1  
}
Weiß jemand Rat?

Hier ist das komplette Skript:

# Dynamic array to hold the output.
$Output = @()

# grab a list of computers from AD.
$ComputerList = Get-ADComputer -Filter *

# Count the number of computers for the Write-Progress Cmdlet.
$Count = $ComputerList |
Measure-Object |
Select-Object -ExpandProperty Count

# Control variable
$I = 0


$ComputerList |
ForEach-Object {
#Incriment the control variable
$I++

# Calculate percent completed
$PC = ($I/$Count)*100

# Display progress bar.
Write-Progress -Activity "Connectivity Test: $_.Name" -Status "$PC% Complete" -PercentComplete $PC  

# Create an object for each computer with the client's online status. 
$Output += New-Object -TypeName PSObject -Property @{
"ComputerName" = $_.Name;  
"Status" = Test-Connection -ComputerName $_.Name -Quiet -Count 1  
}

}
# Convert the output to HTML
$MailOutput = $Output | ConvertTo-HTML -Fragment | Out-String

# Send the email.
Send-MailMessage -to "Administrator@TechTour.com" -From "Allofus@HP.com" -Subject "Connectivity Test" -BodyAsHtml -building $MailOutput -SmtpServer Tech-EX1  

Quelle:
http://community.idera.com/database-tools/powershell/ask_the_experts/f/ ...

Content-ID: 392409

Url: https://administrator.de/forum/powershell-problem-if-statement-392409.html

Ausgedruckt am: 23.12.2024 um 04:12 Uhr

certifiedit.net
certifiedit.net 11.11.2018 um 10:43:52 Uhr
Goto Top
Hallo,

ich sehe im Skript keine Abfrage, wie geschildert?

Hast du die denn noch gar nicht eingebaut?

dazu, u.a
https://www.windowspro.de/script/if-else-switch-bedingte-anweisungen-pow ...
137808
137808 11.11.2018 aktualisiert um 17:17:53 Uhr
Goto Top
# ...
# ..
$onlineonly = $output | ?{$_.Status}
copybyte
copybyte 12.11.2018 um 08:17:56 Uhr
Goto Top
Ich hatte versucht, daß so zu lösen, aber bekomme bei Ausführung in der Konsole nur True und False zurück.

(Test-Connection -ComputerName $_.Name -Quiet -Count 1  )
	IF ($Connection -eq 'True'){  
	$Output += New-Object -TypeName PSObject -Property @{
	"ComputerName" = $_.Name;  
	}