Skip to content

Daniels Tagesmeldungen

Kleine IT-Episoden & das wahre Leben

  • Startseite
  • About me…
    • Lebenslauf
    • Weiterbildung
  • Disclaimer
  • Toggle search form

Kategorie: Powershell

Umrechnung von Bytes in größere Einheiten

Posted on 2. November 20132. November 2013 By Chef vom Dienst Keine Kommentare zu Umrechnung von Bytes in größere Einheiten

Bei einigen Auswertungen oder Abfragen per Visual Basic oder anderen Skriptsprachen erhält man Datengrößen in Bytes.
Nun werden diese Zahlen zuweilen sehr lang, so dass man diese zur vernünftigen Darstellung umrechnen sollte.
Dabei soll folgende Umrechnungstabelle unterstützen:

  • 1 KiloByte sind 1024 Bytes
  • 1 MegaByte sind 1048576 Bytes
  • 1 GigaByte sind 1073741824 Bytes
  • 1 TerraByte sind 10995116277776 Bytes

Entsprechend mit diesen Angaben können die Werte in die erforderlichen Größeneinheiten umgerechnet werden.

Powershell, VB.NET, VBA, VBS

Dateien gleichen Namens mit Struktur kopieren

Posted on 7. Oktober 20135. Oktober 2013 By Chef vom Dienst Keine Kommentare zu Dateien gleichen Namens mit Struktur kopieren

Aufgrund einer Fehleranalyse sollte eine Datei einer Software aus einer Ordnerstruktur kopiert werden. Leider kam bei der Suche nach der Datei heraus, dass sich in jedem Projektordner, welches diese Software anlegt, eine entsprechende Datei erzeugt wird.

Nun mussten alle Dateien kopiert werden, was mit dem selben Dateinamen leider nicht einfach möglich ist. Somit kam ich zu dem Schluss die Dateien mit der vorhandenen Ordnerstruktur kopieren zu wollen.

Da es sich um einige Projektordner handelte, wurde von mir das folgende Powershell-Skript entwickelt, welches die Datei mit der Ordnerstruktur zur Verfügung stellt

# Verzeichnis, ab dem Rekursiv nach der Datei gesucht wird
$Suchverzeichnis = "C:\Program files\Database\Log\Projects\"
 
# Datei, welche gesucht wird
$Datei = "start.act"
 
# Verzeichnis, wo die Daten erzeugt und kopiert werden soll
$Zielverzeichnis = "C:\analyse\"
 
#Dateiermittlung
$dat = Get-ChildItem -Path $Suchverzeichnis -Recurse -Include $Datei 
 
# Array erstellen
foreach ($file in $dat) {
 
     # Ermittelter Pfad & Dateiname in Kleinbuchstabeln wandeln
     $Objekt = ($file.Fullname).toLower()
 
     # Suchverzeichnis in Kleinbuchstaben wandeln
     $Startverzeichnis =$Suchverzeichnis.toLower()
 
     # Entfernung des Suchverzeichnis aus dem Array
     $Struktur = $Objekt.Replace($Startverzeichnis,"$null")
 
     # Entfernung des Dateinamens aus dem Array
     $Ordner = $Struktur.Replace($Datei,"$null")
 
     #Zusammensatzung für Skriptnutzung
     $Zielpfad = $Zielverzeichnis+$Ordner
 
     # Erstellung der Verzeichnisstruktur    
     New-Item $Zielpfad -itemtype directory -force  
 
     # Kopieren der Datei in die entsprechende Struktur
     Copy-Item ($file.fullname) -destination ($Zielpfad) -force
}

Mit dem Skript werden die benötigten Ordner angelegt und die ermittelten Dateien entsprechend kopiert, um das laufende System nicht zu stören.

Powershell

Powershell: Download-Skript

Posted on 2. August 20132. August 2013 By Chef vom Dienst Keine Kommentare zu Powershell: Download-Skript

In einigen Skripten benötigt man auch Downloads von Dateien aus dem Internet oder man möchte zum Beispiel eine Datei per Task zeitgesteuert herunterladen. Dieses kann über das folgende Skript ausgeführt werden:

# Variablen des Skriptes
 
