Skip to content

Daniels Tagesmeldungen

Kleine IT-Episoden, der Diabetes & das wahre Leben

  • Startseite
  • About me

    • Lebenslauf
    • Weiterbildung
  • Diabetes melitus
    • Diabetes melitus – Definition/Typen
    • Diabetes melitus – Podcasts
    • Diabetes Typ-2 – ErlĂ€uterung
    • Medikament – Forxiga (Dapagliflozin)
    • Medikament – Eylea (Aflibercept)
    • Medikament – Lucentis (Ranibizumab )
    • Medikament – Metformin
  • Disclaimer
  • Toggle search form

Kategorie: Programmierung

Powershell: Setzen von IP und Computername

Posted on 10. Mai 20139. Mai 2013 By Daniel Lensing 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

„Microsoft Visual Basic 2010 – Das Entwicklerbuch“ kostenlos

Posted on 5. April 20138. April 2013 By Daniel Lensing Keine Kommentare zu „Microsoft Visual Basic 2010 – Das Entwicklerbuch“ kostenlos

Derzeit gibt es das „Microsoft Visual Basic 2010 – Das Entwicklerbuch“ kostenlos zum Download ĂŒber Microsoft Press zu beziehen. FĂŒr den Download wird die Angabe einer E-Mail-Adresse benötigt. Nach deren Eingabe ist der direkte Download des PDFs möglich.

Link

VB.NET

Powershell: Verzeichnisstruktur in Textdatei exportieren

Posted on 19. MĂ€rz 201319. MĂ€rz 2013 By Daniel Lensing 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

Probleme nach Gruppenumbennenung unter Nutzung von KiXtart

Posted on 6. August 20125. August 2012 By Daniel Lensing Keine Kommentare zu Probleme nach Gruppenumbennenung unter Nutzung von KiXtart

Vor lĂ€ngerer Zeit wollte ich in einem Projekt „mal eben fix“ einige Gruppennamen in einer Active Directory auf einen neueren Stand bringen. Dieses wollte ich ganz gern in einer sowieso stattfindenen Wochenend-Aktion durchfĂŒhren.

Ich Ă€nderte einen Gruppennamen in der Active Directory sowie im KiXScript und startete das System neu. Allerdings erhielt ich nicht den gewĂŒnschten Erfolg. Der neue Gruppenname wurde ignoriert, als ob dieser nicht im Skript eingebaut wĂ€re. Ich testete noch etwas weiter; fĂŒr das Wochenende musste es halt mit 3 neuen Gruppen realisiert werden.

Nun steht wieder ein Projekt an, bei dem viele Anpassungen durchgefĂŒhrt werden mĂŒssen und somit wollte ich dem noch einmal auf den Grund gehen. Recht schnell fand ich den Grund des entsprechenden Verhaltens bei der NamensĂ€nderung:

Group-membership information cache

Im Standard-Aufruf werden die Gruppen des Benutzers unter dem Registry-Pfad des angemeldeten Benutzers samt SID eingelagert. Dieser Cache wird fĂŒr 30 Tage aufrecht erhalten. Dieses Verhalten kann allerdings auser Kraft gesetzt werden in dem man beim Aufruf des Skripts einen Optionsschalter mitliefert:

kix32.exe script.kix /f

Mit der dem Schalter „/f“ wird die Aktualisierung der Gruppen forciert und die 30-tĂ€gige Cachezeit nicht genutzt. 

KiXtart

Probleme bei .NET Framework 4-Updates

Posted on 25. Juli 201216. Mai 2023 By Daniel Lensing Keine Kommentare zu Probleme bei .NET Framework 4-Updates

