Alle Beiträge von Don Matteo

lebt in der Schweiz, ist System Engineer MCP bei A-Enterprise GmbH. Mitglied des UNBLOG Knowledge Network. Author und Blogger zu den Themen, Tutorials für Linux und Open Source.

Netzlaufwerk mapping aus VBScript

Windows Netzlaufwerk verbinden mit Visual Basic Script

VBScript netdrive.vbs Netzlaufwerk Mapping

VBScript können genutzt werden um Netzlaufwerke zu Windows-Netzwerkfreigabe auf Server oder NAS Geräte zu verbinden. In Situationen wo die Batchverarbeitung nicht die geeignete Wahl ist, oder aber Gruppenrichtlinien nicht die gewünschte Anwendung ist, kann ein Visual Basic Script die Anforderung erfüllen, beispielsweise zur Anwendung von Login Scripts bei VPN Remote Clients diese nicht Mitglied der AD Domäne sind.

Microsoft VBScript beinhaltet Objekt Klassen, Methoden (Funktionen / Prozeduren) und Wertestrukturen. Hier kommt unser Objekt MapNetworkDrive als Methode zur Anwendung. Die Methode oder das Verb manipuliert wiederum Werte.

Es können beliebige Objekt verwendet werden, hier wird das Objekt objNetwork definiert, Entwickler von Scripts halten sich gerne an Muster und ihren Variablen. Ein Präfix von str gibt einen Zeichenfolgenwert an, während der Präfix obj ein Objekt angibt. Nachdem WScript unser objNetwork erstellt hat, kann es mit der Methode MapNetworkDrive bearbeitet werden.

VBScript für Netzlaufwerk Mapping

Folgendes VBScript netdrive.vbs als Beispiel, für die herstellung der Windows-Netzwerkfreigabe zum Netzlaufwerk Z:, dabei kann die Verbindung als ein anderer Benutzer erfolgen, als mit dem man sich am Client authentifiziert hat.

Option Explicit
Dim objNetwork, strDriveLetter, strRemotePath, strUser, strPassword, strProfile, WshShell

' Set credentials & network share to variables.
strDriveLetter = "Z:"
strRemotePath = "\\server\share"
strUser = "domain\username"
strPassword = "topsecret"
strProfile = "false"

' Create a network object (objNetwork) do apply MapNetworkDrive Z:
Set objNetwork = WScript.CreateObject("WScript.Network")
objNetwork.MapNetworkDrive strDriveLetter, strRemotePath, _
strProfile, strUser, strPassword

' Open message box, enable remove the apostrophe at the beginning.
' WScript.Echo "Map Network Drive " & strDriveLetter
MsgBox " Explorer launch Network Drive " & strDriveLetter, vbInformation, "Network Drive Mapping"
' Explorer will open the mapped network drive.
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "explorer.exe /e," & strDriveLetter, 1, false
WScript.Quit

Die entsprechende Variable wird in den Zeilen 5 – 9 zugewiesen, in dem der jeweilige Platzhalter zwischen den Anführungs- und Schlusszeichen definiert wird.

VBScript Variablen definieren

  1. Bei strDriveLetter gewünschtes Netzlaufwerk zuweisen.
  2. Bei strRemotePath der UNC Pfad zur Netzwerkfreigabe.
  3. Bei strUser der Benutzername, ist dieser Mitglied einer Windows Domäne, muss der Domänen Präfix angeführt werden, dies in der Form domain\user.
  4. Bei strPassword das dem Benutzer zugewiesene Passwort.

VBScript WSH aus Batch ausführen

Kommt für für die Netzwerk-Anmeldung bereits ein Batch zB. netlogon.bat zur Anwendung, wird aus dem Batch unser VBScript netdrive.vbs wie folgt ausgeführt:

start /wait "" cscript //Nologo netdrive.vbs
VBScript Network Drive Mapping

Soll bei der Ausführung keine Visual Basic Console Fenster ausgegeben werden, verwendet man die Option /B, damit startet die Anwendung ohne ein neues Fenster zu öffnen.

start /B /wait "" cscript //Nologo netdrive.vbs

Nach erfolgreicher Anmeldung wird das Netzlaufwerk zur Windows-Netzwerkfreigabe erstellt, und anschliessend im Explorer geöffnet.

Network Time Protocol Linux Installation

Linux Systemzeit Synchronisation mit Network Time Protocol (NTP)

Network Time Protocol – NTP Synchronisation der Systemzeit mit der Atomzeit der NTP-Server. Dieser Beitrag zeigt die NTP-Service Bereitstellung und Konfiguration in der Linux Befehlszeile. Eine korrekte Systemzeit ist für Computersysteme essentiell und schafft überhaupt die Voraussetzung für ein reibungslosen Beitrieb der interagierenden Dienste. Zur Überprüfung und ändern der Systemzeit dienen folgende Befehlszeilentools.

Zur Abfrage der aktuellen Systemzeit mit date und timedatectl:

$ date
Fr 19. Feb 10:15:46 CET 2021
$ timedatectl
               Local time: Fr 2021-02-19 10:15:46 CET
           Universal time: Fr 2021-02-19 09:15:46 UTC
                 RTC time: Fr 2021-02-19 09:15:44
                Time zone: Europe/Zurich (CET, +0100)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

