Jump to content

mamamia

Members
  • Gesamte Inhalte

    312
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte von mamamia

  1. Servus, naja du kannst doch einfach eine *.rdp Datei für deine RemoteApp erstellen und diese dann analog zu deiner jetzigen Verteilung ausrollen.
  2. Servus Christian, ohne jetzt größere Tests zu machen, schließe die Funktionen mal mit () ab. for($intI = $intSlidesSum; $intI -ge $intSlideTo +1; $intI --) { $objPresentation.Slides.($intI).Delete() }
  3. [Klugsc***ern] Das ist aber kein richtiger Index, dass ist ein Counter der pro Item hochgezählt wird. [/Klugsc***ern]
  4. Damit hast du erstmal einen Start: cls $array = @("Dienst1", "Dienst2") foreach ($item in $array) { Write-host "[$([array]::IndexOf($array, $item))] $($item)" }
  5. Änderungen bekommst du ja raus, indem du die beiden Arrays vergleichst. Das Delta kannst du dann zurück schreiben.
  6. Gerne ;) Wie gesagt, inhaltlich keine bedenken und wenn es eh Nachts läuft, dann kommts auf die Sekunden nich an ;) Bei uns läuft ein Planzahlenberechnungsjob über 2 Systeme und wenns gut läuft dann ist der nach 12h durch!
  7. Die If-Klausel hab ich gar nich gesehen ;) Ich meinte die ganz unten.
  8. Nabend, nee, da sind die Rahmenbedingungen immer zu unterschiedlich. Aber ich denke 6 Sekunden pro 100 Kontakte sind ein super Benchmark. Halt alles ohne Last, aber das iss okay. Aber gut, wenn das direkt auf der Maschine läuft, dann geht dann ist das eigentlich optimal. Wieviel importierst du denn insgesamt, wenn bei 3000 der Performanceeinbruch kommt? Was mir noch auffällt: du weißt oben die Werte deinen Variablen zu. Warum? Überspringe den Punkt und nimm direkte die Werte des Objektes: # Angezeigter Name $item.DisplayName = $contact.ADR_FIRMA Bei so vielen durchläufen macht sich das bestimmt bemerkbar. Zudem vermeidest du folgenden Fehler: wenn ein Wert von einem Datensatz nicht gefüllt ist, dann schreibt dein Script den Inhalt von dem letzten Datensatz in deinen Kontakt, was ja falsch wäre. Zudem durchläuft dein Script immer die if-Klausel. Nimm die auch ma raus. Dann zu den Notes. Leg mal einen Kontakt mit Notes an und ließ diese aus. Dann solltest du auch relativ schnell sehen, wie du diese Füllen kannst. Zudem gibt es noch das cmdlet New-MailContact (http://technet.microsoft.com/en-us/library/bb124519%28v=exchg.150%29.aspx), weiß aber nich, ob das in einen öffentlichen Ordner schreiben kann. Musst mal schauen. Schönen Abend noch!
  9. Du erstellst das erste Array / Objekt beim auslesen eines Computers. Anhand dessen, fragst du deine DB ab und erstellst dein 2tes. Diese beiden vergleichst du dann und schreibst abhängig vom Vergleich deine Daten in die DB. Dann gehts weiter mit dem nächsten. Oder haben wir uns falsch verstanden?
  10. Servus, mich würde interessieren, auf was für einer Maschine du das laufen lässt. Was sagt die Auslastung der Maschine, wenn die 3000 Kontakte erreicht sind? Tippe aus dem blauen heraus auf ein Speicherproblem. Kannst du testweise das Script mal von einer anderen Maschine laufen lassen, um ein anderes Verhalten fest zu stellen?
  11. Sicher möglich. Weißt du denn schon, wie du Scripte beim Anmelden eines Users startest?
  12. Also liegts jetzt daran, die Daten zu vergleichen? Wenn du vergleichen willst, dann brauchst du 2 identische Arrays o. Objekte, damit du die Daten auch vergleichen kannst.
  13. Du schreibst die aktuellen Daten in ein Array, holst dir die Daten aus der DB (sofern vorhanden) und vergleichst diese. Ergebnis ist ein Array, mit allen Änderungen und das schreibst du dann zurück. Compare-Object Sollte dir dabei helfen.
  14. Jetzt aber: send-mailmessage -to "User01@" -from "User02 <user02@example.com>" -SmtpServer "Servername" -subject "Test mail" -Body ($colAverages | Out-String) Einfach in Klammern setzen und los gehts..
  15. send-mailmessage -to "User01 <user01@example.com>" -from "User02 <user02@example.com>" -subject "Test mail" -Body $colAverages | Out-String Probier das mal. Wenn die funktion einen String verlangt, dann bekommt Sie auch einen ;)
  16. Hier http://technet.microsoft.com/en-us/library/hh849925.aspx wird dir geholfen :) Einfach mal ausprobieren ;)
  17. send-mailmessage -to "User01 <user01@example.com>" -from "User02 <user02@example.com>" -subject "Test mail" -Body $colAverages
  18. Das ist einfach. Schau dir das mal an und falls du Verständnisprobleme hast, einfach melden ;) $colAverages = @() $ou = @("OU=???,OU=???,DC=???,DC=???,DC=???,DC=???") $ou | % { $objAverage = New-Object System.Object $objAverage | Add-Member -type NoteProperty -name OU -value $_ $objAverage | Add-Member -type NoteProperty -name Count -value (Get-ADUser -Filter * -SearchBase $_).count $colAverages += $objAverage } $colAverages Man erzeugt ein Array mit allen OU´s. In der Schleife wird ein CustomObject erzeugt, was die Objekte in ein 2tes Array bringt. Aufgabe für dich: $colAverages in eine Textdatei schreiben ;)
  19. Wenn die Pfade für alle User gleich sind, dann mach das am besten über die Gruppenrichtlinie. Da sparst du dir das setzten für jeden einzelnen User. Automatisiert sich gerade beim Anlegen neuer User.
  20. So wird ein Schuh draus ;) [xml]$meinexml = get-content C:\ps\meinskript.xml $meinexml | ? {$_.thinclients.thinclient.settings.pclass.name -eq "x.drivers.currentdriver"} | % { $_.thinclients.thinclient.tcname $_.thinclients.thinclient.settings.pclass.pvalue.InnerText } Hier werden aber noch beide Werte von pvalue angezeigt, die Trennung ist in der xml nicht sauber.
  21. Schau dir mal Send-MailMessage (http://technet.microsoft.com/en-us/library/hh849925.aspx) an. Damit brauchst du es nicht mittels .Net Objekten instanzieren, sondern einfach per cmdlet nutzen. Dann packst du Send-MailMessage mit deinen Parametern in deine for und dann sollte es auch gehen. Zudem vermute ich in Zeile $MailMessage.Body = $Body den Fehler. Das muss mit unten in dein for
×
×
  • Neu erstellen...