Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Powershell- Wie bekomme ich die Befehlszeile in ein vernünftiges Script

Frage Entwicklung Batch & Shell

Mitglied: JoshuaTree

JoshuaTree (Level 1) - Jetzt verbinden

22.05.2013, aktualisiert 10:23 Uhr, 1996 Aufrufe, 6 Kommentare

Hallo,

ich habe Folgenden Aufruf.

Dieser gibt aus was ich haben möchte, nämlich Servernaname, Prozessname, Username und Speichernutzung.


01.
get-wmiobject win32_process|where{$_.name -eq "iexplore.exe"}|where{$_.ws -gt "300000000"}|select-object  __Server,WS,name,@{n="owner";e={$_.getowner().user}}|sort -descending WS

Jetzt möchte ich das in eine Schleife umbauen

So ungfähr


01.
 
02.
$Serverliste = get-content serverliste.txt 
03.
 
04.
ForEach ($Server in $Serverliste){ 
05.
get-wmiobject win32_process|where{$_.name -eq "iexplore.exe"}|where{$_.ws -gt "300000000"}|select-object  __Server,WS,name,@{n="owner";e={$_.getowner().user}}|sort -descending WS 
06.
 
07.
}



Jezt kommt meine Frage, ich möchte wenn die Speichernutzung einen Grenzwert überschritten hat ein Event auslösen. Ne Mail an die Admins. Wie bekomme ich diese Zeile auseinander gebaut so das ich die einzelnen Werte ansprechen kann? In dem Fall $_.WS denn wenn der zu groß ist soll ne Mail raus.

Vg
Andreas
Mitglied: JoshuaTree
22.05.2013 um 14:48 Uhr
Habe es verändert und es läuft noch schon mal gut

01.
$Serverlist = Get-Content serverliste.txt 
02.
 
03.
 
04.
ForEach ($Server in $Serverlist){ 
05.
 
06.
	get-wmiobject win32_process| 
07.
	where{$_.name -eq "iexplore.exe"}| 
08.
	where{$_.ws -gt "10000000"}| 
09.
	select-object  __Server,WS,name,@{n="owner";e={$_.getowner().user}}| 
10.
	sort -descending WS 
11.
 
12.
}
Ich würde gerne das Erbnis in eine Variable schreiben das ich meinen Event basteln kann.
Jetzt komme ich mit meinem Powershellwissen an meine Grenzen, wie kann ich das Ergebnis in eine Variable bekommen um es nach jedem Durchlauf(schleife) auswerten zu können?
Danke für die Hilfe
Bitte warten ..
Mitglied: filippg
22.05.2013 um 21:07 Uhr
Hallo,

nicht alles geht in einer Zeile... aber dafür gibt's ja Variablen.

