BATCH / POWERSHELL SKRIPTING

BATCH – DFÜ-Einwahl und Verbindung mit Remote-Desktop
BATCH – Druckaufträge im Spooler löschen
BATCH – net use und Sonderzeichen im Passwort
BATCH – Verzeichnis auf Existenz prüfen
BATCH – VPN-Einwahl mit ShrewVPN
POWERSHELL – Active-Directory-Befehle
POWERSHELL – Computername setzen
POWERSHELL – IP Einstellungen setzen
POWERSHELL – Kennwort-Richtlinien
POWERSHELL – Netzwerk-Ports prüfen
POWERSHELL – Rechner im Active-Directory einbinden
POWERSHELL – Server als Domaincontroller einrichten


System – DFÜ-Einwahl und Verbindung mit Remote-Desktop

@echo off
cls
rem
rem Name der Netzwerkverbindung setzen
set dial=_NAME_DFUE_EINWAHL_
rem
rem Remote-Desktop-Client setzen
set confile=%USERPROFILE%\Eigene Dateien\_NAME_RDP_PROFIL_.rdp
rem
rem Benutzername setzen
set username=_LOGINNAME_
rem
rem Passwort setzen
set password=_PASSWORT_
rem
rasdial “%dial%” %username% %password%
start /wait mstsc “%confile%”
rasdial “%dial%” /DISCONNECT


System – Druckaufträge im Spooler löschen

Zum Löschen von Druckaufträgen aus dem Spool-Verzeichnis, muss vorher der Dienst „Druckerwarterschlange“ angehalten werden.

net stop spooler
del %systemroot%\System32\spool\printers\* /Q
net start spooler


System – net use und Sonderzeichen im Passwort

 
Sonderzeichen in einem Passwort werden bei net use falsch interpretiert. Die praktikabelste Lösung ist, das Passwort in eine Variable zu setzen.

setlocal
@set ‚pw= Passwort/mitSonderzeichen“‚

net use Z: \\servername\freigabe /User:Domain\Nutzername %pw%

System – Verzeichnis auf Existenz prüfen

 

Um zu prüfen ob ein Verzeichnis oder eine Freigabe existiert, verwendet man am besten den EXIST-Befehl:

Beispiel:
if not exist \\server\freigabe goto err
net use …..
exit
:err
echo Fehler: Server xxx scheint nicht zu laufen


System – VPN-Einwahl mit ShrewVPN

Das Einwählen einer VPN Verbindung mit ShrewVPN kann man auch per Batch optimieren:
„C:\Programme (x86)\ShrewSoft\VPN Client\ipsecc.exe“ -r „VPN-Profilname“ -u „user“ -p „VPN Passwort“

Aber Achtung: Das VPN-Passwort steht dann im Klartext in der Batchdatei, eventuell ist dies unerwünscht.


POWERSHELL – ActiveDirectory-Befehle

Anzeige aller Benutzer im Active-Directory die nicht deaktiviert sind:
get-aduser -ldapfilter „(&(&(objectCategory=user)(userAccountControl=512)))“ | where-object -property enabled -eq true

