Alternative Datenströme sind eine erweiterte Funktion des NTFS-Dateisystems, die es erlaubt, beliebige Meta-Informationen über Dateien zusammen mit der Datei abzulegen. Windows verwendet z.B. einen Alternativen Datenstrom, um das MotW (Mark of the Web) zu speichern. Das MofW wird beim Download einer Datei automatisch gesetzt, damit Windows Sicherhe...
Weisheiten - der Netz-Weise Blog
EMClient ist ein Email-Client, der alle wesentlichen Funktionen von MS Outlook abdeckt, dabei aber deutlich flexibler konfigurierbar ist und ein zu MS Outlook sehr ähnliches Design hat, was die Migration von MS Outlook einfach macht. Im Gegensatz zu Outlook fügt EMClient geteilte Mailboxen allerdings nicht automatisch der Postfachansicht hinzu. Sta...
Um aus einer Liste von Datumswerten (z.B. aus einer Logdatei) nur einen Wert pro Zeiteinheit (also z.B. pro Sekunde) auszugeben, erstellt man sich zuerst einen Wert, der die Sprungweite speichert. Da Powershell Zeitwerte in 10.000.000stel Sekunden - den sogenannten Ticks - speichert, muss die Sprungweite mit den Ticks pro Zeiteinheit multipli...
Reguläre Ausdrücke sind in allen Programmier-Sprachen ein mächtiges Werkzeug, um Texte zu analysieren und aufzubrechen. In Powershell steht einem hierfür unter anderem der Vergleichsoperator -match zur Verfügung. Reguläre Ausdrücke reichen dabei von sehr einfach bis sehr kompliziert. Das folgende Beispiel fällt z.B. in die erste Kategorie: 'C:...
Wenn Sie auf einem Dateiserver Ordner umziehen müssen, kann das Anpassen der Freigaben auf untergeordneten Ordnern sehr aufwändig werden, z.B. wenn es sich um eine große Menge von Home-Shares handelt. Einfacher als über die GUI geht es, wenn Sie die Registry-Schlüssel unter HKEY_LocalMachine\SYSTEM\CurrentControlSet\Services\LanmanServer\Shares\ anpassen. Alternativ können einfach die folgende Powershell-Funktion verwenden, die einen gegebenen Pfad in dem Registry-Schlüssel durch einen neuen ersetzt. Da es sich um eine reine Musterersetzung handelt, können Sie beliebige Teilpfade ersetzen lassen.
function Replace-SharePath
{
<#
.SYNOPSIS
Replace the Filesystem-Path of a Share
.Description
Replace-Sharepath can change the Filesystem-Path of shares. This can be helpful if you need to move
Files to a new Drive or have to move files to a subfolder and you have multiple Shares to touch. The
Script will change the given String into the new string, so all shares under the given Path will be
affected.
.EXAMPLE
To move Files from C:\Shares to D:\NewSharesFolder:
Replace-SharePath -Path c:\Shares -NewPath D:\NewSharesFolder
#>
param(
[ValidateScript({ if ( ! ( Test-Path -path $_ -PathType Container )) {Throw "Bitte den Quellpfad prüfen!"}; $true })]
[Parameter(mandatory=$true)]
# The Path to Change.
$Path,
[ValidateScript({ if ( ! ( Test-Path -path $_ -PathType Container )) {Throw "Bitte den Quellpfad prüfen!"}; $true })]
[Parameter(mandatory=$true)]
# The New Path
$Newpath
)
$path = $Path.Replace('\','\\')
$Newpath = $Newpath.Replace('\','\')
$ShareList = Get-Item HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Shares\
ForEach ( $Share in $ShareList.Property )
{
Get-ItemProperty -Path $ShareList.pspath -Name $share
$newValue = ( Get-ItemProperty -Path $ShareList.pspath -Name $share ).$Share -replace "(^Path=)($path)","Path=$newpath"
Set-ItemProperty -Path $ShareList.pspath -Name $Share -Value $Newvalue -PassThru
}
}
Virtuelle Maschinen mit Hyper-V anzulegen ist in Powershell mit den beiden Cmdlets New-VM und Set-VM relativ einfach, da die Cmdlets alle wesentlichen Funktionen einer virtuellen Maschine mit den Standard-Parametern abbilden. Das Aktivieren des virtuellen TPMs gestaltet sich aber überraschend schwierig. Während man im Hyper-V Manager nur ein H...
Python kann mit dem json-Modul Strings im JSON-Format direkt in einen Dictionary konvertieren. Zum Import aus einer JSON-Datei muss man die Datei zuerst mit open einlesen. import jsonwith open('c:\user.json') as user: message = json.load(user) Python erwartet hier, wie im JSON-Standard definiert, eine in UTF8 codierte Datei ohne BOM...
Hat man das Windows Subsystem für Linux installiert und arbeitet in der Bash mit der Kommandozeilenergänzung per Tabulator, wird man ein ziemlich nerviges Sound-Feedback in Form eines Pings kaum überhören können. Um den Ping abzuschalten, muß man die Datei /etc/inputrc editieren und die Konfigurations-Schlüssel bell-style auf none setzen - nor...
Wenn die Google Search Console auf Ihrer Joomla-Website ungültige AMP-Seiten erkennt, könnte das an der Mail-Cloaking Funktion von Joomla liegen, die seit Version 4.10 standardmäßig aktiviert ist. Mail-Cloaking verschleiert E-Mail-Adressen automatisch mit JavaScript-Code, indem die Email-Adresse verschlüsselt in ein Tag <joomla-hidden-mail> e...
Send-Mailmessage ist ein sehr nützliches Cmdlet, um Emails direkt aus Powershell an einen Mailserver zu senden. Er steht seit Powershell 2.0 zur Verfügung und vermeidet so, dass man sich direkt mit dem [System.net.mail]-Typ herumschlagen muß. Allerdings zeigt das Cmdlet ein sehr merkwürdiges Fehlerverhalten.
Wenn man versucht, Verbindungsfehler abzufangen, ist ein erster vernünftiger Ansatz, einfach auf den Parameter -Errorvariable zurückzugreifen:
Send-Mailmessage -SmtpServer mail.meineFirma.de -Subject 'Warnung' -Body 'Hier kommt die Maus' -From 'Elefant@netz-weise.xyz' -to 'Maulwurf@netz-weise.xyz' -ErrorVariable Fehlermeldung
If ( $Fehlermeldung ) { $Fehlermeldung.Exception.Message }
Tritt ein Fehler auf, wird dieser direkt in der Variablen $Fehlermeldung gespeichert. Achtung, bei der Angabe der Fehlervariablen wird kein $-Zeichen angegeben!