Ungefähr:
01.
ForEach ($Server in $Serverliste){ 
02.
  $res = get-wmiobject win32_process| .... sort -descending WS 
03.
  if($res.WS -gt 300000){ 
04.
    write-host Warnung! Prozess: $($res.name), WS: $($res.WS) 
05.
06.
}
Gruß

Filipp
Bitte warten ..
Mitglied: JoshuaTree
23.05.2013, aktualisiert um 09:43 Uhr
Hallo,

leider scheint in die Variable $res nichts geschrieben zu werden.
Denn die Ausgabe bleibt leer.
01.
$Serverlist = Get-Content serverliste.txt 
02.
 
03.
ForEach ($Server in $Serverlist){ 
04.
	 
05.
	$res = get-wmiobject win32_process|where{$_.name -eq "dwm.exe"}|where{$_.ws -gt "100"}|select-object   
06.
 
07.
__Server,WS,name,@{n="owner";e={$_.getowner().user}}|sort -descending WS 
08.
	If($res.WS -gt 100){ 
09.
	write-host Warnung! Prozess: $($res.name), WS: $($res.WS)} 
10.
 
11.
write-host $res 
12.
}
Zur kontrolle habe ich die Zeile write-host $res mit rein genommen und hier wird nichts ausgegeben.

Gebe ich dagegen die Zeile direkt ein
01.
get-wmiobject win32_process|where{$_.name -eq "dwm.exe"}|where{$_.ws -gt "100"}|select-object __Server,WS,name,@{n="owner";e={$_.getowner().user}}|sort -descending WS
Erhalte ich ein Ergebnis:
__SERVER WS name owner
-- ---- -----
Server1 8941568 dwm.exe user1
Server1 8929280 dwm.exe user2
Server1 8921088 dwm.exe user3
Server1 8908800 dwm.exe user4

Woran liegt das?
Bitte warten ..
Mitglied: JoshuaTree
23.05.2013 um 11:02 Uhr
Habe gerade noch ein bißchen rumprobiert.

Wenn ich am Prompt Folgendes eingebe. Und danach $a erhalte ich alles wie ich es mir wünsche.
01.
$a=get-wmiobject win32_process|where{$_.name -eq "dwm.exe"}|where{$_.ws -gt "100"}|select-object  __Server,WS,name,@{n="owner";e={$_.getowner().user}}|sort -descending WS

Gebe ich allerdings write-host $a bekomme ich nichts zu sehen. Auch nicht wenn ich sage write-host $a.WS oder $a.name

Das ist strange, wäre nett wenn mir mal jemand eine kleine Starthilfe geben könnte. Dachte eigenlich das wäre keine große Sache mit Powershell
Bitte warten ..
Mitglied: filippg
23.05.2013 um 20:41 Uhr
Hallo,

das $a.name und $a.WS nicht funktionieren ist erklärbar (mein Fehler): get-wmiobject... wird i.a. nicht _ein_ Objekt liefern, sondern eine Liste (Vector ist glaube ich der genaue Datentyp bei Powershell). Diese hat kein Feld "name" oder "WS" (nur die darin enthaltenen Elemente), deswegen liefert $a.name auch keinen Wert.
Man müsste also noch über $a iterieren (foreach...). Allerdings sollte write-host $a trotzdem eine Ausgabe liefern.

Gruß

Filipp
Bitte warten ..
Mitglied: JoshuaTree
26.05.2013 um 13:17 Uhr
$a=get-content c:\temp\serverliste.txt


foreach($server in $a){

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 { write-host "Warnung! Auf Server: $($_.__Server),Prozess: $($_.name), WS: $($_.WS), User: $($_.owner)"}
}

Habe es bis dahin hin bekommen.

Möchte aber nicht das es am Bildschirm ausgegeben wird sonder in ein logfile welches nach Durchlauf das per smtp versendet wir falls ein logfile erstellt wurde (nur dann)

Versuchte jetzt mit:
ForEach-Object { out-file "c:\temp\log.txt" -append "Warnung! Auf Server: $($_.__Server
eins zu erzeugen doch da hagelte es nur Fehler.
Wo liegt der Fehler ? Kann mir da jemand weiter helfen?
Bitte warten ..
Ähnliche Inhalte
Windows Server
Powershell Script in Script ausführen
Frage von diematrix125Windows Server2 Kommentare

Hallo! Ich habe hier momentan zwei verschiedene Skripte: 1. Skript zum Erstellen von Usern 2. Skript zum Erstellen der ...

Batch & Shell
Script in Powershell
gelöst Frage von EverestBatch & Shell27 Kommentare

Hallo PS-Scriptler, hat jemand von euch ein Script, der bestimmte User (z.B. administrator) in der Domain ausließt, welcher angibt ...

PHP
PHP Script Interpreter als Plugin liefert keine vernünftigen Fehlermeldungen
Frage von AndroxinPHP

Hallo zusammen, ich sitze gerade etwas ratlos vor meinem FileMaker und habe ein Problem mit der Verwendung von PHP ...

Batch & Shell
Powershell Get-Hotfix Script
Frage von u0206084Batch & Shell3 Kommentare

Hallo Kollegen, ich möchte die Hotfixes der Server auslesen hierzu , habe ich verschiedene Powershellscripte gefunden. Script 1: (Funktioniert ...

Neue Wissensbeiträge
Microsoft

Update KB4073578 für AMD CPU (Spectre und Meltdown Lücke)

Information von sabines vor 5 StundenMicrosoft

Wegen Problemen (BOSD, nicht startende PCs) wurde das Update KB4056897 und KB4056894 für AMD CPUs zurückgezogen. Dieses Update KB4073578 ...

Mac OS X

MacOS wo ist die Tilde ?

Tipp von Alchimedes vor 18 StundenMac OS X3 Kommentare

Hallo, ich hab eine MacOS qwertz Keyboard auf US Layout umgestellt da die Sonderzeichen besser erreichbar sind. Leider fehlt ...

Datenschutz

Weitere Informationen zum Sicherheitsproblem BeA

Information von Penny.Cilin vor 1 TagDatenschutz

Im folgenden ein weiterer Bericht über die Sicherheitsprobleme von Bea. Fataler Konstruktionsfehler im besonderen elektronischen Anwaltspostfach Gruss Penny

Windows 10

Systemdienste behalten nach Win10 inplace-Upgrade nicht die ggf. modifizierte Startart bei

Tipp von DerWoWusste vor 1 TagWindows 103 Kommentare

Stellt Euch vor, Ihr habt ein Win10 System und modifiziert dort die Startart von Systemdiensten. Zum Beispiel wollt Ihr ...

Heiß diskutierte Inhalte
Batch & Shell
Anmeldevorgang für Informatikraum (Schule) unter Windows
gelöst Frage von IngenieursBatch & Shell25 Kommentare

Hey zusammen, ich werde in naher Zukunft den Informatik Raum meiner jetzigen Schule von dem aktuellen Betreiber übernehmen (Vertrag ...

Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von fyrb38Windows 1019 Kommentare

Guten Tag, meine Schwester reist in einigen Wochen für ein paar Monate ins Ausland und hat sich dafür ein ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
gelöst Frage von Winfried-HHBatch & Shell19 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...

Netzwerkgrundlagen
Welches Modem für VDSL 50000 der T-Com
Frage von Windows10GegnerNetzwerkgrundlagen18 Kommentare

Hallo, ein Kollege von mir will sich VDSL50000 von der T-Com holen, um daran einen Server zu betreiben. Ich ...