Bei einer meiner Installationen kam es zu Problemen bei der Aktualisierung durch diefolgenden Microsoft-Updates:

  • Update fĂŒr Microsoft .NET Framework 4 unter Windows XP, Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 x86 (KB2533523)
  • Sicherheitsupdate fĂŒr Microsoft .NET Framework 4 unter Windows XP, Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 x86 (KB2656351)
  • Update fĂŒr Microsoft .NET Framework 4 unter Windows XP, Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 x86 (KB2468871)
  • Sicherheitsupdate fĂŒr Microsoft .NET Framework 4 unter Windows XP, Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 x86 (KB2604121)
  • Sicherheitsupdate fĂŒr Microsoft .NET Framework 4 unter Windows XP, Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 x86 (KB2487367)
  • Sicherheitsupdate fĂŒr Microsoft .NET Framework 4 unter Windows XP, Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 x86 (KB2656368)
  • Sicherheitsupdate fĂŒr Microsoft .NET Framework 4 unter Windows XP, Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 x86 (KB2656405)
  • Sicherheitsupdate fĂŒr Microsoft .NET Framework 4 unter Windows XP, Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 x86 (KB2686827)
  • Update fĂŒr Microsoft .NET Framework 4 unter Windows XP, Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 x86 (KB2600217)

Ich konnte diese Installationsmöglichkeit mit der Funktion „Software“ der Systemsteuerung (adaptiv „Programme und Funktionen“ seit Windows Vista) wieder zur VerfĂŒgung stellen.

Ich musste dafĂŒr die Software „.NET Framework 4 Client Profile“ reparieren. Sollte der Button „Ändern/Entfernen“ nicht zur VerfĂŒgung stehen, muss nur das entsprechende MSI-Paket von Microsoft geladen werden und die Reparatur-Funktion wird bei der AusfĂŒhrung angeboten.

Client, VB.NET, Windows 7, Windows Server, Windows Vista, Windows XP

Alle DomÀnengruppen inkl. Mitglieder in HTML auflisten

Posted on 25. Juni 201225. Juni 2012 By Daniel Lensing 2 Kommentare zu Alle DomÀnengruppen inkl. Mitglieder in HTML auflisten

Aufgrund von umfangreicher Benutzerlöschungen habe ich einen Report erstellen wollen, welcher Benutzer in welcher Gruppe als Mitglied zum aktuellen Zeitpunkt eingebunden ist.

DafĂŒr habe ich ein sehr angenehmes VBS-Skript gefunden, welches ich minimal fĂŒr die Abfrage des Managers erweitert habe. Der Report selber wird als HTML-Datei angelegt.

' DocumentGroups.vbs
' VBScript program to document all groups in Active Directory.
' Outputs group name, type of group, all members, and types of member.
' Lists all groups that are members, but does not list the nested group
' membership.
'----------------------------------------------------------------------
' Copyright (c) 2002 Richard L. Mueller
' Hilltop Lab web site - http://www.rlmueller.net
' Version 1.0 - November 10, 2002
' Version 1.1 - February 19, 2003 - Standardize Hungarian notation.
' Version 1.2 - March 11, 2003 - Remove SearchScope property.
 
' *** MODIFIED March 13, 2006 - Added HTML File Out, Addtional Group/User Properties
'
' This script is designed to be run at a command prompt, using the
' Cscript host. The output can be redirected to a text file.
' For example:
' cscript //nologo DocumentGroups.vbs > groups.txt
'
' You have a royalty-free right to use, modify, reproduce, and
' distribute this script file in any way you find useful, provided that
' you agree that the copyright owner above has no warranty,obligations,
' or liability for such use.
'
' Version 1.3 - June 25, 2012 - Added attribute "managedby" by Daniel Lensing
 
Option Explicit
 
Dim objConnection, objCommand, objRootDSE, strDNSDomain, strQuery
Dim objRecordSet, strDN, objGroup
Dim FileSystem, oFile
' Open Text File for Output
Set FileSystem = WScript.CreateObject("Scripting.FileSystemObject")
Set oFile = FileSystem.CreateTextFile("GroupMemebrshipNew.html", True)
 
oFile.writeLine "<HTML><HEAD><TITLE>Group Membership for MyDomain.com</TITLE><HEAD><BODY>"
oFile.writeLine "<h4><TABLE width=100% border=0 padding=0 cellspacing=0 valign=top>"
 
 
' Use ADO to search Active Directory.
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection
 
' Determine the DNS domain from the RootDSE object.
Set objRootDSE = GetObject("LDAP://RootDSE")
strDNSDomain = objRootDSE.Get("defaultNamingContext")
 