Anzeige der Anzahl der Active-Directory-Benutzer:
(Get-ADUser -Filter „Name -like ‚*'“).count

Anzeige leerer Gruppen im Active-Directory
Get-ADGroup -Filter * -Properties Members | where { -not $_.Members} | select Name

Anzeige letzte Anmeldung eines Benutzerkontos:
Get-ADUser „NutzerName“ -Properties LastLogonDate | FT -Property Name, LastLogonDate -A

Anzeige letzte Anmeldung aller Benutzerkonten:
Get-ADUser -Filter {(Enabled -eq $true)} -Properties LastLogonDate | select samaccountname, Name, LastLogonDate | Sort-Object LastLogonDate

Gesperrte Benutzerkonten anzeigen:
Search-ADAccount -lockedout

Nutzer im Active-Directory entsperren:
Get-ADUser -Identity NutzerName | Unlock-ADAccount


POWERSHELL – Computername setzen

Dies geht am einfachsten mit dem CmdLet Rename-Computer. NewName ist der Name der für den Computer gesetzt werden soll. Restart leitet einen notwendigen Neustart nach der Umbenennung ein.
Rename-Computer -NewName dc03 -Restart -Force


POWERSHELL – IP Einstellungen setzen

Mit dem Cmdlet Get-NetAdapter zeigt die PowerShell die Netzwerkkonfiguration an.
Mit dem Cmdlet Get-Set-NetIPInterface können Sie Änderungen an der Netzwerkkonfiguration vornehmen.

Zeigt die aktuellen IP-Adressen an
Get-NetIPAddress
Get-DnsClientServerAddress

Der folgende Befehl deaktiviert DHCP. Achtung bei InterfaceAlias muss die Bezeichnung der LAN-Verbindung eingesetzt werden, die Sie ändern möchten.
Set-NetIPInterface -InterfaceAlias „Ethernet“ -AddressFamily IPv4 -DHCP Disabled -PassThru

Der folgende Befehl setzt eine IP-Adresse auf einer Netzwerk-Karte. Achtung bei InterfaceAlias muss die Bezeichnung der LAN-Verbindung eingesetzt werden, die Sie ändern möchten.
New-NetIPAddress -AddressFamily IPv4 -InterfaceAlias „Ethernet“ -IPAddress 192.168.1.232 -PrefixLength 24 -DefaultGateway 192.168.1.1

Setzen von DNS-Serveradressen:
Set-DnsClientServerAddress -InterfaceAlias „Ethernet“ -ServerAddresses 192.168.1.230, 192.168.1.231


POWERSHELL – Kennwort-Richtlinien im ActiveDiretory

Anzeige der aktuelle Richtlinien für Kennwörter im Active Directory:
Get-ADDefaultDomainPasswordPolicy

Das Setzen von Richtlinien erfolgt mit dem Cmdlet „Set-ADDefaultDomainPasswordPolicy“. Dafür stehen folgende Parameter zur Verfügung:

  • ComplexityEnabled (Kennwörter müssen Groß- und Kleinbuchstaben und zusätzlich Ziffern enthalten, $True oder $False)
  • DistinguishedName
  • LockoutDuration (Dauer der Kontosperrung)
  • LockoutObservationWindow (Zeit innerhalb der Anmeldeversuche für „LockoutDuration“ und „LockoutThreshold“)
  • LockoutThreshold (Einstellung nach wie vielen Anmeldeversuchen ein Konto gesperrt wird)
  • MaxPasswordAge (maximales Kennwortalter)
  • MinPasswordAge (minimales Kennwortalter)
  • MinPasswordLength (Mindestlänge für Kennwörter)
  • objectClass
  • objectGuid
  • PasswordHistoryCount (Anzahl der Kennwörter in der Kennworthistorie)
  • ReversibleEncryptionEnabled (Einstellung ob Kennwörter mit umkehrbarer Verschlüsselung gespeichert werden)

Beispiel:
Set-ADDefaultDomainPasswordPolicy -Identity domainname.local -ComplexityEnabled $True


POWERSHELL – Netzwerk-Ports prüfen

Mit dem Power-Shell-Befehl

Get-NetUDPEndpoint

kann man den Rechner auf offene UDP-Ports überprüfen.

Sollte der Rechner mehrere Netzwerkarten haben, kann man die Prüfung mit

Get-NetUDPEndpoint -LocalAddress 127.0.0.1

auf eine IP-Adresse einschränken.

Mit

Test-NetConnection 192.168.1.1 -Port 443 -InformationLevel „Detailed“

kann die Verbindung zu einer IP-Adresse über einen bestimmten Port geprüft werden.

Mit

Get-NetTCPConnection -State Established

zeigen Sie alle aktiven Verbindungen zu einer Netzwerkkarte an.


POWERSHELL – Rechner im Active-Directory einbinden

Fügt einen PC zum Active-Directory hinzu:
Add-Computer -Credential Domain\Administrator -DomainName domain.local -Restart -Force


POWERSHELL – Server als Domaincontroller einrichten

Installation der notwendigen Server-Rollen:
Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools -IncludeAllSubFeature

Domänencontroller heraufstufen
$pwd = Read-Host „Bitte Wiederherstellungs-Passwort für ActiveDirectory eingeben“ -AsSecureString
Install-ADDSDomainController -Credential (Get-Credential domain\Administrator) -DomainName „domain.local“ -NoGlobalCatalog:$false -CriticalReplicationOnly:$false -InstallDns:$true -SafeModeAdministratorPassword $pwd -Force

Danach ist der Server ein Domänencontroller und kann entsprechend verwendet werden.