Archive 12. Mai 2022

Gezielter AD-Join mit Powershell Skript

Allgemeine Informationen

Dieses PowerShell-Skript ermöglicht es, einen Computer automatisch umzubenennen und anschließend einer spezifischen Active Directory-Domäne beizutreten. Zusätzlich wird der Computer in eine vorgegebene Organizational Unit (OU) verschoben. Standardmäßig führt das Skript nach diesen Änderungen einen Neustart durch, um sicherzustellen, dass alle Anpassungen wirksam werden.

Skript

# Funktion zur Überprüfung, ob das Skript als Administrator ausgeführt wird
function Ensure-RunAsAdministrator {
    $currentUser = [Security.Principal.WindowsIdentity]::GetCurrent()
    $isAdmin = (New-Object Security.Principal.WindowsPrincipal($currentUser)).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)

    if (-not $isAdmin) {
        Write-Host "Das Skript wird nicht als Administrator ausgeführt. Starte das Skript als Administrator neu."
        Start-Process powershell -ArgumentList "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs
        exit
    }
}

# Funktion zur Überprüfung der Windows-Edition (muss mindestens "Pro" oder höher sein)
function Check-WindowsEdition {
    $edition = (Get-WmiObject -Class Win32_OperatingSystem).OperatingSystemSKU

    # Windows Pro und höher haben die folgenden SKU-Codes: 48 = Pro, 49 = Pro N, 50 = Enterprise, 51 = Education, etc.
    $allowedEditions = @(48, 49, 50, 51)

    if ($allowedEditions -notcontains $edition) {
        Write-Host "Das Betriebssystem unterstützt keinen Beitritt zur Domäne. Es wird mindestens Windows Pro oder eine höhere Version benötigt."
        pause
        exit
    } else {
        Write-Host "Das Betriebssystem unterstützt den Beitritt zur Domäne."
    }
}

# Admin-Rechte sicherstellen
Ensure-RunAsAdministrator

# Überprüfen, ob die Windows-Edition "Pro" oder höher ist
Check-WindowsEdition

# Variablen definieren
$domäne = "DeineDomäne.local"  # Hier die Domäne eintragen
$Benutzername = "DomänenBenutzer"  # Hier den Domänenbenutzernamen eintragen
$Passwort = "DomänenPasswort"  # Hier das Domänenpasswort eintragen
$ou = "OU=Computer,OU=Standort,DC=DeineDomäne,DC=local"  # Hier die gewünschte OU eintragen
$AdminBenutzer = "$domäne\$Benutzername"
$neuerComputername = Read-Host "Bitte geben Sie den neuen Computernamen ein"

# Funktion zum Join in die Domäne mit spezieller OU und ohne Neustart
function Join-ComputerToDomain {
    $securePassword = ConvertTo-SecureString $Passwort -AsPlainText -Force
    $credentials = New-Object System.Management.Automation.PSCredential($AdminBenutzer, $securePassword)
      
    Add-Computer -DomainName $domäne -NewName $neuerComputername -Credential $credentials -OUPath $ou -PassThru -Force | Out-Null
    Write-Host "Der Computer wurde in die Domäne $domäne in die OU $ou aufgenommen"
}

# Funktion um Benutzer nach Neustart zu fragen (Standard ist Neustart)
function Prompt-Restart {
    $response = Read-Host "Möchten Sie den Neustart abbrechen? (nein/ja) [nein]"
      
    if ($response -eq "ja") {
        Write-Host "Neustart wurde abgebrochen. Änderungen werden nach einem manuellen Neustart aktiv."
    } else {
        Write-Host "Der Computer wird jetzt neu gestartet..."
        Restart-Computer -Force
    }
}

# Ausführen
# Computer zur Domäne hinzufügen
Join-ComputerToDomain

# Benutzer nach Neustart fragen (Standard ist Neustart)
Prompt-Restart

Skript ausführen

Schritt 1: PowerShell-Skript herunterladen und anpassen

  1. Erstelle das Skript lokal auf deinem Rechner.
  2. Öffne das Skript in einem Texteditor (z. B. Notepad, Visual Studio Code) und passe die folgenden Variablen entsprechend deinen Anforderungen an:
  • $domäne: Hier den Namen deiner Domäne eintragen (z. B. DeineDomäne.local).
  • $Benutzername: Der Benutzername eines Domänenadministrators.
  • $Passwort: Das Passwort des Domänenadministrators (Achtung: Verwende starke Passwörter!).
  • $ou: Die Organisationseinheit (OU), in der die Computer hinzugefügt werden sollen.

Speichere die Änderungen ab, sobald du alle Variablen angepasst hast.

Schritt 2: PowerShell ausführen

Öffne die CMD als Administrator und gebe folgenden Befehl ein.

powershell.exe -ExecutionPolicy Bypass -File C:\Pfad\Zu\Deinem\Skript.ps1

Yourls URL Shorter unter Linux installieren

apt install lamp-server^
mysql
CREATE DATABASE yourls; 
CREATE USER 'yourlsuser'@'localhost' IDENTIFIED BY 'password_here';
GRANT ALL PRIVILEGES ON yourls.* TO 'yourlsuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
apt install git
cd /var/www/
git clone https://github.com/YOURLS/YOURLS.git

mv YOURLS yourls
cd yourls/user
cp config-sample.php config.php

nano config.php
chown -R www-data:www-data /var/www/yourls
chmod -R 775 /var/www/yourls
nano /etc/apache2/apache2.conf

Change the: AllowOverride None to AllowOverride All
a2enmod rewrite
nano /etc/apache2/sites-available/yourls.conf
<VirtualHost *:80>
    ServerName short.domain.com
    DocumentRoot "/var/www/yourls"

    <Directory "/var/www/yourls">
        Require all granted
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>

   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined
   
</VirtualHost>
a2ensite yourls.conf
service apache2 restart 
http://domain.com/admin
chmod 0600 /var/www/yourls/user/config.php
apt install certbot python3-certbot-apache

certbot --apache -m master@domain.com -d cloud.domain.com

Nextcloud – Datenspeicher auf eine Mount Point umziehen

Ich wollte meinen Nextcloud Speicher auf mein NAS umziehen.

Bedeutet die Nextcloud läuft weiterhin auf einer VM nur die Hochgeladenen Dateien sollen auf dem NAS liegen.

Vorbereitungen

Als erstes musst du einen neuen User auf deinem NAS erstellen.

NAS Mounten

Gehe hierfür in den fstab

nano /etc/fstab
//IP-Adresse_vom_NAS/Freigabe_Ordner  /mountpoint_Verzeichniss cifs username=Username_vom_NAS,password=Passwort_vom_NAS,uid=33,gid=33 0 0

Systemlink erstellen

ln -s /Pfad/zum/MountPoint /Pfad/zum/symlink /Pfad/zum/Systemlink

Rechte setzen

chown -R www-data:www-data /Pfad/zum/Systemlink

chmod -R 755 /Pfad/zum/Systemlink

WordPress Cookie Plugin von Real Cookie Banner