Kategorien
Programmierung Windows

MS Visual Studio Code: Extensions directory

So gerne ich VS Code habe: das mit dem Extensions-Directory im Roaming Profile ist ein Schmarn!

Nicht nur das jeder User (auf einem Gerät) die Extension extra installieren muss (*) sind die Extension in Summe dann auch schon recht heftig groß! Bei mir war das für das Powershell Plugin und ein paar weitere schon fast 1 GB!!

Daher habe ich das Extensions-Verzeichnis aus dem Roaming-Profile herausgenommen und in das Installations-Verzeichnis veschoben (Dateirechte beachten!!). Damit VS Code das auch mitbekommt, muss man das beim Starten angeben – Also bei der Verknüpfung zum Starten von VS Code den Pfad angeben:

"C:\Path\to\vscode.exe" --extensions-dir="C:\Path\to\vscode\extensions"

Quelle: https://stackoverflow.com/questions/40080793/is-there-a-way-to-change-the-extensions-folder-location-for-visual-studio-code

(*): Zugegeben: das hat natürlich auch Vorteile und ist eine Sache die die man auch mögen kann!

Kategorien
Powershell Programmierung Windows

Powershell: Multiline String

Strings können ja in Powershell auf mehrfache Weise definiert werden. Wenn man einen mehrzeiligen String benötigt kann man einfach doppelte Anführungszeichen setzen und im String einen Zeilenvorschub verwenden:

$stringVar = "erste Zeile
nächste Zeile"