# Download-Pfad der Remote-Datei
$web = "http://www.domain.tld/download.dat"
 
# Speicherort der heruntergeladenen Datei
$download = "C:\users\usr\downloads\"
 
# Falls die Datei eine Authentifizierung erfordert, 
# kann diese hier definiert werden
$user = ""
$passwort = ""
$domaene = ""
 
# Vortäuschen eines Windows 8 inkl. Internet Explorer 10 zu benutzen
# Bei einigen Webseiten wird ein UserAgent zum erfolgreichen Download benötigt
$agent = "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0)"
 
# Ablaufroutine
$DownloadClient = New-Object System.Net.WebClient
$DownloadClient.Headers.Add("user-agent", $agent)
$DownloadClient.Credentials = New-Object System.Net.Networkcredential($user, $passwort, $domaene)
$DownloadClient.DownloadFile( $web, $download )
Powershell

Powershell: Verknüpfung auf Skript erstellen

Posted on 4. Juli 20134. Juli 2013 By Chef vom Dienst Keine Kommentare zu Powershell: Verknüpfung auf Skript erstellen

In der letzten Zeit musste ich mich sehr intesiv mit Powershell beschäftigen und habe auch die ersten Fortschritte im Bereich Skripting gemacht.

Nun wollte ich ganz gerne auch Verknüpfungen auf die entsprechenden Skripte erstellen, damit ich nicht immer die Aufrufe manuell machen muss. Dieses ist allerdings doch gar nicht so trivial wie ich es vermutet habe. Hier die Syntax:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -Command „& ‚C:\PS Skripting\skript.ps1′“

Entsprechend kann ich nun die Skripte auch auf dem Desktop oder einem Sammelordner verknüpfen.

Powershell

Powershell: Setzen von IP und Computername

Posted on 10. Mai 20139. Mai 2013 By Chef vom Dienst Keine Kommentare zu Powershell: Setzen von IP und Computername

In den Demo-Umgebungen möchte man fix die Netzwerkeinstellungen und Computernamen nach einer Grundinstallation oder Kopieren einer virtuellen Maschine anpassen. Dieses ist mit einem vorgefertigtem Powershell-Skript in kurzer Zeit realisierbar.

#Variablen
$ip = "192.168.0.5" 
$prefix = "24" 
$gw = "192.168.0.1" 
$dns = "192.168.0.1" 
$name = "Server1" 
 
#Setzen der IP-Einstellungen
$adapter = (Get-NetAdapter).ifIndex 
New-NetIPAddress -IPAddress $ip -PrefixLength $prefix -InterfaceIndex $adapter -DefaultGateway $gw 
#Setzen des DNS-Servers
Set-DNSClientServerAddress –InterfaceIndex $Adapter -ServerAddresses $dns
#Setzen des Computernamens
Rename-Computer -NewName $name -force 
#Neustart des Systems
Restart-Computer
Powershell

Powershell: Verzeichnisstruktur in Textdatei exportieren

Posted on 19. März 201319. März 2013 By Chef vom Dienst Keine Kommentare zu Powershell: Verzeichnisstruktur in Textdatei exportieren

Mit disem Code können Ordnerstrukturen des Filesystems in eine Textdatei exportiert werden. Es wird der Startordner sowie der Pfad und der Dateiname der Exportdatei angegeben werden. Nach der Erstellung kann direkt die Textdatei geöffnet werden.

