Möchte man mittels PowerShell alle Mailboxen ermitteln, welche an eine andere E-Mailadresse (intern oder extern) forwarden, bzw. redirecten, kann man folgenden Befehl dazu verwenden:
[PS] C:\Windows\system32>foreach ($i in (Get-Mailbox -ResultSize unlimited)) { Get-InboxRule -Mailbox $i.DistinguishedName | where {$_.RedirectTo -or $_.ForwardTo } | fl MailboxOwnerId,Description >> C:\rules.txt }
Posts mit dem Label Technik werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Technik werden angezeigt. Alle Posts anzeigen
14.06.16
[How-To] Dienst prüfen und gegebenenfalls starten
Möchte man einen Windows Dienst prüfen, ob er läuft und im Fehlerfall automatisch starten, kann man dies per Batch-Skript automatisieren.
Dazu legt man eine Textdatei an, welche zum Beispiel check_svc.txt heißt. Diese bearbeitet man und fügt folgende Befehle ein:
@ ECHO OFF
for /F "tokens=3 delims=: " %%H in ('sc query "DIENSTNAME" ^| findstr " STATE"') do (
if /I "%%H" NEQ "RUNNING" (
net start "DIENSTNAME"
)
)
Danach ändert man die Dateiendung auf .bat um das Skript ausführen zu können. Dieses kann man nun beispielsweise mittels der Windows Aufgabenplanung ausführen lassen.
Dazu legt man eine Textdatei an, welche zum Beispiel check_svc.txt heißt. Diese bearbeitet man und fügt folgende Befehle ein:
@ ECHO OFF
for /F "tokens=3 delims=: " %%H in ('sc query "DIENSTNAME" ^| findstr " STATE"') do (
if /I "%%H" NEQ "RUNNING" (
net start "DIENSTNAME"
)
)
Danach ändert man die Dateiendung auf .bat um das Skript ausführen zu können. Dieses kann man nun beispielsweise mittels der Windows Aufgabenplanung ausführen lassen.
29.10.15
[How-To] T-SQL Abfrage nach CSV
Möchte man T-SQL queries in eine CSV-Datei schreiben, kann man sich der sqlcmd.exe bedienen:
">sqlcmd -S Database-Server -d Database -E -Q "set nocount on;SELECT * FROM dbo.table" -o "C:\sqlquery_%date:~6,4%-%date:~3,2%-%date:~0,2%.csv" -s";" -w 999
-S --> DB-Server
-d --> Database
-E --> trusted connection
-Q --> Query
-o --> output file
-s --> delimiter
-w --> Screenwidth
Beispiel:
">sqlcmd -S localhost -d %DATENBANK% -E -Q "set nocount on;SELECT Spalte1,Spalte2,Spalte3,StartTime FROM dbo.%TABLE% WHERE Spalte1 LIKE 'BEISPIEL' AND Spalte2 is NULL AND Spalte3 LIKE '' AND StartTime >= DATEADD(HH, -24, GETDATE())" -o "X:\PFAD\Output_File_%date:~6,4%-%date:~3,2%-%date:~0,2%.csv" -s";" -w 999
">sqlcmd -S Database-Server -d Database -E -Q "set nocount on;SELECT * FROM dbo.table" -o "C:\sqlquery_%date:~6,4%-%date:~3,2%-%date:~0,2%.csv" -s";" -w 999
-S --> DB-Server
-d --> Database
-E --> trusted connection
-Q --> Query
-o --> output file
-s --> delimiter
-w --> Screenwidth
Beispiel:
">sqlcmd -S localhost -d %DATENBANK% -E -Q "set nocount on;SELECT Spalte1,Spalte2,Spalte3,StartTime FROM dbo.%TABLE% WHERE Spalte1 LIKE 'BEISPIEL' AND Spalte2 is NULL AND Spalte3 LIKE '' AND StartTime >= DATEADD(HH, -24, GETDATE())" -o "X:\PFAD\Output_File_%date:~6,4%-%date:~3,2%-%date:~0,2%.csv" -s";" -w 999
30.09.15
[How-To] Exchange 2010 - Vollzugriff ohne Automapping einrichten
Ab Exchange 2010 SP1 wird ein Postfach, auf welches man Vollzugriff erhalten hat, per Automapping in Outlook eingebunden.
Dies kann beim Vollzugriff auf viele Postfächer zu erheblichen Leistungseinbußen in Outlook führen.
Möchte man nun das Automapping für bestimmte Postfächer deaktivieren, muss man folgendermaßen vorgehen:
In diesem Beispiel wird der Vollzugriff des Benutzers "Administrator" auf das Postfach von Benutzer "Test1" entfernt:
Remove-MailboxPermission -Identity Test1 -User Administrator -AccessRights FullAccess -InheritanceType All
Nachfolgend wird die Berechtigung für den Vollzugriff wieder erteilt, diesmal jedoch ohne Automapping:
Add-MailboxPermission -Identity Test1 -User Administrator -AccessRights:FullAccess -AutoMapping $false
Beim nächsten Start von Outlook werden die Postfächer, auf welche man Vollzugriff hat, nicht mehr automatisch geöffnet.
Dies kann beim Vollzugriff auf viele Postfächer zu erheblichen Leistungseinbußen in Outlook führen.
Möchte man nun das Automapping für bestimmte Postfächer deaktivieren, muss man folgendermaßen vorgehen:
In diesem Beispiel wird der Vollzugriff des Benutzers "Administrator" auf das Postfach von Benutzer "Test1" entfernt:
Remove-MailboxPermission -Identity Test1 -User Administrator -AccessRights FullAccess -InheritanceType All
Nachfolgend wird die Berechtigung für den Vollzugriff wieder erteilt, diesmal jedoch ohne Automapping:
Add-MailboxPermission -Identity Test1 -User Administrator -AccessRights:FullAccess -AutoMapping $false
Beim nächsten Start von Outlook werden die Postfächer, auf welche man Vollzugriff hat, nicht mehr automatisch geöffnet.
Tags:
Exchange,
Outlook,
PowerShell,
Technik
12.08.15
[How-To] Programme auf mehreren PCs automatisiert updaten
Da in letzter Zeit sehr viele Sicherheitsupdates für Anwendungen wie beispielsweise Adobe Flash oder Java released werden, stellte sich mir die Frage, wie ich in unserem Unternehmensnetzwerk mit dem geringstmöglichen Aufwand unsere Standardanwendungen per Taskplanner automatisiert patchen kann (das manuelle Patchen von 100+ PCs verursacht einen immensen administrativen Aufwand).
Als Anwendung, welche das Patchen an sich übernimmt, fiel meine Wahl auf Ninite, da diese in der ProVersion sehr viele Funktionen bereithält, welche man per Kommandozeile automatisieren kann.
Darüberhinaus lädt Ninite den jeweiligen Patch für ein Programm einmalig herunter und verteilt ihn dann über das lokale Netz, anstatt dass jeder PC selbständig die Anwendung aktualisiert.
Per Taskplanner lasse ich stündlich ein Skript (ninite_PC.bat) ausführen, welches Ninite auf allen laufenden PCs im Firmennetzwerk ausführt. Um alle laufenden PCs zu erhalten, wird wiederum ein weiteres Skript (running_machines.bat) ausgeführt, welches per Ping alle laufenden Rechner in ein Textfile schreibt. Dieses Textfile wird vom ersten Batchskript als Grundlage für die zu prüfenden und ggf. zu patchenden Rechner benutzt.
Nach Ausführung des Patchvorganges versendet die "ninite_PC.bat" per Powershell-Skript (ninite.ps1) noch eine E-Mail mit einem Patchreport an unser Support-Postfach.
ninite_PC.bat
@echo OFF
rem Variable für Arbeitsverzeichnis setzen
set PFAD=D:\Tools\Ninite
rem ermitteln der eingeschalteten Rechner im Netzwerk
CALL %PFAD%\running_machines.bat
echo.
echo.
cls
echo Running Ninite on responding machines
rem laufende PCs prüfen und patchen
%PFAD%\NinitePro.exe /remote file:%PFAD%\IPs.txt /locale de-DE /silent %PFAD%\report\report_PC.txt /select Acrobat Chrome Firefox Flash "Flash (IE)" Java Reader "Reader DC" Silverlight Skype /updateonly /disableshortcuts /disableautoupdate
rem Report per mail an Support versenden
Powershell.exe -ep RemoteSigned -File "D:\Tools\Ninite\ninite.ps1"
rem löschen des versendeten Reports
del "%PFAD%\report\report_PC.txt"
running_machines.bat
@echo OFF
set PFAD=D:\Tools\Ninite
echo running_machines.bat
echo Probing alive computers in Local Area Network
echo.
ping -n 2 127.0.0.1 > NUL
rem delete old files if existing
echo.
echo.
echo deleting old probing files!
del %PFAD%\ping.txt
del %PFAD%\results.txt
del %PFAD%\IPs.txt
echo.
ping -n 2 127.0.0.1 > NUL
rem pingen der PCs, welche in der machines.txt definiert wurden
echo pinging local workstations
echo.
echo.
for /F "tokens=*" %%A in (%PFAD%\machines.txt) do ping -n 1 %%A >> %PFAD%\ping.txt
echo writing responding machines to results.txt
echo.
echo.
ping -n 4 127.0.0.1 > NUL
CALL :RESULTS
echo writing IPs of alive machines to IPs.txt
echo.
echo.
ping -n 4 127.0.0.1 > NUL
CALL :IPs
:RESULTS
rem entfernen aller nicht benötigten Zeilen der Pingausgabe
rem aaa.bbb.ccc steht hier für IPs, welche gefiltert werden sollen
type %PFAD%\ping.txt | findstr "." | findstr /v Ping | findstr /v aaa.bbb.ccc | findstr /v Pakete | findstr /v Ca. | findstr /v nicht | findstr /v Verlust | findstr /v Minimum | findstr /v Zeitberschreitung > %PFAD%\results.txt
EXIT /B
:IPs
rem IP-Adressen in temporäre Datei schreiben
for /F "tokens=3" %%i in (%PFAD%\results.txt) do echo %%i >> %PFAD%\IPs_temp.txt
ping -n 2 127.0.0.1 > NUL
for /F "tokens=*" %%A in (%PFAD%\IPs_temp.txt) do CALL :SUB_A %%A
CALL :SUB_B
GOTO :EOF
:SUB_A
rem Doppelpunkte hinter den IP-Adressen entfernen
set str=%1
set str=%str::=%
echo %str% >> %PFAD%\IPs.txt
EXIT /B
:SUB_B
rem entfernen der temporären IP-Liste
del %PFAD%\IPs_temp.txt
EXIT /B
ninite.ps1
Send-MailMessage -from "sender@domain.com" `
-to "recipient@domain.com" `
-subject "Ninite Report" `
-body "Results of Ninite" `
-Attachment "D:\Tools\Ninite\report\report_PC.txt" -smtpServer server.domain.com
Als Anwendung, welche das Patchen an sich übernimmt, fiel meine Wahl auf Ninite, da diese in der ProVersion sehr viele Funktionen bereithält, welche man per Kommandozeile automatisieren kann.
Darüberhinaus lädt Ninite den jeweiligen Patch für ein Programm einmalig herunter und verteilt ihn dann über das lokale Netz, anstatt dass jeder PC selbständig die Anwendung aktualisiert.
Per Taskplanner lasse ich stündlich ein Skript (ninite_PC.bat) ausführen, welches Ninite auf allen laufenden PCs im Firmennetzwerk ausführt. Um alle laufenden PCs zu erhalten, wird wiederum ein weiteres Skript (running_machines.bat) ausgeführt, welches per Ping alle laufenden Rechner in ein Textfile schreibt. Dieses Textfile wird vom ersten Batchskript als Grundlage für die zu prüfenden und ggf. zu patchenden Rechner benutzt.
Nach Ausführung des Patchvorganges versendet die "ninite_PC.bat" per Powershell-Skript (ninite.ps1) noch eine E-Mail mit einem Patchreport an unser Support-Postfach.
ninite_PC.bat
@echo OFF
rem Variable für Arbeitsverzeichnis setzen
set PFAD=D:\Tools\Ninite
rem ermitteln der eingeschalteten Rechner im Netzwerk
CALL %PFAD%\running_machines.bat
echo.
echo.
cls
echo Running Ninite on responding machines
rem laufende PCs prüfen und patchen
%PFAD%\NinitePro.exe /remote file:%PFAD%\IPs.txt /locale de-DE /silent %PFAD%\report\report_PC.txt /select Acrobat Chrome Firefox Flash "Flash (IE)" Java Reader "Reader DC" Silverlight Skype /updateonly /disableshortcuts /disableautoupdate
rem Report per mail an Support versenden
Powershell.exe -ep RemoteSigned -File "D:\Tools\Ninite\ninite.ps1"
rem löschen des versendeten Reports
del "%PFAD%\report\report_PC.txt"
running_machines.bat
@echo OFF
set PFAD=D:\Tools\Ninite
echo running_machines.bat
echo Probing alive computers in Local Area Network
echo.
ping -n 2 127.0.0.1 > NUL
rem delete old files if existing
echo.
echo.
echo deleting old probing files!
del %PFAD%\ping.txt
del %PFAD%\results.txt
del %PFAD%\IPs.txt
echo.
ping -n 2 127.0.0.1 > NUL
rem pingen der PCs, welche in der machines.txt definiert wurden
echo pinging local workstations
echo.
echo.
for /F "tokens=*" %%A in (%PFAD%\machines.txt) do ping -n 1 %%A >> %PFAD%\ping.txt
echo writing responding machines to results.txt
echo.
echo.
ping -n 4 127.0.0.1 > NUL
CALL :RESULTS
echo writing IPs of alive machines to IPs.txt
echo.
echo.
ping -n 4 127.0.0.1 > NUL
CALL :IPs
:RESULTS
rem entfernen aller nicht benötigten Zeilen der Pingausgabe
rem aaa.bbb.ccc steht hier für IPs, welche gefiltert werden sollen
type %PFAD%\ping.txt | findstr "." | findstr /v Ping | findstr /v aaa.bbb.ccc | findstr /v Pakete | findstr /v Ca. | findstr /v nicht | findstr /v Verlust | findstr /v Minimum | findstr /v Zeitberschreitung > %PFAD%\results.txt
EXIT /B
:IPs
rem IP-Adressen in temporäre Datei schreiben
for /F "tokens=3" %%i in (%PFAD%\results.txt) do echo %%i >> %PFAD%\IPs_temp.txt
ping -n 2 127.0.0.1 > NUL
for /F "tokens=*" %%A in (%PFAD%\IPs_temp.txt) do CALL :SUB_A %%A
CALL :SUB_B
GOTO :EOF
:SUB_A
rem Doppelpunkte hinter den IP-Adressen entfernen
set str=%1
set str=%str::=%
echo %str% >> %PFAD%\IPs.txt
EXIT /B
:SUB_B
rem entfernen der temporären IP-Liste
del %PFAD%\IPs_temp.txt
EXIT /B
ninite.ps1
Send-MailMessage -from "sender@domain.com" `
-to "recipient@domain.com" `
-subject "Ninite Report" `
-body "Results of Ninite" `
-Attachment "D:\Tools\Ninite\report\report_PC.txt" -smtpServer server.domain.com
Tags:
batch,
Ninite,
PowerShell,
Scripting,
Technik
05.08.15
[How-To] Timestamp mit führenden Nullen erzeugen
Will man Dateien mit einem Timestamp versehen (Logfiles, Backups, etc.), bekommt man spätestens dann Probleme, wenn man die Uhrzeit in den Timestamp einfügen will und es vor 10:00 Uhr ist.
Cmd entfernt bei der Stunde die führende Null und ersetzt sie durch ein Leerzeichen, was dazu führt, das Skripte aufgrund eines Syntaxerrors abbrechen.
Um dies zu umgehen, kann man sich mit einer Batchdatei behelfen, die wiederum das Leerzeichen durch eine Null ersetzt.
:prepare timestamp
set year=%date:~6,4%
set month=%date:~3,2%
set day=%date:~0,2%
set hour=%time:~0,2%
:fuehrendes Leerzeichen durch 0 ersetzen - Stunden kleiner 10
if "%hour:~0,1%" == " " set hour=0%hour:~1,1%
set minute=%time:~3,2%
set timeStamp=%year%-%month%-%day%_%hour%-%minute%
Dies kann man nun als Batchdatei speichern und mittels Call aus anderen Batchdateien heraus aufrufen. So muss man dies nur einmalig zentral konfigurieren, anstatt in jeder Batchdatei auf's Neue.
Bsp.:
@echo OFF
call tmstmp.bat
example.exe /install /silent /log:install_%timeStamp%.txt
Cmd entfernt bei der Stunde die führende Null und ersetzt sie durch ein Leerzeichen, was dazu führt, das Skripte aufgrund eines Syntaxerrors abbrechen.
Um dies zu umgehen, kann man sich mit einer Batchdatei behelfen, die wiederum das Leerzeichen durch eine Null ersetzt.
:prepare timestamp
set year=%date:~6,4%
set month=%date:~3,2%
set day=%date:~0,2%
set hour=%time:~0,2%
:fuehrendes Leerzeichen durch 0 ersetzen - Stunden kleiner 10
if "%hour:~0,1%" == " " set hour=0%hour:~1,1%
set minute=%time:~3,2%
set timeStamp=%year%-%month%-%day%_%hour%-%minute%
Dies kann man nun als Batchdatei speichern und mittels Call aus anderen Batchdateien heraus aufrufen. So muss man dies nur einmalig zentral konfigurieren, anstatt in jeder Batchdatei auf's Neue.
Bsp.:
@echo OFF
call tmstmp.bat
example.exe /install /silent /log:install_%timeStamp%.txt
04.08.15
[How-To] Programm remote auf mehreren PCs beenden
Um ein Programm remote auf mehreren PCs zu beenden, kann man folgendermaßen vorgehen.
Diese Anleitung setzt voraus, dass die ps-tools installiert sind.
for /F "tokens=*" %%A in (computerliste.txt) do pskill programm.exe \\%%A
Der obige Befehl gilt für Batchfiles, führt man den Befehl direkt in der Kommandozeile aus, ist %%A durch %A zu ersetzen.
Diese Anleitung setzt voraus, dass die ps-tools installiert sind.
for /F "tokens=*" %%A in (computerliste.txt) do pskill programm.exe \\%%A
Der obige Befehl gilt für Batchfiles, führt man den Befehl direkt in der Kommandozeile aus, ist %%A durch %A zu ersetzen.
[How-To] installierte Programme auf entfernten Rechnern anzeigen
Möchte man auf einem Remote-PC prüfen welche Programme installiert sind, kann man folgendermaßen vorgehen:
Diese Anleitung setzt voraus, dass die ps-tools installiert sind.
Aktivieren der Remote Registrierung (benötigt um installierte Programme auszulesen)
Diese Anleitung setzt voraus, dass die ps-tools installiert sind.
Aktivieren der Remote Registrierung (benötigt um installierte Programme auszulesen)
psexec \\computer cmd sc config RemoteRegistry start= auto net start RemoteRegistry exit
Auslesen der installierten Programme
psinfo -s \\computer
Suchen nach einem bestimmten Programmpsinfo -s \\computer | find "Programmname"
11.06.15
[How-To] Office 2013 Product Key ändern
Hat man auf einem Rechner bereits Office installiert und aktiviert und klont diesen nun auf ein anderes System, muss man den Product Key ändern, um Office erneut aktivieren zu können.
Dies kann man mittels folgendem Befehl in der Kommandozeile bewerkstelligen:
Windows 32 bit: cscript "C:\Program Files\Microsoft Office\Office15\OSPP.VBS" /inpkey:AAAAA-BBBBB-CCCCC-DDDDD-EEEEE
Windows 64 bit: cscript "C:\Program Files (x86)\Microsoft Office\Office15\OSPP.VBS" /inpkey:AAAAA-BBBBB-CCCCC-DDDDD-EEEEE
Dies kann man mittels folgendem Befehl in der Kommandozeile bewerkstelligen:
Windows 32 bit: cscript "C:\Program Files\Microsoft Office\Office15\OSPP.VBS" /inpkey:AAAAA-BBBBB-CCCCC-DDDDD-EEEEE
Windows 64 bit: cscript "C:\Program Files (x86)\Microsoft Office\Office15\OSPP.VBS" /inpkey:AAAAA-BBBBB-CCCCC-DDDDD-EEEEE
20.05.15
[iOS] Exchange Kalender Synchronisierung schlägt fehl
Seit dem Update auf iOS 8 kann es unter Umständen dazu kommen, dass Kalendereinträge nicht mehr korrekt mit Exchange synchronisiert werden. Um die Einträge wieder zu synchronisieren, muss man die Kalendersynchronisierung deaktivieren und wieder aktivieren.
Dazu muss man unter: Einstellungen --> Mail, Kontakte, Kalender
den Schalter bei Kalender deaktivieren
einen Moment warten, bis alle Kalendereinträge auf dem iPhone / iPad gelöscht sind
den Schalter wieder aktivieren.
18.05.15
Email per Powershell versenden
Hier eine kurze Anleitung, wie man in Windows mittels Powershell Emails versenden kann.
Ausführen von Skripten prüfen und gegebenenfalls erlauben:
C:\> Get-ExecutionPolicy -List
C:\> Set-ExecutionPolicy RemoteSigned
Skript zum versenden von Mails erstellen:
$EmailFrom = "sender@domain.com"
$EmailTo = "recipient@otherdomain.com"
$Subject = "Betreff"
$Body = "Was soll in der Mail stehen?"
$SMTPServer = "smtp.domain.com"
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
$SMTPClient.EnableSsl = $true$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("usr", "pass");
$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)
$EmailFrom, $EmailTo, $SMTPServer, "usr" und "pass" müssen durch die entsprechenden Werte ersetzt werden.
Ausführen von Skripten prüfen und gegebenenfalls erlauben:
C:\> Get-ExecutionPolicy -List
C:\> Set-ExecutionPolicy RemoteSigned
Skript zum versenden von Mails erstellen:
$EmailFrom = "sender@domain.com"
$EmailTo = "recipient@otherdomain.com"
$Subject = "Betreff"
$Body = "Was soll in der Mail stehen?"
$SMTPServer = "smtp.domain.com"
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
$SMTPClient.EnableSsl = $true$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("usr", "pass");
$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)
$EmailFrom, $EmailTo, $SMTPServer, "usr" und "pass" müssen durch die entsprechenden Werte ersetzt werden.
31.03.15
[How-To] alle GCs in Domäne ermitteln
Möchte man alle GCs in einer Domäne ermitteln, muss man folgende Schritte ausführen:
C:\>nslookup
Default Server: UnKnown
Address: aaa.bbb.ccc.ddd
> set type=srv
> _gc._tcp.domain.local
Server: UnKnown
Address: aaa.bbb.ccc.ddd
_gc._tcp.domain.local SRV service location:
priority = 0
weight = 100
port = 3268
svr hostname = srv-a.domain.local
_gc._tcp.domain.local SRV service location:
priority = 0
weight = 100
port = 3268
svr hostname = srv-b.domain.local
_gc._tcp.domain.local SRV service location:
priority = 0
weight = 100
port = 3268
svr hostname = srv-c.domain.local
srv-a.domain.local internet address = aaa.bbb.ccc.eee
srv-b.domain.local internet address = aaa.bbb.ccc.fff
srv-c.domain.local internet address = aaa.bbb.ccc.ggg
C:\>nslookup
Default Server: UnKnown
Address: aaa.bbb.ccc.ddd
> set type=srv
> _gc._tcp.domain.local
Server: UnKnown
Address: aaa.bbb.ccc.ddd
_gc._tcp.domain.local SRV service location:
priority = 0
weight = 100
port = 3268
svr hostname = srv-a.domain.local
_gc._tcp.domain.local SRV service location:
priority = 0
weight = 100
port = 3268
svr hostname = srv-b.domain.local
_gc._tcp.domain.local SRV service location:
priority = 0
weight = 100
port = 3268
svr hostname = srv-c.domain.local
srv-a.domain.local internet address = aaa.bbb.ccc.eee
srv-b.domain.local internet address = aaa.bbb.ccc.fff
srv-c.domain.local internet address = aaa.bbb.ccc.ggg
22.12.14
[How-To] IP Adresse eines Switch-Clients ermitteln
In
Monitoringtools wie Nagios kann es passieren, dass ein Netzwerk-Port an
einem Switch auf Warning/Critical geht und man ermittlen möchte, welchen
Client / Server es betrifft.
Beispiel:
WARN – [37] (up) MAC: a0:b3:cc:ab:cd:ef, 100MBit/s (wrong speed, expected: 1GBit/s)WARN, in: 0.00B/s, out: 1.19kB/s
Da die MAC-Adresse in Nagios die des Switchports ist, muss man zuerst am Switch die MAC Adresse des Clients ermitteln.
Dies macht man folgendermaßen:
Per Telnet auf den entsprechenden Switch connecten
MAC Informationen für den entsprechenden Port anzeigen
show mac 37
HP_ProCurve# show mac 37
Status and Counters – Port Address Table – 37
MAC Address
————-
3417eb-uvwxyz
Nachdem man nun die MAC-Adresse der Netzwerkkarte des Client/Servers ausgelesen hat, kann man per Windows Kommandozeile die korrekte IP und somit den Rechner ermitteln:
arp -a | find “34-17-eb-uv-wx-yz“
192.168.0.100 34-17-eb-uv-wx-yz dynamisch
ping -a 192.168.0.100
Ping wird ausgeführt für pc_100.domain.local [192.168.0.100] mit 32 Bytes Daten:
Antwort von 192.168.0.100: Bytes=32 Zeit<1ms TTL=128
Antwort von 192.168.0.100: Bytes=32 Zeit<1ms TTL=128
Antwort von 192.168.0.100: Bytes=32 Zeit<1ms TTL=128
Antwort von 192.168.0.100: Bytes=32 Zeit<1ms TTL=128
Ping-Statistik für 192.168.0.100:
Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0
(0% Verlust),
Ca. Zeitangaben in Millisek.:
Minimum = 0ms, Maximum = 0ms, Mittelwert = 0ms
Beispiel:
WARN – [37] (up) MAC: a0:b3:cc:ab:cd:ef, 100MBit/s (wrong speed, expected: 1GBit/s)WARN, in: 0.00B/s, out: 1.19kB/s
Da die MAC-Adresse in Nagios die des Switchports ist, muss man zuerst am Switch die MAC Adresse des Clients ermitteln.
Dies macht man folgendermaßen:
Per Telnet auf den entsprechenden Switch connecten
MAC Informationen für den entsprechenden Port anzeigen
show mac 37
HP_ProCurve# show mac 37
Status and Counters – Port Address Table – 37
MAC Address
————-
3417eb-uvwxyz
Nachdem man nun die MAC-Adresse der Netzwerkkarte des Client/Servers ausgelesen hat, kann man per Windows Kommandozeile die korrekte IP und somit den Rechner ermitteln:
arp -a | find “34-17-eb-uv-wx-yz“
192.168.0.100 34-17-eb-uv-wx-yz dynamisch
ping -a 192.168.0.100
Ping wird ausgeführt für pc_100.domain.local [192.168.0.100] mit 32 Bytes Daten:
Antwort von 192.168.0.100: Bytes=32 Zeit<1ms TTL=128
Antwort von 192.168.0.100: Bytes=32 Zeit<1ms TTL=128
Antwort von 192.168.0.100: Bytes=32 Zeit<1ms TTL=128
Antwort von 192.168.0.100: Bytes=32 Zeit<1ms TTL=128
Ping-Statistik für 192.168.0.100:
Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0
(0% Verlust),
Ca. Zeitangaben in Millisek.:
Minimum = 0ms, Maximum = 0ms, Mittelwert = 0ms
10.12.14
[Exchange] Vollzugriff auf alle Postfächer erteilen
Will man dem Administrator-Konto Vollzugriff auf alle Postfächer erteilen, kann man dies mit dem folgenden PowerShell Befehl bewerkstelligen:
Postfachberechtigungen entfernen:
Postfachberechtigungen prüfen:
Get-Mailbox | Add-MailboxPermission -User Administrator -AccessRights Fullaccess -InheritanceType allPostfachberechtigungen entfernen:
Remove-MailboxFolderPermission -Identity Username:\Posteingang -User Username.Zugriff Postfachberechtigungen prüfen:
Get-MailboxPermission -Identity Username05.12.14
Hyper-V running Linux-VMs - Best Practices
Microsoft hat einige Hinweise zusammengestellt, wie sich virtuelle
Maschinen mit Linux unter Hyper-V optimal einrichten und betreiben
lassen.
Best Practices for running Linux on Hyper-V
Linux and FreeBSD Virtual Machines on Hyper-V
Best Practices for running Linux on Hyper-V
Linux and FreeBSD Virtual Machines on Hyper-V
ScreenToGif - kostenloses Screen recording
Nicke Manarin hat ein kostenloses Tool entwickelt, mit welchem man simple Screen Captures als GIF aufzeichnen kann.
Das Tool kommt als ausführbare Datei daher, welche keine Installation erfordert.
Aufgezeichnet wird alles, was sich im transparenten Bereich des Tools befindet. Das Tool wandelt die Aufzeichnung in ein GIF um, was die Datei sehr klein macht und somit ohne spezielle Betrachter einsetzbar macht (beispielsweise die Einbettung in Websites).
Erältlich ist ScreenToGif auf der Microsoft Entwicklerplattform Codeplex --> Download
Das Tool kommt als ausführbare Datei daher, welche keine Installation erfordert.
Aufgezeichnet wird alles, was sich im transparenten Bereich des Tools befindet. Das Tool wandelt die Aufzeichnung in ein GIF um, was die Datei sehr klein macht und somit ohne spezielle Betrachter einsetzbar macht (beispielsweise die Einbettung in Websites).
Erältlich ist ScreenToGif auf der Microsoft Entwicklerplattform Codeplex --> Download
16.10.14
[Office365] Organisator in Resourcenkalendern anzeigen
Folgende cmdlets werden benötigt, um die Standardeinstellungen der Resourcenpostfächer so anzupassen, dass im Betreff die Organisatoren von Terminen angezeigt werden:
Anmelden an Exchange online:
$LiveCred = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange-ConnectionUri https://ps.outlook.com/powershell -Credential $LiveCred -Authentication Basic -AllowRedirection
Import-PSSession $Session
Anpassen der Berechtigungen:
Set-MailboxFolderPermission -AccessRights LimitedDetails -Identity <Resourcenpostfach>:\Kalender -User Default
Set-CalendarProcessing -Identity <Resourcenpostfach> -AddOrganizerToSubject $true -DeleteComments $false -DeleteSubject $false
Anmelden an Exchange online:
$LiveCred = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange-ConnectionUri https://ps.outlook.com/powershell -Credential $LiveCred -Authentication Basic -AllowRedirection
Import-PSSession $Session
Anpassen der Berechtigungen:
Set-MailboxFolderPermission -AccessRights LimitedDetails -Identity <Resourcenpostfach>:\Kalender -User Default
Set-CalendarProcessing -Identity <Resourcenpostfach> -AddOrganizerToSubject $true -DeleteComments $false -DeleteSubject $false
Tags:
Exchange,
Office 365,
Outlook,
Technik
11.10.14
Exchange Postfächer mit aktiviertem Forwarding auflisten
Mit dem untenstehenden Befehl kann man sämtliche Postfächer auflisten, welche Weiterleitungen konfiguriert haben.
Mit "Select" wird die Ausgabe außerdem noch angepasst, so dass man den Namen der Mailbox und die Adresse aufgelistet bekommt wohin weitergeleitet wird. DeliverToMailboxAndForward zeigt an, ob die Mailbox nur weiterleitet, oder ob hier auch Mails im entsprechenden Postfach gespeichert werden.
Get-Mailbox | Where {$_.ForwardingAddress -ne $null} | Select Name, ForwardingAddress, DeliverToMailboxAndForward
Mit "Select" wird die Ausgabe außerdem noch angepasst, so dass man den Namen der Mailbox und die Adresse aufgelistet bekommt wohin weitergeleitet wird. DeliverToMailboxAndForward zeigt an, ob die Mailbox nur weiterleitet, oder ob hier auch Mails im entsprechenden Postfach gespeichert werden.
Get-Mailbox | Where {$_.ForwardingAddress -ne $null} | Select Name, ForwardingAddress, DeliverToMailboxAndForward
Tags:
Exchange,
Office 365,
PowerShell,
Technik
07.10.14
Exchange Online Besitzer einer Email Adresse ermitteln
Mit folgendem Powershell Befehl ermittelt man den Besitzer einer Email Adresse.
Get-Recipient -Identity user@domain.com
Die Ausgabe sollte dann folgendermaßen aussehen:
PS C:\Users\davissteiner> Get-Recipient -Identity user@domain.com
PS C:\Users\davissteiner> Get-Recipient -Identity distributiongroup@domain.com
Get-Recipient -Identity user@domain.com
Die Ausgabe sollte dann folgendermaßen aussehen:
PS C:\Users\davissteiner> Get-Recipient -Identity user@domain.com
| Name | RecipientType |
| ---- | ------------- |
| User Name | UserMailbox |
PS C:\Users\davissteiner> Get-Recipient -Identity distributiongroup@domain.com
| Name | RecipientType |
| ---- | ------------- |
| Distribution Group | MailUniversalDistributionGroup |
26.09.14
[CentOS 6] Office 365 als SMTP relay für Postfix nutzen
Benötigte Pakete installieren:
yum install postfix cyrus-sasl cyrus-sasl-lib cyrus-sasl-plain
Relayhost konfigurieren:
postconf -e 'relayhost = smtp.office365.com:587'
TLS Verschlüsselung aktivieren:
postconf -e 'smtp_tls_security_level=encrypt'
IPv6 als Internet Protokoll deaktivieren:
postconf -e 'inet_protocols=ipv4'
Authentifizierung aktivieren, auth mapping Datei erstellen und in auth Datenbank konvertieren:
postconf -e 'smtp_sasl_auth_enable = yes'
chown root:root /etc/postfix/sasl_passwd
chmod 600 /etc/postfix/sasl_passwd
postmap /etc/postfix/sasl_passwd
Namenszuordnung erstellen um zu erreichen, dass Exchange Mails annimmt:
postconf -e 'canonical_maps = hash:/etc/postfix/canonical'
vi /etc/postfix/canonical
root nagios@netbiscuits.com
postmap /etc/postfix/canonical
yum install postfix cyrus-sasl cyrus-sasl-lib cyrus-sasl-plain
Relayhost konfigurieren:
postconf -e 'relayhost = smtp.office365.com:587'
TLS Verschlüsselung aktivieren:
postconf -e 'smtp_tls_security_level=encrypt'
IPv6 als Internet Protokoll deaktivieren:
postconf -e 'inet_protocols=ipv4'
Authentifizierung aktivieren, auth mapping Datei erstellen und in auth Datenbank konvertieren:
postconf -e 'smtp_sasl_auth_enable = yes'
postconf -e 'smtp_sasl_security_options = noanonymous'
postconf -e 'smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd'
echo "smtp.office365.com user@domain.com:password" > /etc/postfix/sasl_passwdchown root:root /etc/postfix/sasl_passwd
chmod 600 /etc/postfix/sasl_passwd
postmap /etc/postfix/sasl_passwd
Namenszuordnung erstellen um zu erreichen, dass Exchange Mails annimmt:
postconf -e 'canonical_maps = hash:/etc/postfix/canonical'
vi /etc/postfix/canonical
root nagios@netbiscuits.com
postmap /etc/postfix/canonical
Abonnieren
Posts (Atom)