' Search for all groups, return the Distinguished Name of each.
strQuery = "<LDAP://" & strDNSDomain _
& ">;(objectClass=group);distinguishedName;subtree"
objCommand.CommandText = strQuery
objCommand.Properties("Page Size") = 100
objCommand.Properties("Timeout") = 30
objCommand.Properties("Cache Results") = False
 
Set objRecordSet = objCommand.Execute
If objRecordSet.EOF Then
Wscript.Echo "No groups found"
objConnection.Close
Set objRootDSE = Nothing
Set objConnection = Nothing
Set objCommand = Nothing
Set objRecordSet = Nothing
Wscript.Quit
End If
 
' Enumerate all groups, bind to each, and document group members.
Do Until objRecordSet.EOF
strDN = objRecordSet.Fields("distinguishedName")
Set objGroup = GetObject("LDAP://" & strDN)
 
' OUTPUT
oFile.writeLine "<TR>"
oFile.writeLine "<TD width=20% valign=top bgcolor=black><font color=white><strong><u>" & "Group Name:" &_
"</u></strong></font></TD><TD width=80% valign=top><strong>" &_
objGroup.SAMaccountName & "</strong></TD>"
oFile.writeLine "</TR><TR>"
oFile.writeLine "<TD valign=top bgcolor=black><font color=white><strong><u>" & "Distinguished Name:" &_
"</u></strong></font></TD><TD valign=top><strong>" &_
objGroup.distinguishedName & "</strong></TD>"
oFile.writeLine "</TR><TR>"
oFile.writeLine "<TD valign=top bgcolor=black><font color=white><strong><u>" & "Description:" &_
"</u></strong></font></TD><TD valign=top><strong>" &_
objGroup.description & "</strong></TD>"
oFile.writeLine "</TR><TR>"
oFile.writeLine "<TD valign=top bgcolor=black><font color=white><strong><u>" & "Manager:" &_
"</u></strong></font></TD><TD valign=top><strong>" &_
objGroup.managedby & "</strong></TD>"
oFile.writeLine "</TR><TR>"
oFile.writeLine "<TD valign=top bgcolor=black><font color=white><strong><u>" & "Type:" & "</u></strong></font></TD><TD valign=top><strong>" & GetType(objGroup.groupType) & "</strong></TD>"
oFile.writeLine "</TR>"
 
oFile.writeLine "<TR><TD valign=top bgcolor=black><font color=white><strong><u>Members:</font></TD><TD align=left valign=top>"
oFile.writeLine "<TABLE width=70% border=0 cellspacing=0 cellpadding=0>"
oFile.writeLine "<Tr>"
oFile.writeLine " <TD valign=top><strong><u> Name </u></strong></TD>"
oFile.writeLine " <TD valign=top><strong><u> Account </u></strong></TD>"
oFile.writeLine " <TD valign=top><strong><u> Type </u></strong></TD>"
oFile.writeLine "</Tr>"
Call GetMembers(objGroup)
oFile.writeLine "</TABLE>"
 
oFile.writeLine "</TD></TR>"
 
oFile.writeLine "<TR><TD COLSPAN=2><hr width=90%></TD></TR>"
 
 
objRecordSet.MoveNext
 
Loop
oFile.writeLine "</TABLE></BODY></HTML>"
 
msgBox "Done !!!"
 
' Clean up.
objConnection.Close
Set objRootDSE = Nothing
Set objGroup = Nothing
Set objConnection = Nothing
Set objCommand = Nothing
Set objRecordSet = Nothing
 
Function GetType(intType)
' Function to determine group type from the GroupType attribute.
If (intType And &h01) <> 0 Then
GetType = "Built-in"
ElseIf (intType And &h02) <> 0 Then
GetType = "Global"
ElseIf (intType And &h04) <> 0 Then
GetType = "Local"
ElseIf (intType And &h08) <> 0 Then
GetType = "Universal"
End If
If (intType And &h80000000) <> 0 Then
GetType = GetType & "/Security"
Else
GetType = GetType & "/Distribution"
End If
End Function
 