[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing") 
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") 
 
$objForm = New-Object System.Windows.Forms.Form 
$objForm.Text = "FolderListGenerator"
$objForm.Size = New-Object System.Drawing.Size(300,200)
$objForm.StartPosition = "CenterScreen"
 
$objForm.KeyPreview = $True
$objForm.Add_KeyDown({if ($_.KeyCode -eq "Enter") { $path=$objTextBox.Text;$objForm.Close()} })
$objForm.Add_KeyDown({if ($_.KeyCode -eq "Escape") { $objForm.Close()} })
 
$OKButton = New-Object System.Windows.Forms.Button
$OKButton.Location = New-Object System.Drawing.Size(75,120)
$OKButton.Size = New-Object System.Drawing.Size(75,23)
$OKButton.Text = "OK"
$OKButton.Add_Click({$path=$objTextBox1.Text;$file=$objTextBox2.Text;$objForm.Close()})
$objForm.Controls.Add($OKButton)
 
$CancelButton = New-Object System.Windows.Forms.Button
$CancelButton.Location = New-Object System.Drawing.Size(150,120)
$CancelButton.Size = New-Object System.Drawing.Size(75,23)
$CancelButton.Text = "Cancel"
$CancelButton.Add_Click({$objForm.Close()})
$objForm.Controls.Add($CancelButton)
 
$objLabel1 = New-Object System.Windows.Forms.Label
$objLabel1.Location = New-Object System.Drawing.Size(10,20) 
$objLabel1.Size = New-Object System.Drawing.Size(280,20) 
$objLabel1.Text = "Bitte Verzeichnispfad eingeben (z.B. C:\Folder):"
$objForm.Controls.Add($objLabel1) 
 
$objTextBox1 = New-Object System.Windows.Forms.TextBox 
$objTextBox1.Location = New-Object System.Drawing.Size(10,40) 
$objTextBox1.Size = New-Object System.Drawing.Size(260,20)
$objTextBox1.Text = ""
$objForm.Controls.Add($objTextBox1) 
 
$objLabel2 = New-Object System.Windows.Forms.Label
$objLabel2.Location = New-Object System.Drawing.Size(10,70) 
$objLabel2.Size = New-Object System.Drawing.Size(280,20) 
$objLabel2.Text = "Bitte Dateiablage eingeben (z.B. C:\temp\folder.txt):"
$objForm.Controls.Add($objLabel2) 
 
$objTextBox2 = New-Object System.Windows.Forms.TextBox 
$objTextBox2.Location = New-Object System.Drawing.Size(10,90) 
$objTextBox2.Size = New-Object System.Drawing.Size(260,20)
$objTextBox2.Text = ""
$objForm.Controls.Add($objTextBox2) 
 
[void] $objForm.ShowDialog()
 
Get-Childitem $path -recurse -filter * | 
? { $_.PSisContainer -eq $true} | 
% {$_.fullname -replace "\\","`t" } | 
sort | out-file $file
 
$a = new-object -comobject wscript.shell
$intAnswer = $a.popup("Exportdatei öffnen?",0,"FolderListGenerator",4)
If ($intAnswer -eq 6) {
  Invoke-Item $file
} else {
  $a.popup("Datei erstellt")
}

Als Trennzeichen wird der TAB genutzt, so dass ein Import z.B. in Excel ohne Probleme funktionieren sollte.

Powershell

Skript: Server-Erstkonfiguration per Powershell

Posted on 20. Juni 201220. Juni 2012 By Chef vom Dienst Keine Kommentare zu Skript: Server-Erstkonfiguration per Powershell

Häufig muss ich für Testumgebungen Windows Server 2008 R2 installieren. Dieses kann in Testumgebungen oder auch in Produktiv-Umgebungen vorkommen. Regelmäßig muss man dann die selben Einstellungen vornehmen. Dafür habe ich mir ein Powershell-Skript erstellt, welches folgende Konfiguration herstellt:

    • Installation des SNMP-Service
    • Installation des Telnet-Clients
    • Installation des .NET Framework 3.5.1
    • Installation von Bitlocker
    • Gesammte Firewall deaktivieren
    • Verstärkte Sicherheitskonfiguration füe IE für alle Benutzer deaktivieren
    • Start des „Assistent für die Erstkonfiguration“ deaktivieren
    • Start des „Server-Manager“ deaktivieren
    • Remote Desktop aktivieren

Um dieses Ausführen zu können muss erst die Berechtigung für Skripts angepasst werden. Dafür wird die Powershell geöffnet und der folgende Befehl eingeegben:

Set-ExecutionPolicy unrestricted

Anschließend kann das folgende Skript gestartet werden. Dafür muss es in eine Datei kopiert und mit der Datei-Endung „ps1“ versehen werden.

# Vorbereitung zur Feature-Installation
Import-Module Servermanager 
 
# SNMP installieren
Add-WindowsFeature SNMP-Services
Set-Service SNMP -StartupType Automatic
Start-Service SNMP
 
#Telnet-Client installieren
Add-WindowsFeature Telnet-Client
 
#.NET Framework 3.5.1 installieren
Add-WindowsFeature AS-NET-Framework
 
#Bitlocker installieren
Add-WindowsFeature Bitlocker
 
# Firewall deaktivieren
netsh advfirewall set allprofiles state off
 
# Registry für Routing-Anpassung
Set-ItemProperty -path "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" -name "IPEnableRouter" -value "0"
 
# Registry für IE ESC
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A7-37EF-4b3f-8CFC-4F3A74704073}" -Name "IsInstalled" -Value "0"
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A8-37EF-4b3f-8CFC-4F3A74704073}" -Name "IsInstalled" -Value "0"
 
