Jump to content

Schranz

Members
  • Gesamte Inhalte

    52
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte von Schranz

  1. Schon klar :D nicht weitgenug gedacht. Kann ich eingrenzen, dass der Server nur vom Internen Netz annimmt? Vermutlich muss ich an der IP Range rumspielen.
  2. Tatsächlich. Das funktioniert aber nur dort, wo der SMTP Server auch aufzulösen/zuerreichen ist. Trotzdem Danke.
  3. Hallo Freunde, ich habe eine kleine Verständnisfrage. (EXC2010) Was ich möchte: Wir haben ein Programm hier, welches zwingend den Datenversand (Mail) per SMTP vorraussetzt. Also trage ich in der Software den smpt Server und die Authdaten ein. Mein Problem: Einen Empfangsconnector habe ich bereits gebaut. Also kann das Programm bereits an INTERNE Postfächer was senden. (Analog dazu tun das so einige Scanner bereits). Nur wie bringe ich dem Exchange Server bei, dass jener auch nach extern relayen soll. Ein kleiner Wink wo ich mich, und vorallem mit was, belesen kann, würde mich freuen. gruß
  4. Mit einem Wust an: Get-Content C:\skripte\nummer.txt | ForEach-Object { $_ -replace ' ' } > C:\skripte\nummer2.txt Get-Content C:\skripte\nummer2.txt | Where-Object { $_ } > C:\skripte\nummer3.txt $nummer = @(Get-content C:\skripte\nummer3.txt) $nummer = $nummer -replace "FELD", "" $nummer = $nummer -replace "-----", "" $nummer = $nummer | Where-Object { $_ } Die Gesamtlösung ansich wird niemanden helfen ein ähnliches Problem zu lösen. Das Hauptproblem bleibt die Verbindung von Powershell zu SQL.
  5. $officegroups = @(Get-ADGroup -filter {(name -like "*MSOffice*")} -SearchBase "$searchbase1" | foreach {$_.name}) $office = (Get-ADUser -filter {(description -notlike "*") -and (userAccountControl -eq 512) -and (memberof -recursivematch "$memberof")} -SearchBase "$searchsbase2" | foreach {$_.SamAccountName}).count So sahs nach deinem ersten Post aus, leider ohne Erfolg. Edit: Ok das klappt tatsächlich so nich..... Wie man in meinem ersten Post aber sieht, funktioniert da aber ein Get-ADUser Aufruf mit $ im in der Searchbase. Sonderbar.
  6. Beim debuggen habe ich gesehen das die Variablen gefüllt sind. Allerdings deute ich die Fehlermeldung so, dass die Variabel nicht übersetzt wird. Get-ADUser : Eine leere Suchbasis wird nur unterstützt, wenn eine Verbindung mi t einem globalen Katalog besteht. Bei C:\skripte\get-member.ps1:27 Zeichen:22 + $office = (Get-ADUser <<<< -filter {(description -notlike "*") -and (userAcc ountControl -eq 512) -and (memberof -recursivematch "$memberof")} -SearchBase " $searchsbase2" | foreach {$_.SamAccountName}).count + CategoryInfo : InvalidArgument: (:) [Get-ADUser], ArgumentExcep tion + FullyQualifiedErrorId : Eine leere Suchbasis wird nur unterstützt, wenn eine Verbindung mit einem globalen Katalog besteht.,Microsoft.ActiveDirect ory.Management.Commands.GetADUser Ich probiere mal den ganzen Aufruf in eine Variable zu packen. Also nur noch: Get-ADUser $variable
  7. Moin nochmal. Die mit --------------> markierten Aufrufe (MIT Variablen) gegen kein Ergebnis zurück. Direkt daruter (aktuell auskommentiert) steht genau der selbe Aufruf OHNE Variablen im Aufruf. Jener funktioniert. Was mache ich falsch? remove-item c:\skripte\result.txt wait-event -timeout 3 $oulist = @(Get-ADOrganizationalUnit -SearchScope 1 -Searchbase "OU=ou3,OU=ou2,OU=ou1,DC=domain,DC=local" -Filter 'Name -like "*"' | foreach {$_.Name}) #$oulist foreach ($ou in $oulist) { "#######################$ou#######################" | out-file c:\skripte\result.txt -Append Get-ADUser -filter {(description -notlike "*") -and (userAccountControl -eq 512)} -SearchBase "OU=$ou,OU=ou3,OU=ou2,OU=ou1,DC=domain,DC=local" | foreach {$_.SamAccountName} | out-file c:\skripte\results.txt -Append $anzahl = (Get-ADUser -filter {(description -notlike "*") -and (userAccountControl -eq 512)} -SearchBase "OU=$ou,OU=ou3,OU=ou2,OU=ou1,DC=domain,DC=local" | foreach {$_.SamAccountName}).count -------------->$officegroups = @(Get-ADGroup -filter {(name -like "*MSOffice*")} -SearchBase "OU=$ou,OU=ou3,OU=ou2,OU=ou1,DC=domain,DC=local" | foreach {$_.name}) #$officegroups = @(Get-ADGroup -filter {(name -like "*MSOffice*")} -SearchBase "OU=ou4,OU=ou3,OU=ou2,OU=ou1,DC=domain,DC=local" | foreach {$_.name}) $office = $null $officegesamt= $null foreach ($officegroup in $officegroups) { -------------->$office = (Get-ADUser -filter {(description -notlike "*") -and (userAccountControl -eq 512) -and (memberof -recursivematch "CN=$officegroup,OU=$ou,OU=ou3,OU=ou2,OU=ou1,DC=domain,DC=local")} -SearchBase "OU=$ou,OU=ou3,OU=ou2,OU=ou1,DC=domain,DC=local" | foreach {$_.SamAccountName}).count #$office = (Get-ADUser -filter {(description -notlike "*") -and (userAccountControl -eq 512) -and (memberof -recursivematch "CN=cn1,OU=ou4,OU=ou3,OU=ou2,OU=ou1,DC=domain,DC=local")} -SearchBase "OU=ou4,OU=ou3,OU=ou2,OU=ou1,DC=domain,DC=local" | foreach {$_.SamAccountName}).count $officegesamt = $officegesamt + $office } "Anzahl: $anzahl" | out-file c:\skripte\result.txt -Append "Anzahl MS Office: $officegesamt" | out-file c:\skripte\result.txt -Append }
  8. Moin, ich würde gerne in einer foreach Schleifen den Inhalt von 2 Arrays ausgeben. $x = 0 foreach ($a in $array1) { $array1[$x],$array2[$x] | out-file $file -append $x = $x +1 } Das Ergebnis ist: array1-1 array2-1 array1-2 array2-2 Was ich möchte ist: array1-1, array2-1 array1-2, array2-2 Leider ergibt der Code nicht das gewünschente Ergebnis. Wo ist mein Denkfehler?
  9. CSV,txt,.. ist völlig egal. Auch das export-csv cmdlet hilft mir da nich weiter. Probiert hab ichs jetzt aber trotzdem, daran hatte ich nich gedacht. Danke.
  10. Moin Männers, Was ich möchte, ist eine Liste von Einträgen die zu meinen Vorgaben passen. Mein Code: [void][system.reflection.Assembly]::LoadWithPartialName("MySql.Data") # DB-Verbindung aufbauen $strConnectionString = "server=0.0.0.0; port=x; uid=user; pwd=passwort; database=datenbank; Pooling=False" #Verbindungsdaten für den MySQL-Server $objConnection = New-Object MySql.Data.MySqlClient.MySqlConnection($strConnectionString) $objConnection.Open() # Objekte MySqlCommand und MySqlDataAdapter erzeugen $strStatement = "SELECT FELD FROM TABELLE WHERE NAME LIKE '%xx%' and FELD NOT LIKE 'MUELLER'" #SQL STATEMENT $objCommand = New-Object MySql.Data.MySqlClient.MySqlCommand($strStatement, $objConnection) $objDataAdapter = New-Object MySql.Data.MySqlClient.MySqlDataAdapter($objCommand) # Dataset erzeugen $objDataSet = New-Object System.Data.DataSet $objDataAdapter.Fill($objDataSet) > $null # Ergebnis ausgeben $ergebnis = $objDataSet.Tables[0] $ergebnis | out-file $OutputCSVFile -append Mein Problem zeige ich euch am besten in einem Screenshot der Ausgabe in Notepad++ Woher die Tabs und wie bekomme ich die Tabellenüberschrift weg. Die MySql.Data.MySqlClient.MySqlConnection-Klasse im .NET bietet mir keine Möglichkeit die columname zu skippen. Gruß
  11. Sobald wir SP2 und die Adressbuchpolicies drinne haben, scheint das die beste Lösung zu sein. Danke.
  12. Was nützen mir dann freigegebende Kontaktlisten? Deine Erklärung klingt logisch. Aber irgendwie muss sich doch ein zentraler Pool schaffen lassen.
  13. Hallo Folks, Outlook 2007 aktuelles Patchlevel an Exchange 2010 SP1 zur Abwechlung habe ich heute kein Powershellproblem, allerdings auch ein Problem, wo ich das Problem als solches nicht verstehe. Hier kurz der Sachverhalt: Ich möchte gerne die Kontakte von einem Postfach, auf welches ich Vollzugriff habe, in mein Adressbuch holen. Allerdings finde ich in den Eigenschaften den Reiter dafür nicht. Möglicherweise raffe ich auch was nicht. Und da wir gerade dabei sind, wie kann ich einen E-Mailverteiler bauen, den ein Benutzer selbst pflegen kann? gruß, schranz
  14. Ich würde sagen das Zauberwort heisst rekursiv. Programmcode müsste ich aber auch googlen.
  15. Moin, diesmal habe ich einer eher konzeptionelle Frage. Den Code würde ich dann selbst bauen. Aufgabe: Ich möchte die Größe alle Profilordner einer OU auflisten. Und das für alle OUs. Unser Tree sieht so aus: domain.local --Kunden ------Firma1 ------Firma2 ------Firma3 ------Firma4 Natürlich sind noch Unter OUs und Gruppen darunter, aber die Auflistung soll anhand der OberOU stattfinden. Was ich am Ende fürs Reporting brauche: Firma1;3456 MB Firma2;5576 MB Firma3;8446 MB Idee im Pseudocode get-alleADUser sortiere nach OberOU(Firma1,Firma2,etc) for jede OU in OUS { gehe durch alle Profileordner der $user.V2 der OU und zähle zusammen $firma;$size |out-file *csv } Falls jemand schon ein fertiges Skript (Auch in Teilen) hat, würde ich das gerne übernehmen :D gruß
  16. Tausche -contains mit -like und........ Zeit fürn den ersten Kaffee nachm Mittag.
  17. Klingt ja schonmal gut. Ich habe meinen Lösungsansatz allerdings fast fertig. Ich werde ihn dann posten. Eure Ergebnisse haben aber trotzdem Verwendung gefunden :D Eine Frage habe ich aber noch: $folderarray = @() $folderrights = @() $folderrights = @(.\[url="http://technet.microsoft.com/en-us/sysinternals/bb664922"]accesschk[/url] -q -w Administratoren \\Server\freigabe\Folder\) $foldersource = "\\Server\freigabe\Folder" #Pfad des Ordners "array geschrieben" $folderarray = get-childitem $foldersource | Where-Object { $_.mode -like "d*" } | % { $_.name } #Array mit den Foldernamen füllen und Dateinen ignorieren #Ich weiss es geht einfacher, wird auch noch umgesetzt foreach ( $folder in $folderarray ) #Schleife die die Größe jedes einzelnen Ordners ausgibt { $folderrights $folder [color="Red"]if ($folderrights -contains "*$folder")[/color] # hier harkt es { "$folder ja" } else { "$folder Nein" } } $folderrights RW \\Server\freigabe\Folder\Folder1 RW \\Server\freigabe\Folder\Folder2 RW \\Server\freigabe\Folder\Folder3 $folderarray Folder1 Folder2 Folder3 Wie bekomme ich die beiden Arrays sinnvoll verglichen!?
  18. Moinm ich möchte eine Liste von Ordnern durchgehen und mit denen etwas machen. Was genau ist für das Problem nicht wichtig. Dabei soll das Skript Ordner übergehen, auf die der Ausführende keine Rechte hat. Idee ist folgende: $rights = get-acl $foldername | Where { $.Access -like "domain.local\technikgruppe123"} (pseudocode ab hier) if $rights = 0 goto end of schleifendurchlauf Und dann mit diesem Ergebnis weiter zu arbeiten. Nur leider steht kein Ergebnis in $rights. Eine Suche nach get-acl im Forum ergab 0 Treffer :cool: gruß, schranz
  19. Komischerweise scheint es jetzt zu gehen. Ich habe noch einige Anpassungen im get-mailstat.ps1 gemacht. Harte Pfade und sowas variabel gemacht. ggf lags daran. Ich werde trotzdem Snapins / Module / connect und sowas ins Skript einbauen, damit es flexibel bleibt. Danke.
  20. Ein Level3 hab ich noch für euch. So versuche ich das Powershell Skript per geplanten Task aufzurufen. Allerdings ist nur Domain;Send;Receive in der CSV, erzeugt von: "Domain;Send;Receive" | out-file $OutputCSVFile -append #Erstellen der Zeilenüberschriften Die Ausgabe meiner Erhebungen taucht nicht auf. Der Verlauf der Aufgabe zeigt allerdings eine abgeschlossende Durchführung an. Vermutlich kommt er in der normalen Powershell nicht an die Exchange CMDLETs. Selbes Ergebnis mit folgenem Aufruf: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -command ". 'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto; C:\skripte\exc-stat\get-mailstat.ps1" Jemand die Lösung? Ich werde nebenbei weiter testen. gruß, schrnz
  21. Dann danke ich für diesen Einsatz. :) funktioniert alles super.
  22. Jetzt steht nur *@ in der txt drin.
  23. Noch was ganz schnelles: Ich möchte ein txt File wo alle AcceptedDomains drinne stehen: *@domain1.tld *@domain2.tld *@domain3.tld ich habe: $adomains = @() $at = "*@" $OutputCSVFile = "C:\skripte\exc-stat\domains.txt" #Pfad der logdatei $adomains = Get-AcceptedDomain | select domainname -Unique foreach ($adomain in $adomains) { echo "$at$adomain" | out-file $OutputCSVFile -append #Ausgabe in die CSV } Aber dann sieht meine txt so aus: *@@{DomainName=domain1.tld} *@@{DomainName=domain2.tld} *@@{DomainName=domain3.tld} Irgendwie muss ich doch die Überschrift wegbekommen. technet-Artikel zum Select CMDLET hat mir nicht geholfen. Ist sicher wieder sowas kleines....
×
×
  • Neu erstellen...