Jump to content

mamamia

Members
  • Gesamte Inhalte

    312
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte von mamamia

  1. Es gibt nichts, was es nicht gibt ;) winstonfassett.com/blog | HTML to Text conversion in PowerShell Gute Arbeit Marcus, iss denke ich viel bei rum gekommen. Markus
  2. Kein Thema. Du kannst ja deine fertige Version hier noch posten, damit es vollständig ist.
  3. Okay, Grund gefunden: Exchange Management Shell Error: Pipelines Cannot be Executed Concurrently Ich denke das umschreiben des Scriptes bekommst du hin. Musst ja nur Zwischenvariablen einfügen. Grüße, Markus (mit k) :)
  4. Sooo, musste mir erstmal einen 2010er Server suchen :) Hier jetzt mal mein Vorschlag: Get-Mailbox | % { $displayname = $_.displayname Get-MailboxAutoReplyConfiguration $_ | ? { $_.AutoReplyState -ne "disabled" } | % { Write-Host $displayname $_ | Select identity,autoreplystate,starttime,endtime,internalmessage | Out-File -FilePath "C:\temp\$displayname.txt" } } Die Prüfung nach der Zeit gucke ich mir jetzt nochmal an und erweitere das Script noch! So, hier jetzt noch mit Zeitabfrage: Get-Mailbox | % { $displayname = $_.displayname Get-MailboxAutoReplyConfiguration $_ | ? { $_.AutoReplyState -ne "disabled" } | % { Write-Host $displayname Write-Host $_.starttime $_.endtime $now = Get-Date if (($_.starttime -lt $now) -and ($_.endtime -gt $now)) { #Bedinung erfüllt, dann ist MA abwesend } $_ | Select identity,autoreplystate,starttime,endtime,internalmessage | Out-File -FilePath "C:\temp\$displayname.txt" } }
  5. Servus, wieder ein schönes Beispiel, wie man sich das leben schwer machen kann! Lass den Standarddrucker einfach weg, die Mitarbeiter sollten alt genug sein, diesen selber zu definieren. Da wird es immer so viele Ausnahmen, etc geben, die du mit einem Script nie abdecken kannst.
  6. Versuch mal beim Select die Option -Expandproperty. Get-ADUser | Select -ExpandProperty memberof Damit werden MultiValueVariablen "enpackt"
  7. Da hast du mehrere Möglichkeiten. Entweder du bereinigst deine CSV Datei oder du änderst den Scriptteil von: Set-Contact $DN -Company $_.Company -Title $_.Title -Department $_.Department -Fax $_.Fax -MobilePhone $_.Mobile -Office $_.Location -Phone $_.Tel -PostalCode $_.Zip -PostOfficeBox $_.POBox -City $_.City -StreetAddress $_.StreetAdd -CountryorRegion $_.Country zu: Set-Contact $DN -Company $_.Company -Department $_.Department -Fax $_.Fax -MobilePhone $_.Mobile -Office $_.Location -Phone $_.Tel -PostalCode $_.Zip -PostOfficeBox $_.POBox -City $_.City -StreetAddress $_.StreetAdd -CountryorRegion $_.Country if ($_.Title){ Set-Contact $DN -Title $_.Title } oder probier mal das: Set-Contact $DN -Company $_.Company (if($_.Title) -Title $_.Title ) -Department $_.Department -Fax $_.Fax -MobilePhone $_.Mobile -Office $_.Location -Phone $_.Tel -PostalCode $_.Zip -PostOfficeBox $_.POBox -City $_.City -StreetAddress $_.StreetAdd -CountryorRegion $_.Country Das 3te kann ich aber nicht testen, sag mal ob das klappt.
  8. Hallo Gemeinde, wir haben hier ein kleines Problem. Kollege A hat einen Serientermin erstellt. B & C haben zugesagt. Dieser Termin wurde später wieder von A gelöscht. Bei C hat sich dieser auch aus dem Outlook entfernt. Bei B steht er immer noch und kann nicht gelöscht werden. Der User und auch ich als Admin bekomme dann immer folgende Fehlermeldung: Ein Client-Vorgang ist fehlgeschlagen. Absagen oder den Termin ändern geht auch nicht. Was gibt es noch für Möglichkeiten, den Termin hart zu löschen? Danke für Eure Hilfe!
  9. Auf was für einem System testest du das denn eigentlich? Probier mal bitte den UNC Pfad, mappings gehen hier eh nicht, da das Script vom Starten ausgeführt wird.
  10. Okay hier: ' Region Description ' ' Name: deployFonts.vbs ' Author: mamamia ' Version: 0.3 ' 0.3 | Installationsprozess geändert, Fonts werden jetzt über objShellApp kopiert und installiert ' 0.2 | Registrierung der Schriftarten hinzugefügt ' 0.1 | initiale Version ' Description: kopiert Fonts von $Fontspath zu den Systemfonts ' ' ' EndRegion Set objNetwork = CreateObject("WScript.Network") Set objShellApp = CreateObject("Shell.Application") Set WSHShell = CreateObject("WScript.Shell") Set oFileSys = CreateObject("Scripting.FileSystemObject") Computer = UCase(objNetwork.ComputerName) Function deplyFonts (FontsPath) Set objFolder = objShellApp.Namespace(FontsPath) SystemFonts = WSHShell.ExpandEnvironmentStrings("%Systemroot%") & "\Fonts\" Set Folder = oFileSys.GetFolder(FontsPath) For Each File In objFolder.Items ' Nur Files mit der Endung "ttf" lesen If UCase(Right(File.Path, 3)) = "TTF" Then ' bei XP ist File.Name mit Endung, bei Windows 2003 ohne, daher angleichen des Formats If UCase(Right(File.Name, 3)) = "TTF" Then FontName = File.Name Else FontName = File.Name & ".TTF" End If ' wenn Font auf dem System noch nicht vorhanden ist, kopieren If Not oFileSys.FileExists(UCase(SystemFonts & FontName)) Then objShellApp.Namespace(SystemFonts).CopyHere File Else 'prüfen ob eine neuere Version auf dem Server liegt Set DestFile = oFileSys.GetFile(File.Path) Set SourceFile = oFileSys.GetFile(SystemFonts & FontName) If SourceFile.DateCreated <> DestFile.DateCreated Then oFileSys.DeleteFile File.Path objShellApp.Namespace(SystemFonts).CopyHere File.Path End If End If End If Next End Function deployFonts("\\Server\Freigabe\Fonts")
  11. Gut, dann machen wir es anders: For Each oFont In oFolderCopy.Items If [b]NOT[/b] oFSO.FileExists(strFontsPath & "\" & oFont.Name) Then oApp.Namespace(strFontsPath).CopyHere oFont End If Next Damit sagen wir, wenn der Font nicht in dem Ordner ist, kopiere den Font! Möchtest du damit eine zentrale Verteilung im Netzwerk machen? Dann musst du noch ein paar andere Sachen beachten. Ich habe hier ein fertiges Script (von mir) was das alles macht. Bei Interesse, einfach melden.
  12. Naja ist ja auch logisch, dass er das macht. Wenn File vorhanden, dann lösche erst und kopiere neu, ansonsten kopiere. Ohne Else wäre es richtig: For Each oFont In oFolderCopy.Items If oFSO.FileExists(strFontsPath & "\" & oFont.Name) = True Then oApp.Namespace(strFontsPath).Delete oFont oApp.Namespace(strFontsPath).CopyHere oFont End If Next
  13. mamamia

    Powershell 3.0

    Das find ich mit unter am interessantesten. Ich schau mir den Rest aber natürlich auch an.
  14. Du hast recht, ich hab mich verlesen. Aber ich habe das jetzt mal nachgestellt, mit den deinen Daten eine csv erstellt und das Script so laufen lassen. Bei mir tuts, ohne große Änderungen. Hast du New-MailContact mal direkt mit dummy-Daten probiert? @jarazul: das mit dem Komma passt.
  15. Bis dahin ist´s auch richtig. Aber es gibt in deiner csv keine Spalte ExternalEmailAddress, deswegen wird das auch an gemeckert. Der Fehler ist eigentlich ziemlich eindeutig.
  16. Du hast 2 Möglichkeiten. Entweder du benennst deine Spaltenüberschriften so um wie die Objektbezeichnungen im Script oder du benennst deine Objektbezeichnungen wie die Spaltenüberschriften. Email != ExternalEmailAddress
  17. Du könntest auch ein Registry-Snapshot machen. Vorher -> Einstellungen ändern -> Nachher. Und das Delta setzt du dann in deinem Script um.
  18. Nix leichter als das: Compare-Object (Get-content D:\index.txt) (Get-content D:\alrdy.txt) | Select -ExpandProperty InputObject | out-file -FilePath D:\difference.txt
  19. Wie wär´s hiermit: Compare-Object $a $b | out-file -FilePath D:\difference.txt und ohne Zwischenvariablen: Compare-Object (Get-content D:\index.txt) (Get-content D:\alrdy.txt) | out-file -FilePath D:\difference.txt
  20. Hab ich wieder unaufmerksam gelesen: In diesem Thread stehen weiter unten die 2 Alternativen, die du hast: UserAccounts.CommonDialog alternative for Vista
  21. Ja, hab ich auch schon gesehen. Du hattest aber nix zum OS geschrieben. Hier, dass sollte helfen: CommonDialog help
  22. Schau: Open (Well, File Open) Sesame - The Scripting Guys' First Blog - Site Home - MSDN Blogs
  23. Dialogerstellung ist leider noch etwas umständlich mit der Powershell. Du musst viel Text schreiben, um zu einem Ergebnis zu kommen. Schau dir mal PrimalForms an, damit könntest du schnell zum Erfolg kommen: PrimalForms: The only PowerShell GUI Editor
  24. Bin ich Nicholas ;) Habe es selber eingerichtet, dokumentiert und die Kollegen eingewiesen.
  25. Naja DNS RoundRobin ist jetzt so schlecht auch nicht. Davon abgesehen, dass wir nicht einen ungeplanten Ausfall der Farm hatten, kann man ja die Ziel-Adresse aus dem DNS entfernen wenn diese nicht erreichbar ist. Vollautomatisch ist zwar anders, funktionieren tut es trotzdem.
×
×
  • Neu erstellen...