Wenn in dem Text aber Anführungszeichen vorkommen sollen (weil man z.B. einen HTML-Source-Code braucht funktioniert das nicht. Dann hilft diese Version weiter:

$stringVar = @"<br>
<p style="width:100%; padding: 10px 20px">Inhalt P-Tag</p>
<p ......"@

Quelle: https://riptutorial.com/powershell/example/20568/multiline-string

Kategorien
IT Grundlagen Powershell Windows

Uptime Windows

Geht eigentlich gaaaanz einfach:

Ein Powershell-Fenster aufmachen (oder ein „command prompt“ und dort dann zuerst „powershell“ eingeben) und folgenden Befehl eingeben:

    systeminfo

Das war’s schon 😉 Es wird dann ein ganzer Haufen Infos ausgeworfen und darunter (meist rund um Zeile 11) die Info „System Boot Time“ oder „Systemstartzeit

Funktioniert auch auf Windows-Server und mit eingeschränkten Rechten!

Quelle: Reddit

Kategorien
Software SQL-Server Windows

WSUS: Migrate windows internal database to MS-SQL Server

HIer nur in aller Kürze zwei Links zu dem Thema:

https://docs.microsoft.com/en-us/windows-server/administration/windows-server-update-services/manage/wid-to-sql-migration#migrating-the-wsus-database

https://community.spiceworks.com/how_to/126238-migrate-wsus-6-3-from-internal-database-to-sql-server-2014

Im Grunde gehen beide Links den gleichen Weg. WICHTIG!! ist/war aber der Hinweis aus dem unteren Link, dass man den Login für das WSUS-COmputerkonto via TSQL erstellen muss!!


Kategorien
Exchange Software Windows

Exchange: Setting up retention tags and retention policies

Was muss man wo einstellen und wo gibt’s weitere Infos? Wirklich alle Infos zu dem Thema findet man bei Microsoft! Alles zu retention tags und retention policies:
https://docs.microsoft.com/en-us/exchange/policy-and-compliance/mrm/retention-tags-and-retention-policies?view=exchserver-2019

Ergänzende Infos dazu (sind aber auch in dem obigen MS-Artikel verlinkt):
https://docs.microsoft.com/en-us/exchange/security-and-compliance/messaging-records-management/default-folders
https://docs.microsoft.com/en-us/exchange/policy-and-compliance/in-place-archiving/in-place-archiving?view=exchserver-2019

Hier noch ein paar Infos zum „ManagedFolderAssistant“. Damit wird die Archivierung am Exchange (zeit-)gesteuert:
https://docs.microsoft.com/en-us/exchange/policy-and-compliance/mrm/configure-managed-folder-assistant?view=exchserver-2019
https://docs.microsoft.com/en-us/powershell/module/exchange/policy-and-compliance-retention/Start-ManagedFolderAssistant?view=exchange-ps

Hier noch ein paar Links, unter denen man auch ein paar gute Infos findet:
https://www.computerweekly.com/de/ratgeber/Archivierung-mit-Exchange-2013-Aufbewahrungsrichtlinien-richtig-einsetzen
https://help.mailstore.com/de/server/E-Mail-Archivierung_von_Microsoft_Exchange_2013
http://kb.mcgill.ca/?portalid=2&articleid=6035#tab:homeTab:crumb:8:artId:6035:src:article

Wichtiger Hinweise zur Benennung von MS, die zu Beginn verwirrend sein können:

MS unterscheidet in den Anleitungen zwischen „Archive policies“ und „retention policies“. Der Unterschied ist schlicht und einfach die „Action“ der Policy:

  • Wenn die Emails mit dieser Policy in das Archiv verschoben werden –> Archive policy
  • Wenn die Emails mit der Policy gelöscht werden –> retention policy

Im Exchange Admin Center heißt der „Menüpunkt“ aber trotzdem nur „retention policies“ 😉

Welche Retention Tags gibt es und wo ist der Unterschied:

  • Es gibt „Default policy tags“.
    • Diese gelten für ALLE Elemente einer Mailbox
    • aber nur wenn diese Elemente noch keine anderen „Tags“ haben
    • werden nur vom Admin zugeweisen und
    • können vom User NICHT geändert werden
  • Es gibt „Retention policy tags“
    • Diese gelten für „default folders“ einer Mailbox
    • werden vom Admin zugeweisen
    • können nur Lösch-Actions haben (Siehe vorheriger Hinweis!)
    • können vom User NICHT geändert werden
  • Es gibt „Personal tags“
    • Diese können vom Admin bereitgestellt werden und dann
    • vom User einzelnen Elementen (egal ob Ordner oder Email) im Postfach zugewiesen werden
      Damit überschreiben dann die „personal Tags“ des Users die anderen Tags des Admins!

Aus dem ersten Link oben:
Users can apply archive policies to default folders, user-created folders or subfolders, and individual items. Users can apply a retention policy to user-created folders or subfolders and individual items (including subfolders and items in a default folder), but not to default folders.

Infos zu den Retention Policies:

Aus dem ersten Link oben:

A retention policy can have the following retention tags:

  • Default policy tag (DPT)
    • One DPT with the Move to archive action
    • One DPT with the Delete and allow Rrecovery or Permanently delete actions
    • One DPT for voice mail messages with the Delete and allow recovery or Permanently delete action
  • Retention policy tags (RPTs)
    • One RPT for each supported default folder  
      Note
      : You can’t link more than one RPT for a particular default folder (such as Deleted Items) to the same retention policy.
  • Personal tags
    • Any number of personal tags
      Note
      : Many personal tags in a policy can confuse users. We recommend adding no more than 10 personal tags to a retention policy.

Was mir hier wichtig erscheint: Man kann sowohl eine DPT für die Archivierung als auch eine DPT für die Löschung in einer Policy haben! Es sollte der Zeiraum für die Löschung halt dann nur größer sein als der Zeitraum für die Archivierung, da es umgekehrt wenig Sinn macht 😉

Letzter Hinweis zu den Postfach-Statistiken

Um die Postfach-Statistiken für die Archivierungs-Postfächer zu bekommen kann man den gleichen Power-Shell Befehl „Get-MailboxStatistics“ verwenden nur mit dem Parameter „-Archive“

Kategorien
Allgemein Exchange Powershell Windows

Exchange: Get mailbox database stats

Manchmla wäre es interessant zu wissen, wieviel Platz denn noch in den einzelnen Mailbox-DB’s frei ist?

Hier die recht einfache Lösung:

[PS] C:\>Get-MailboxDatabase -Status | select Name,DatabaseSize,AvailableNewMailboxSpace
 
Name    DatabaseSize                      AvailableNewMailboxSpace
----    ------------                      ------------------------
DB01    23.25 GB (24,964,497,408 bytes)   123 MB (128,942,080 bytes)
DB02    25.88 GB (27,783,069,696 bytes)   184 MB (192,970,752 bytes)

Achtung! Beachtet das „-Status“!! Ohne dem sind die Spalten (bis auf den Namen!) leer!

Quelle: https://practical365.com/exchange-server/using-powershell-to-get-mailbox-database-size-and-available-new-mailbox-space/

Kategorien
Windows Server

IIS: Redirect domain to a deep-link

Wie man im IIS eine http-URL zur entsprechenden httpS-URL redirected ist ja bereits bekannt. Nun hatte ich zusätzlich das Problem, dass ich eine URL https://domain.tld weiterleiten sollte zu https://domain.tld/deep/link.html

Die Lösung fiel mir schwer, bis ich begriff, dass der Filter (der überprüft ob die rewrite-rule auf die Anfrage zutrifft) nicht die gesamte URL testet, sondern nur den Teil NACH der Domain!!! Dann war es einfach 😉

Die Lösung, die mir dann auch den Lerneffekt brachte, fand ich hier:

https://stackoverflow.com/questions/7018818/iis7-url-redirection-from-root-to-sub-directory

Kategorien
Powershell Windows

Win10: Startmenu stopped working

Eines Tages gegen Mittags ging plötzlich das Startmenü meines Win 10 Rechners nicht mehr auf. Erst wenn das passiert merkt man wie oft man das benötigt. Ich habe zwar die Meistverwendeten Programme in der Tastleite angeheftet und einige andere kann ich via „Win“+“R“ (Ausführen Dialog) aufrufen aber eben nicht alle.

Nach langem Googeln und suchen fand ich dann diesen Eintrag:
https://superuser.com/questions/1059411/windows-10-shellexperiencehost-crashes

Die Lösung bestand bei mir jedoch aus 2 Schritten:

  1. Ich musste die lokalen Settings aus meinem Profil-Ordner wegsichern! Der Roaming-Teil war nicht das Problem.
  2. Erst danach zeigten die Powershell-Befehle aus dem Link oben den gewünschten Erfolg!

Vielleicht nicht ungut zu wissen:

  • Der Powershell Befehl funktionierte nur wenn kein anderer User an dem Rechner angemeldet war!
  • Ich habe im Endeffekt zuerst mein Profil von diesem Rechner komplett gelöscht (via Systemsteuerung – System – Erw. Systemsteuerung – Benutzerprofile) und danach nur mehr die benötigten Teile zurückkopiert

 

Kategorien
JS Programmierung Sharepoint 2016

Sharepoint: Using CSR with activated MDS

MDS ist die „Minimale download strategie“ bei Sahrepoint. Mit CSR ist das „Client side rendering“ gemeint, mit dem man die Darstellung von Sharepoint-Seiten auf dem Client manipulieren kann.

Das eine (MDS) kommt dem anderen in die Quere! Hier gibts die Lösung:

https://blogs.msdn.microsoft.com/sridhara/2013/02/08/register-csr-override-on-mds-enabled-sharepoint-2013-site/

Aber ACHTUNG!!! Ein sehr wichtiger Hinweis findet sich in den Kommentaren darunter (User „armband“):

RegisterModuleInit expects a server relative URL and the url token ‚~sitecollection‘ doesn’t work, so if your CSRFieldType.js file is hosted in the ‚/sites/sitecol1‘ site collection master page gallery, the RegisterModuleInit call is:
RegisterModuleInit(„/sites/sitecol1/_catalogs/masterpage/CSRFieldType.js“, RegisterFavoriteColor);

 

Kategorien
Powershell Sharepoint 2016

Sharepoint 2016: Activate custom tiles

In Sharepoint gibts es ja links oben in der Ecke das icon mit dem 3×3-Punkte-Raster. Dahiner verbergen sich ein paar Links. Seit Sharepoint 2016 (zumindest SP1) kann man die Links hinter diesem Icon auch ändern:

https://docs.microsoft.com/en-us/sharepoint/administration/custom-tiles-in-sharepoint-server-2016