Der Zeitabgleich auf einem Server wird von einem NTP-Daemon ausgeführt, mit Synchronisation der Systemzeit für eine ordnungsgemässe Funktion der Systeme. Die Atomzeit kann von NTP-Server im Internet synchronisiert werden, wie zum Beispiel Google Public Network Time Protocol (NTP) time.google.com

Die NTP-Daemon Bereitstellung

Der NTP-Daemon auf Debian Linux basiertem System Installieren:

$ sudo apt install ntp ntpdate -y

Der NTP-Daemon auf RHEL/CentOS/Fedora System Installieren:

$ sudo dnf install ntp ntpdate -y

NTP Pool Server pool.ntp.org versucht den nächstgelegenen verfügbaren Server zu finden. Das Projekt NTP-Pool ist ein dynamischer Pool von Zeitservern. Die NTP Pool Server kann man in /etc/ntp.conf editieren.

pool time.google.com
pool europe.pool.ntp.org

Bevor der ntpd-Dienst gestartet werden kann, muss die Systemzeit grob (im Bereich weniger Minuten) eingestellt werden. Das kann manuell mit date oder hier mit timedatectl set-time oder über den NTP Pool mit ntpdate pool.ntp.org gemacht werden.

$ sudo ntpdate pool.ntp.org
$ sudo ntpq -pn
$ sudo ntpq -c rv

Nach einigen Minuten kann der Status des Dienstes abgerufen werden. Die Ausgabe des Kommandos ntpq -p sollte in etwa wie folgt aussehen.

Der bereitgestellte NTP-Daemon nun ausführen und in systemd für den automatischen start verlinken:

$ sudo systemctl start ntp.service
$ sudo systemctl enable ntp.service

Die systemd-timesyncd Konfiguration

Der Service systemd-timesyncd ist bei vielen Distributionen bereits installliert. Die Konfigurationsdateien steuern die Zeitsynchronisation des NTP-Netzwerks.

Die Network Time Synchronization für den Service systemd-timesyncd beinhaltet die Datei /etc/systemd/timesyncd.conf

Die Konfigurationsdatei timesyncd.conf kann wie folgt sein.

# See timesyncd.conf(5) for details.

[Time]
NTP=ch.pool.ntp.org
FallbackNTP=0.ch.pool.ntp.org 1.ch.pool.ntp.org 2.ch.pool.ntp.org 3.ch.pool.ntp.org 4.ch.pool.ntp.org
RootDistanceMaxSec=5
PollIntervalMinSec=32
PollIntervalMaxSec=2048

Damit systemd-timesyncd automatisch gestartet wird, aktiviert der Befehl enable den Service entsprechend:

$ sudo systemctl enable systemd-timesyncd
$ sudo systemctl start systemd-timesyncd

Bei einem systemd-basierten System führt man folgenden Befehl aus, um den Servicestatus zu überprüfen:

$ timedatectl status
               Local time: Fr 2021-02-19 10:15:46 CET
           Universal time: Fr 2021-02-19 09:15:46 UTC
                 RTC time: Fr 2021-02-19 09:15:44
                Time zone: Europe/Zurich (CET, +0100)
System clock synchronized: no
              NTP service: n/a
          RTC in local TZ: no

Die Ausgabe auf Zeile 7 und 8 bedeutet, dass der Zeitabgleich nicht ausgeführt wird. Mit folgendem Befehl wird die Synchronisation aktiviert:

$ sudo timedatectl set-ntp true

Der NTP Servicestatus erneut abfragen, nach einigen Sekunden zeigt die Ausgabe System clock synchronized: yes und NTP service: active:

$ timedatectl status
               Local time: Fr 2021-02-19 10:15:46 CET
           Universal time: Fr 2021-02-19 09:15:46 UTC
                 RTC time: Fr 2021-02-19 09:15:44
                Time zone: Europe/Zurich (CET, +0100)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

Die Kerberos-Authentifizierung

Die Kerberos-Authentifizierung ist gegenwärtig die Standard-Authentifizierungstechnologie unter Windows, auch Apple macOS, FreeBSD und Linux Systeme nutzen Kerberos-Implementierungen. Bei der Authentifizierung in einer Umgebung mit Kerberos, kommt eine synchrone Systemzeit für interagierende System eine fundamentale Bedeutung zu.

Die Kerberos Authentifizierung verlangt drei Entitäten, für die Ticket-Autorisierung durch eine dritte Partei, dabei darf die Systemzeit eine bestimmte Drift Limite nicht überschreiten, ein Ticket das durch Kerberos erstellt wird, ist nach einer gewissen Zeit abgelaufen, das Ticket wird ungültig.

Kerberos ist auch für Websites und SSO-Implementierungen plattformübergreifend zum Standard geworden. In Active Directory Domain Services (AD DS), ist bei der Integration von NAS und anderen Geräte, für den Zugriff auf Netzwerkressourcen für eine übereinstimmende Systemzeit zu sorgen. Für die Protokollierung wie Syslog ist die präzise Zeit, der Timestamp für die Auswertung der Ereignisse, und bei der Fehler Analyse bedeutend.

Linux Mint 20 Cinnamon: apt install ntp ntpdate