Sub GetMembers(objADObject)
' Subroutine to document group membership.
' Members can be users or groups.
Dim objMember, strType
For Each objMember In objADObject.Members
If UCase(Left(objMember.objectCategory, 8)) = "CN=GROUP" Then
strType = "Group"
Else
strType = "User"
End If
 
' OUTPUT
 
oFile.writeLine "<TR>"
oFile.writeLine "<TD valign=top>" & objMember.displayName & _
"</TD><TD valign=top>" & objMember.SAMaccountName & _
"</TD><TD valign=top>" & strType & "</TD>"
oFile.writeLine "</TR>"
' Wscript.Echo " Member: " & objMember.sAMAccountName & " (" & strType & ")"
Next
Set objMember = Nothing
End Sub
VBS

Skript: Server-Erstkonfiguration per Powershell

Posted on 20. Juni 201220. Juni 2012 By Daniel Lensing 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

Seitennummerierung der BeitrÀge

Vorherige 1 … 11 12 13 14 NĂ€chste

Daniel Lensing

Ich betreibe diesen Blog, bei dem ich meine Erfahrungen aus der IT & dem Berufsalltag sowie dem Wahnsinn des Lebens mit Höhen und Tiefen. Darunter meine „Erlebnisreise“ zum Planeten „Diabetes mellitus Typ-2“.

Translate:

Follow us

Kategorien

  • Allgemein (1)
  • Client (235)
    • Android (7)
    • Fedora (Linux) (5)
    • iOS (5)
    • Mac OS X (5)
    • Peripherie (5)
    • Ubuntu (Linux) (8)
    • Windows 10 (60)
    • Windows 11 (21)
    • Windows 7 (100)
    • Windows 8 (36)
    • Windows 8.1 (28)
    • Windows Mobile (2)
    • Windows Vista (65)
    • Windows XP (21)
  • Cloud (15)
    • Amazon AWS (1)
    • Microsoft Azure (7)
    • Office 365 (9)
  • Fortbewegung (57)
    • Auto (18)
    • Bahn (18)
    • Beinarbeit (6)
    • Flugzeug (4)
    • Zweirad (14)
  • IT-Nachrichten (37)
  • Leben Beruf und Gesundheit (204)
    • #t2dhero (53)
    • Arbeitszimmer (31)
    • Audio (20)
    • Film / Kino (7)
    • Gedanken (79)
    • Gesundheit (33)
    • Internet (5)
    • Lebensmittel & Essen (22)
    • Lesestoff (18)
    • Sport (11)
    • Veranstaltung (3)
  • Lehren & Lernen (49)
    • Forschung (1)
    • Konferenzen (3)
    • PrĂ€sentation (4)
    • Zertifizierung (42)
  • Programme (325)
    • Android-Apps (27)
    • Eigene Tools (12)
    • iOS-Apps (6)
    • Office (86)
    • Patchday+Updates (74)
    • Software (150)
    • Spiele (3)
    • Windows Phone-Apps (2)
  • Programmierung (92)
    • AutoIT (1)
    • KiXtart (1)
    • PHP (3)
    • Power Automate (1)
    • Powershell (61)
    • VB.NET (10)
    • VBA (10)
    • VBS (10)
  • Server (159)
    • Citrix XenServer (2)
    • Exchange Server (26)
    • Lync Server (1)
    • System Center (4)
    • Ubuntu Server (2)
    • Windows Home Server (2)
    • Windows Server (92)
    • Windows Server 2012 (45)
    • Windows Server 2016 (15)
    • Windows Server 2019 (18)
    • Windows Server 2022 (15)
    • Windows Server 2025 (8)
  • Telekommunikation (38)
    • Festnetz (3)
    • Internet (13)
    • Mobilfunk (23)
  • Verkauf & Verlosung (1)
  • Web-Installationen (36)
    • Joomla (4)
    • Mastodon (1)
    • MediaWiki (9)
    • phpMyAdmin (2)
    • Piwik (4)
    • Wordpress (20)
Mastodon

Copyright © 2025 Daniels Tagesmeldungen.

Powered by PressBook WordPress theme