none
Umrechnung Bytes auf MB RRS feed

  • Frage

  • Habe jetzt noch eine Umrechnung der geliefeten Bytes in MB eingebaut.

    Das Ergebinis sieht jetzt so aus für den Wert: WS: 12.96484375Mb

    WS: $($_.WS / 1MB)Mb,

    Wollte die Kürzung auf 2 Stellen so machen

    WS: ${[math]::round($_.WS / 1MB, 2)}Mb,

    Allerdings sieht dann das Ergebnis so aus: WS: Mb,

    Was stimmt da nicht? So steht es in der Powershell - Doku

    Dienstag, 11. Juni 2013 09:52

Antworten

  • Ich Poste hier mal den ganzen (Funktionierenden) Code mit der MB Umrechnung!
    Mann muss wie in der Mathematik die runden Klammern  () richtig setzten, damit alles in der richtigen Reihenfolge abgearbeitet wird (von innen nach aussen) !

    # Variablen
    $smtpServer =  "smtp.xxxx.int"
    $serverliste = 'c:\temp\amd\serverliste.txt'
    $logfile = "d:\tmp\test.txt"
    $username = "myuser"
    $passwort = "mypassword"
    $subject =  "Test Monitoring IE "
    $mailfrom =  "from@xxxxxx.int"
    $mailto = "To@xxxxx.de"
    $mailbody =  "Test"
    
    # Serverlist.txt enthaelt alle zu überwachenden Server
    $Servers = Get-Content $serverliste
    
    # logfile.txt enhält das Ergebnis
    
    if (!([system.io.file]::exists($logfile))) {
    	new-item $logfile  -type file
    }
    
    #Falls altes log vorhanden lösche es#
    if (test-path $LogFile) {remove-item $LogFile }
    
    # alle Server durchlaufen
    foreach($server in $Servers){
    Get-Wmiobject win32_process -computer $server |
        Where-Object {$_.name -like "iexplore.exe" -and $_.ws -gt "100000"} |
            Select-Object  __Server,WS,name,@{n="owner";e={$_.getowner().user}} |
            ForEach-Object {"$(get-date -format u),  Auf Server: $($_.__Server),   Prozess: $($_.name),  WS: $([math]::round($_.WS / 1MB, 2))MB,  User: $($_.owner)"|
    	Out-File -FilePath $LogFile -Append -Encoding ASCII}
    }
    
    #Mail Objekte erstellen#
    $smtp = new-object Net.Mail.SmtpClient($smtpServer)
    $attachment = new-object Net.Mail.Attachment($LogFile)
    $credentials=new-object system.net.networkcredential
    $credentials.username = $username
    $credentials.password = $passwort
    $smtp.Credentials = $credentials.getcredential($smtpServer,"25","basic")
    $message = New-Object Net.Mail.MailMessage
    $message.Subject = $subject
    $message.From = $mailfrom
    $message.To.Add($mailto) 
    $message.Body = $mailbody
    $message.Attachments.Add($attachment)
    
    
    If (Test-Path $LogFile){ $smtp.Send($message) }
    $attachment.dispose()


    Please click “Mark as Answer” if my post answers your question and click “Vote As Helpful” if my Post helps you.
    Bitte markiere hilfreiche Beiträge von mir als “Als Hilfreich bewerten” und Beiträge die deine Frage ganz oder teilweise beantwortet haben als “Als Antwort markieren”.
    My PowerShell Blog http://www.admin-source.info
    [string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '
    German ? Come to German PowerShell Forum!

    Dienstag, 11. Juni 2013 12:49

Alle Antworten

  • Das wurde jetzt sehr unübersichtlich, deshalb habe ich die neue Frage mal abgetrennt. Bitte ändere obigen Post nochmal ab und poste die ganze Codezeile.

    Gruß, Denniver


    Blog: http://bytecookie.wordpress.com

    Hilf mit und markiere hilfreiche Beiträge als "Hilfreich" und Beiträge die deine Frage ganz oder teilweise beantwortet haben als "Antwort".

    Dienstag, 11. Juni 2013 12:09
    Moderator
  • Ich Poste hier mal den ganzen (Funktionierenden) Code mit der MB Umrechnung!
    Mann muss wie in der Mathematik die runden Klammern  () richtig setzten, damit alles in der richtigen Reihenfolge abgearbeitet wird (von innen nach aussen) !

    # Variablen
    $smtpServer =  "smtp.xxxx.int"
    $serverliste = 'c:\temp\amd\serverliste.txt'
    $logfile = "d:\tmp\test.txt"
    $username = "myuser"
    $passwort = "mypassword"
    $subject =  "Test Monitoring IE "
    $mailfrom =  "from@xxxxxx.int"
    $mailto = "To@xxxxx.de"
    $mailbody =  "Test"
    
    # Serverlist.txt enthaelt alle zu überwachenden Server
    $Servers = Get-Content $serverliste
    
    # logfile.txt enhält das Ergebnis
    
    if (!([system.io.file]::exists($logfile))) {
    	new-item $logfile  -type file
    }
    
    #Falls altes log vorhanden lösche es#
    if (test-path $LogFile) {remove-item $LogFile }
    
    # alle Server durchlaufen
    foreach($server in $Servers){
    Get-Wmiobject win32_process -computer $server |
        Where-Object {$_.name -like "iexplore.exe" -and $_.ws -gt "100000"} |
            Select-Object  __Server,WS,name,@{n="owner";e={$_.getowner().user}} |
            ForEach-Object {"$(get-date -format u),  Auf Server: $($_.__Server),   Prozess: $($_.name),  WS: $([math]::round($_.WS / 1MB, 2))MB,  User: $($_.owner)"|
    	Out-File -FilePath $LogFile -Append -Encoding ASCII}
    }
    
    #Mail Objekte erstellen#
    $smtp = new-object Net.Mail.SmtpClient($smtpServer)
    $attachment = new-object Net.Mail.Attachment($LogFile)
    $credentials=new-object system.net.networkcredential
    $credentials.username = $username
    $credentials.password = $passwort
    $smtp.Credentials = $credentials.getcredential($smtpServer,"25","basic")
    $message = New-Object Net.Mail.MailMessage
    $message.Subject = $subject
    $message.From = $mailfrom
    $message.To.Add($mailto) 
    $message.Body = $mailbody
    $message.Attachments.Add($attachment)
    
    
    If (Test-Path $LogFile){ $smtp.Send($message) }
    $attachment.dispose()


    Please click “Mark as Answer” if my post answers your question and click “Vote As Helpful” if my Post helps you.
    Bitte markiere hilfreiche Beiträge von mir als “Als Hilfreich bewerten” und Beiträge die deine Frage ganz oder teilweise beantwortet haben als “Als Antwort markieren”.
    My PowerShell Blog http://www.admin-source.info
    [string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '
    German ? Come to German PowerShell Forum!

    Dienstag, 11. Juni 2013 12:49
  • Hallo Joschua,

    hier noch einmal in funktionierender kurzform:

    "WS: $([math]::round($_.WS/ 1MB, 2))Mb"

    Gruß Malte
    Mittwoch, 12. Juni 2013 07:20
  • Ist deine Frage damit beantwortet Joshua?

    Blog: http://bytecookie.wordpress.com

    Hilf mit und markiere hilfreiche Beiträge als "Hilfreich" und Beiträge die deine Frage ganz oder teilweise beantwortet haben als "Antwort".

    Donnerstag, 13. Juni 2013 10:28
    Moderator