# Registry für Assistent für Erstkonfiguration
Set-ItemProperty -Path "HKLM:\Software\Microsoft\ServerManager\Oobe" -Name "DoNotOpenInitialConfigurationTasksAtLogon" -Value "1"
 
# Registry für Server-Manager
Set-ItemProperty -Path "HKLM:\Software\Microsoft\ServerManager\" -Name "DoNotOpenServerManagerAtLogon" -Value "1"
 
# RemoteDesktop
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server" -Name "fDenyTSConnections" -Value "0"
 
# Restart des Computers
Restart-Computer
Powershell

Beitrags-Navigation

Vorherige 1 … 6 7

Daniel Lensing

Ich betreibe diesen Blog, wo ich meine Erfahrungen aus der IT sowie dem damit verbundenen Berufsalltag dem Internet zur Verfügung stelle.

Zwischenzeitlich bringe ich auch noch die eine oder andere Gegebenheit aus meinem Offline-Leben zur digitalen Nutzung.

Follow us

  • rss
  • mail
  • twitter
  • instagram
  • xing
  • linkedin

Kategorien

  • Allgemein (13)
  • Client (207)
    • Android (3)
    • Fedora (Linux) (4)
    • iOS (3)
    • Mac OS X (3)
    • Peripherie (4)
    • Ubuntu (Linux) (5)
    • Windows 10 (40)
    • Windows 11 (1)
    • Windows 7 (99)
    • Windows 8 (36)
    • Windows 8.1 (28)
    • Windows Mobile (2)
    • Windows Vista (64)
    • Windows XP (20)
  • Cloud (11)
    • Microsoft Azure (4)
    • Office 365 (7)
  • Fortbewegung (36)
    • Auto (12)
    • Bahn (13)
    • Beinarbeit (1)
    • Zweirad (10)
  • IT-Nachrichten (34)
  • Leben & Beruf (70)
    • Arbeitszimmer (2)
    • Gedanken (12)
    • Kino (2)
    • Lebensmittel & Essen (3)
    • Lesestoff (3)
    • Podcast (5)
  • Lehren & Lernen (44)
    • Konferenzen (1)
    • Präsentation (1)
    • Zertifizierung (42)
  • Programme (304)
    • Android-Apps (21)
    • Eigene Tools (11)
    • iOS-Apps (1)
    • Office (82)
    • Patchday+Updates (66)
    • Software (141)
    • Spiele (3)
    • Windows Phone-Apps (2)
  • Programmierung (78)
    • AutoIT (1)
    • KiXtart (1)
    • PHP (2)
    • Power Automate (1)
    • Powershell (49)
    • VB.NET (7)
    • VBA (10)
    • VBS (10)
  • Server (137)
    • Citrix XenServer (2)
    • Exchange Server (25)
    • Lync Server (1)
    • System Center (4)
    • Windows Home Server (2)
    • Windows Server (86)
    • Windows Server 2012 (43)
    • Windows Server 2016 (10)
    • Windows Server 2019 (2)
  • Telekommunikation (28)
    • Festnetz (3)
    • Internet (6)
    • Mobilfunk (19)
  • Verkauf & Verlosung (1)
  • Web-Installationen (32)
    • Joomla (4)
    • MediaWiki (9)
    • phpMyAdmin (1)
    • Piwik (4)
    • Wordpress (19)

Copyright © 2022 Daniels Tagesmeldungen.

Powered by PressBook WordPress theme