Autor: Viktor

  • Windows Server: SNMP-Service – missing security tab

    Wenn man einen Windows Server mit Nagios abfragen möchte passiert hier vieles via SNMP. Damit man im SNMP-Service auch die Security korrekt konfigurieren kann ist dieser Tipp wichtig. Ist zwar ganz einfach aber ich vergesse das immer wieder 😉

    Mit dem Servermanager diese drei Features installieren:

    1. SNMP service
    2. SNMP WMI Provider
    3. Remote Server Administration Tools -> Feature Administration Tools -> SNMP Tools

    Source: https://joshancel.wordpress.com/2013/04/02/windows-server-2012-no-security-tab-in-snmp/

     

  • Sharepoint: Set page to fullscreen mode using CSR

    Hier ein kleines Schnipsel wie ich in einem meiner Projekte eine Page in den Full-Screen-Modus schalte. Die Source im WWW habe ich mir damals leider nicht notiert. ICh abe das damals verwendet um die Bedienung der Page auf einem Tablet zu erleichtern. Für den User wurde eine Hinweisemeldung eingeblendet, die nach 10 Sekunden wieder verschwand:

    window.onload = function() {
        var width = $(window).width();
        console.log("width: " + width);
    
        if (width < 1000)
        {
            var addText = '<div id="fullScreenModeHint" style="color: red;">Da die Breite des Fensters weniger als 1000 Pixel (' + width + 'px) darstellt, wurde die Website in den "Vollbildmodus" geschalten! Um diesen zu verlassen klicken Sie bitte das entsprechende Icon oben rechts!<br><br><b>Diese Nachricht wird in 10 Sekunden ausgeblendet!!</b><br><br></div>';
            $("#WebPartWPQ3").html(addText + $("#WebPartWPQ3").html());
            //console.log("window onload - set full screen mode");
            SetFullScreenMode(true);        
            
            timeoutID = window.setTimeout(removeFullScreenModeHint, 10000);
        }
    };
    
    function removeFullScreenModeHint() {
        $("#fullScreenModeHint").html("");
    }

     

  • SQL: Version numbers

    Hier ein paar Links zu den „Übersetzungen“ der Versions-Nummern der MS-SQL-Server-Instanzen. Warum mehrere Links? Weil die ersten Seiten nicht komplett waren und ich erst ganz am Ende (als ich die Tab’s schon wieder geschlossen habe) bemerkt hatte, dass diese Seite (letzter Link) doch komplett ist  😉

    https://buildnumbers.wordpress.com/sqlserver/
    http://sqlserver-kit.org/en/home/version#microsoft-sql-server-2016-builds
    http://sqlserverversions.000webhostapp.com/

     

  • SQL-Server: Use bcp to export table

    Warum dieser Beitrag? Weil es bei der Verwendung von „bcp“ und einem CMD-Script ein paar Fallstricke gibt, über die ich ALLE heute gestolpert bin 😉

    Ich fand dieses Beispiel:
    https://stackoverflow.com/questions/23852295/export-sql-table-data-with-column-names-to-csv-file

    @echo off
    bcp "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '<table_name>'" queryout c:\file.csv -c -r, -T -S <server_name> -d <database_name>
    bcp "select * from <table_name>" queryout c:\data.csv -c -t, -T -S <server_name> -d <database_name>
    echo. >> c:\file.csv
    type c:\data.csv >> c:\file.csv
    del c:\data.csv

    Hauptproblem war, dass wir hier im Deutschen Sprachraum Umlaute haben und bei dieser Version wurden diese komplett „zerstört“.Das Weiteren hatte ich das Problem, dass in meinen zu exportierenden Daten auch „Mehrzeilige Texte“ vorkamen. Spätestens beim Import nach z.B. Excel bekam ich das Problem, dass Excel nicht mehr unterscheiden konnte zwischen einem Zeilenumbrum innerhalb einer Zelle und einem Zeilenumbruch am Ende einer Zeile!

    Zudem war es mir nicht variabel genug, da ich diese Funktion in näherer Zukunft für mehere Tabellen würde ausführen müssen.

    Daher erstellte ich ein Powershell-Script:

    #
    # Getting the data from a sql-database
    #
    # Export the data via bcp and prepare the data
    # with a few find-replace actions to a multi-line-string won'
    # make problems at importing
    #
    # I had the best experience using Libre Office Calc for the import!!
    #
    #
    
    # Var's to be changed:
    $tableName = "talbename"
    $db = "databasename"
    $server = "servername\instancename"
    
    # WHERE-Clause to limit output
    $whereClause = ""
    
    # No changes after here
    # =============================================================================
    
    # "home"-Folder
    $baseFolder = Split-Path -Parent -Path $MyInvocation.MyCommand.Definition
    
    # bcp-Path
    $bcpPath = "C:\Program Files\Microsoft SQL Server\110\Tools\Binn\bcp.exe"
    
    # FileNames
    $headerFile = "$baseFolder\header.dat"
    $dataFile = "$baseFolder\data.dat"
    $resultsFile = "$baseFolder\$tableName.csv"
    
    # Get the header
    $queryStr = "Select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = '$tableName'" 
    & $bcpPath "$queryStr" queryout "$baseFolder\header.dat" -w -r`°´ -T -S $server -d $db
    
    # Get the data
    $queryStr = "select * from $tableName"
    if ($whereClause)
    {
        $queryStr = $queryStr + " " + $whereClause
    }
    & $bcpPath "$queryStr" queryout "$baseFolder\data.dat" -w -t`°´ -r`~´ -T -S $server -d $db
    
    # Write header-data to result file
    $contentHeader = (Get-Content $headerFile -Raw)
    $cTemp = $contentHeader.Replace('`°´','";"')
    '"' + $cTemp + '"' > $resultsFile
    
    #Write data to result file
    $contentData = (Get-Content $dataFile -Raw)
    $cTemp = $contentData.Replace('`°´','";"')
    $cTemp2 = $cTemp.Replace('`~´','"' + "`n" + '"')
    '"' + $cTemp2 + '"' >> $resultsFile
    
    Remove-Item $headerFile
    Remove-Item $dataFile
    

     

  • Education: free online courses for (almost) everything

    Du wolltest immer schon irgendwas lernen und nicht von irgendwelchen youtube-tutorials abhängig sein? Hier die Lösung:

    https://www.class-central.com/

    Von „learning how to learn“ über C#, Java Script, Python, ….. bis hin zu „A life of hapiness and fullfillment“ und „Understanding dementia“

  • Sharepoint: When To Use A New SharePoint Site Collection VS. A New Sub Site

    Vermutlich eine der Fragen, die in zumindest 70% der Fälle sowohl so, als auch anders beantwortet werden kann.

    Hier ein Link zu einem Blog-Post, der eine etwas ausführlichere Antwort gibt: http://www.mssharepointtips.com/tip.asp?id=1048

     

  • VMware: Extend the functionality of VMware administration websites

    Links:
    https://labs.vmware.com/flings

    https://www.virtualizationhowto.com/2017/09/vmware-horizon-toolbox-fling-installation/

  • Exchange: Get list of user permissions per mailbox

    Wie zu erwarten war, handelt es sich hier um einen „Einzeiler“ für Powershell:

    Get-Mailbox | Get-MailboxPermission | 
        where {$_.user.tostring() -ne "NT AUTHORITY\SELF" -and $_.IsInherited -eq $false} | 
        Select Identity,User,@{Name='Access Rights';Expression={[string]::join(', ', $_.AccessRights)}} | 
        Export-Csv -NoTypeInformation mailboxpermissions.csv

    Gefunden haben ich dieses schöne Stück Code hier:

    https://practical365.com/exchange-server/list-users-access-exchange-mailboxes/

    Einzige Änderung die ich für unsere deutschsprachige Installation machen musste war anstelle dieser Eingrenzung

    $_.user.tostring() -ne "NT AUTHORITY\SELF"

    eine „not like“ Abfrage zu verwenden:

    $_.user.tostring() -NotLike "*\SELBST"

     

    Weiterer Link:
    https://technet.microsoft.com/de-de/library/aa998218(v=exchg.160).aspx

     

     

  • IIS8: Rewrite url’s from HTTP to HTTPS

    Wenn man mit dem IIS die Verwendung von HTTPS erzwingen möchte benötigt man ein kleines Add-On für den IIS. Es sei denn man hat nur eine  Domäne. Dafür reichen die Board-Mittel.

    Mit der „URL rewrite extension“ von MS für den IIS kann man für die einzelnen IIS Sites sehr variable Regeln einstellen was genau wann wohin geroutet werden soll.

    Hier die Links dazu:
    Die benötigte Erweiterung: https://www.iis.net/downloads/microsoft/url-rewrite
    Eine Schritt für Schritt Anleitung: https://blogs.technet.microsoft.com/dawiese/2016/06/07/redirect-from-http-to-https-using-the-iis-url-rewrite-module/

    Hier noch ein kleiner Tipp: Nach der Installation das Fenster des IIS kurz schließen und wieder öffnen (Stackoverflow).

  • Sharepoint: Restore a host name site collection

    Da einige Anleitungen im Internet nicht funktioniert haben hier das Script, das bei mir funktioniert hat:

    Restore-SPSite http://hnsc.domain.tld 
      -DatabaseServer SQLALIAS -DatabaseName WSS_Content 
      -Path "\\path\to\backup\sitecollection_export.file" 
      -HostHeaderWebApplication http://hnsc.domain.tld 
      -Force
    

    Das Backup wurde übrigens erstellt aus der CA von Sharepoint 2016. Zuerst habe ich ein Backup der ContentDB wiederhergestellt und dann in der CA unter „Backup und Restore“ den Assistenten „Recover data from a unattached content database“ bemüht.