Kategorien
Scripte

Super HTML 8.5 als Editor

CSS Programming Image

SuperHTML Web Studio 8.5 ist ein professioneller, deutschsprachiger HTML/Webeditor, der unter anderem zur Erstellung von Homepages, Webseiten, Webanwendungen und CMS-Templates geeignet ist.

SuperHTML Web Studio ist in erster Linie ein Code-basierter Editor, der volle Kontrolle über den Quellcode und maximale Flexibilität und Präzision bietet. Speziell für HTML-Dokumente steht aber auch ein bequemer WYSIWYG-Modus zur Verfügung, der besonders für Anfänger mit wenig HTML-Kenntnissen geeignet ist. Das Programm unterstützt alle gängigen Sprachen aus dem Webumfeld wie HTML, XHTML, XML, CSS, JavaScript, PHP, Perl, Ruby, WML u.v.m. und ist damit ein unverzichtbares Werkzeug für jeden professionellen Webentwickler. Weiterhin ist SuperHTML Web Studio vollständig Unicode-fähig und kann Dokumente für alle Zeichensätze und Sprachen bearbeiten und erstellen (ANSI, UTF-8 und UTF-16).

Features in SuperHTML Web Studio 8.5

Verbesserte Windows Vista-Unterstützung

Auch Windows Vista wird nun vollständig von SuperHTML Web Studio unterstützt. Unter Windows XP, Windows 2000 und Windows 98/ME lässt sich die Anwendung ebenfalls nach wie vor problemlos einsetzen.

Office 2007 Look & Feel

Mit der neuen Benutzeroberfläche im Office 2007 Stil (mit Multifunktionsleiste) erreichen Sie nun noch schneller mit weniger Klicks alle Funktionen. Und wer von dieser neuen Form der Benutzerschnittstelle noch nicht überzeugt ist, kann alternativ weiterhin die klassische Darstellung mit Menüs und Symbolleisten verwenden, die natürlich komplett Benutzer-anpassbar ist!

Projektverwaltung

Endlich verfügt SuperHTML nun auch über eine Projektverwaltung. Mit der Projektverwaltung lassen sich nicht nur alle Dateien, die zu einem Projekt gehören, einfach verwalten und schneller zugreifen, sondern auch Projekt-spezifische Einstellungen wie z.B. (S)FTP-Profil, Aufgabenlisten oder Offline-Includes-Optionen zusammen speichern.

Verzeichnis-weites Suchen in Dateien

Mit dem neuen, leistungsfähigen Suchassistenten lassen sich beliebige Wörter oder Texte in Dateien bestimmter Verzeichnisse suchen. Dabei können zusätzlich auch bereits im Editor geöffnete Dateien miteinbezogen werden.

Unterstützung der aktuellen Version von Tidy.exe

Das Tool Tidy.exe hat sich zum de facto Standard für Syntax-Ãœberprüfung und Code-Validierung bzw. Reparatur und Aufbereitung von (X)HTML/XML-Code etabliert. Während SuperHTML Web Studio 8.0 nur die proprietäre Tidy-Lib von 2003 unterstützt hat, arbeitet die neue Version nun direkt mit Tidy.exe zusammen. So kann dieses Tool auch zukünftig leicht aktualisiert werden. Natürlich kann SuperHTML Web Studio auch beliebige Tidy-Konfigurations-Dateien laden bzw. Ihre Konfigurationen zur späteren Verwendung speichern.

Drag & Drop zwischen (S)FTP/SSH-Client und dem Windows Explorer / Arbeitsplatz

Lokale Dateien aus beliebigen Windows-Explorer bzw. Arbeitsplatzfenstern lassen sich nun per Drag & Drop auf den (S)FTP-Server kopieren. Der umgekehrte Weg funktioniert natürlich genauso. Somit brauchen Sie wirklich kein externes (S)FTP-Programm mehr.

Neue Syntax-Highlighting-Schemes

Neben den zahlreichen Syntax-Highlighting-Schemes für viele Websprachen gibt es nun auch Syntax-Schemes für Ruby, Rails und Apache-Konfigurationsdateien. Natürlich können Sie auch Ihre eigenen Syntax-Schemes erstellen oder bestehende nach Ihren Wünschen anpassen.

Programm-Startseite

Auf Wunsch erscheint nun bei jedem Programmstart eine aktuelle Startseite, welche Sie über verfügbare Updates und nützliche Funktionen im Programm informiert. So verpassen Sie keine Updates oder kostenlose Maintenance Releases mehr!

Unterstützung von weichen TABS

Zur besseren Lesbarkeit von Code (HTML, PHP oder andere Sprachen) werden Absätze häufig mit TABS (Tabstops) eingerückt. Da die dargestellte Länge eines TABS auf unterschiedlichen Systemen jedoch variieren kann, wirkt u.U. der Code nur noch schlecht lesbar. Weiche TABS sind eine Verkettung von Leerzeichen in der Länge eines TABS. So sieht Ihr Code auf allen Systemen gleich „gut“ aus.

Verbesserte UTF-8-Unterstützung

Durch das automatische Einfügen von Codierungs-Meta-Tags und die verbesserte Erkennung von UTF-8-Dateien (auch wenn diese keine Sonderzeichen enthalten!), fällt die Arbeit mit UTF-8-codierten Dateien in SuperHTML Web Studio nun noch leichter.

Verbesserte CSS-Unterstützung in vielen Assistenten

In vielen Assistenten (z.B. zum Einfügen von Tabellen oder Hyperlinks) können nun CSS-Klassen angegeben werden und optional auch der generierte Code mit CSS-Formatierungen statt mit normalen HTML-Formatierungen ausgegeben werden.

Neue Möglichkeiten in der Vorschau

In der Vorschau informiert eine Info-Zeile nun stets über den aktuellen IE-Browser-Modus (Quirks-Mode bzw. Standards-Compliant-Mode). Außerdem lassen sich für Formular-Steuerelemente (z.B. Buttons oder Eingabezeilen) die Betriebssystem-spezifischen Skinning-Effekte (wie unter Windows XP oder Vista) ein- oder ausschalten.

Zahlreiche kleinere Detailverbesserungen und Bugfixes

Viele Detailverbesserungen machen die Arbeit mit SuperHTML Web Studio nun noch angenehmer als bisher. Die neuen Version 8.5 ist der Beweis dafür, dass sich auch bei voller Kontrolle über den Quellcode eines Dokuments komfortabel arbeiten lässt.

*Quelle: mirabyte.com

Kategorien
Scripte

Active Directory read Groups

AD Icon Graustufen

Hier gelistet ist der Source Code zu der Prozedur Gruppenmitglieder ermitteln. Umgesetzt in VBS, mit entsprechender graphischer Ein- und Ausgabe.

Start

Dim objADAM    ' Binding object.
Dim objGroup   ' Group object.
Dim objMember  ' Member object.
Dim strPath    ' Binding path.
Dim dc(10)

' Create the Domain - String
Kontrollfeld.Text = ""
Set rootDSE = GetObject("LDAP://rootDSE")
If Err.Number = 0 Then
    DCName = rootDSE.Get("defaultNamingContext")
    Kontrollfeld.Text = Kontrollfeld.Text & DCName
Else
    Kontrollfeld.Text = Kontrollfeld.Text & "Nicht an Domäne angemeldet."
End If

' Construct the binding string.
strPath = OU.Text

' Bind to object.
Set objADAM = GetObject(strPath)

' Output error if bind fails.
If Err.Number <> vbEmpty Then
    Kontrollfeld.Text = Kontrollfeld.Text & "Error:   Bind failed." & vbCrLf
End If

' Enumerate groups and members.
objADAM.Filter = Array("group")
For Each objGroup In objADAM
    Kontrollfeld.Text = Kontrollfeld.Text &_
    "Group:   " & objGroup.Name & vbCrLf
    For Each objMember In objGroup.Members
        Kontrollfeld.Text = Kontrollfeld.Text &_
        objMember.samAccountName & ";" & objMember.LastName &_
        ";" & objMember.GivenName & ";" & objMember.mail & vbCrLf
        Form1.Refresh
        Kontrollfeld.Refresh
    Next
Next

' Output success or error.
If Err.Number <> vbEmpty Then
    Kontrollfeld.Text = Kontrollfeld.Text &_
    "Error:   Enumeration failed." & vbCrLf
Else
    Kontrollfeld.Text = Kontrollfeld.Text &_
    "Success: Enumeration complete." & vbCrLf
End If

Array mit For-Each-Schleife durchlaufen

Standardmäßig durchlaufen Sie ein Array mit einer For-Schleife, etwa um alle Einträge auf dem Bildschirm auszugeben. Das Array lautet beispiels­weise

int[] a={2, 3, 5, 7, 11, 13};

Die For-Schleife lautet dann:

for (int i=0; i<6; i++) System.out.println(a[i]);

Mithilfe einer For-Each-Schleife durchlaufen Sie das Array folgender­maßen:

for (int x : a)    // for each x in a
    System.out.println(x);

Bei der For-Each-Schleife können Sie nicht auf die Index-Positionen der Einträge zugreifen, und Sie können nur lesend auf die Einträge zugreifen.

Sehr elegant lassen sich For-Each-Schleifen schachteln, um mehrdimensionale Arrays zu durchlaufen, beispiels­weise wenn Sie ein mehrdimensionales Array ausgeben möchten.

Die Ausführung bestimmter Tools erfordert spezielle Rechte (administrativer Art). Ich übernehme keinerlei Gewährleistung für evtl. auftretende Schäden. Sie benutzen das Tool auf eigene Gefahr. Bitte sichern Sie zuvor Ihre Daten! Ich übernehme keine Gewähr!

https://learn.microsoft.com/de-de/dotnet/visual-basic/language-reference/statements/for-each-next-statement

Kategorien
Scripte

Directory User List Objektabfrage

Binäre Darstellung

Ziel: Ausgabe von Objekten und den dazugehörigen Informationen

Das beiliegende Script gibt alle Directory Einträge (Objekteigenschaft = USER) aus in C:\temp\ad_user_list.csv (CSV – Format) Eingetragen werden müssen die zu durchsuchenden Domains. Es kann auch ein Start in einer bestimmten Organisationseinheit gewählt werden. Das Programm eignet sich für eine regelmäßige Ausgabe über den Task Scheduler, damit liegt immer eine aktuelle Liste der Einträge vor, die entsprechend abgegriffen und weiter verarbeitet werden kann.

Ausgegeben wird:

  • Anmeldename;
  • Nachname;
  • Vorname;
  • Telefon;
  • ipPhone;
  • Email;
  • Ort;
  • Strasse;
  • ADSPfad;
  • Department;
  • Division;
  • Company.

Die Laufzeit ist abhängig von der Domaingröße und den darin enthaltenen Objekten.

Private Sub Form_Load()
'Dimensionierung
Dim objAs, objUser, oDomain
Dim ListeOU(60000)
Dim strLDAPQuery
Dim objCON
Dim i, Bereich(3), DC(10)

AnzahlOU = 1
Open "C:\temp\ad_user_list.csv" For Output As #1
On Error Resume Next
Bereich(0) = ""
Bereich(1) = ""
Bereich(2) = ""

Print #1,
"Anmeldename;
Nachname;
Vorname;
Telefon;
ipPhone;
Email;
Ort;
Strasse;
ADSPfad;
Department;
Division;
Company;
Beschreibung;"

For i = 0 To 2
Set objCON = CreateObject("ADODB.Connection")
CONSTRING = "Provider=ADSDSOObject"
objCON.Open CONSTRING
strLDAPQuery = Bereich(i) &_
";(objectclass=organizationalUnit);samaccountname,adspath;subtree"
Set rs = objCON.Execute(strLDAPQuery)

While Not rs.EOF
     ListeOU(AnzahlOU) = rs("adspath")
     If InStr(1, ListeOU(AnzahlOU), "User") Then
      If InStr(1, ListeOU(AnzahlOU), Mid(Bereich(i), 9, 3)) Then
       Set oDomain = GetObject(ListeOU(AnzahlOU))
       oDomain.Filter = Array("user")
       For Each oUser In oDomain
         ADSPfad = oUser.ADsPath
         oUser.GetInfo
         If oUser.LastName = "" Then
           nachname = " "
         Else
           nachname = oUser.LastName
         End If
         If oUser.FirstName = "" Then
           Vorname = " "
         Else
           Vorname = oUser.FirstName
         End If
         If oUser.Get("mail") = "" Then
           mail = " "
         Else
           mail = oUser.Get("mail")
         End If
         If oUser.department = "" Then
           department = "?"
         Else
           department = oUser.department
         End If
         If oUser.Get("l") = "" Then
           l = " "
         Else
           l = oUser.Get("l")
         End If
         If oUser.Get("streetAddress") = "" Then
           street = " "
         Else
           street = oUser.Get("streetAddress")
         End If
         If oUser.Get("TelephoneNumber") = "" Then
           Telefon = " "
         Else
           Telefon = oUser.Get("TelephoneNumber")
         End If
         If oUser.Get("ipPhone") = "" Then
           ipPhone = " "
         Else
           ipPhone = oUser.Get("ipPhone")
         End If
         If oUser.Get("division") = "" Then
           division = " "
         Else
           division = oUser.Get("division")
         End If
         If oUser.Get("company") = "" Then
           company = " "
         Else
           company = oUser.Get("company")
         End If
         If oUser.Get("description") = "" Then
           beschreibung = " "
         Else
           beschreibung = oUser.Get("description")
         End If
       
         Print #1,Chr(34) & 
         oUser.Get("SAMAccountname") & Chr(34) & ";" & Chr(34) & 
         nachname & Chr(34) & ";" & Chr(34) & 
         Vorname & Chr(34) & ";" & Chr(34) & 
         Telefon & Chr(34) & ";" & Chr(34) & 
         ipPhone & Chr(34) & ";" & Chr(34) & 
         mail & Chr(34) & ";" & Chr(34) & 
         l & Chr(34) & ";" & Chr(34) & 
         street & Chr(34) & ";" & Chr(34) & 
         ADSPfad & Chr(34) & ";" & Chr(34) & 
         department & Chr(34) & ";" & Chr(34) & 
         division & Chr(34) & ";" & Chr(34) & 
         company & Chr(34) & ";" & Chr(34) & 
         beschreibung & Chr(34) & ";"
       
       Next
      End If
     End If
     AnzahlOU = AnzahlOU + 1
     rs.MoveNext
Wend

Next i

Close #1
Unload Form1
End Sub

Siehe auch: https://learn.microsoft.com/de-de/powershell/

Kategorien
Scripte

Alle Dienste mit Status in Excel Datei

CSS Programming Image

Dieses Skript legt eine Excel Datei mit allen Diensten und deren Stati an. Excel muss installiert sein.

VBS Datei

Es handelt sich um eine VBS Datei. Ihr müsst nur den Code kopieren und bei Euch abspeichern und ausführen.

msg = "Kurzbeschreibung:" & vbCr & "Dieses Skript legt eine Excel Datei mit allen Diensten und deren Stati an. Voraussetzung -> Excel.
" & vbCr & vbCr & "Jetzt das Skript ausführen?"
antwort = MsgBox(msg, vbYesNo + vbQuestion)
if antwort = vbNo then 
  MsgBox "Abbruch", vbExclamation
  WScript.Quit
end if
' Variablenfeld mit den Klartextnamen für Status
startcodes = Split(",läuft nicht,wird gestartet,wird gestoppt,läuft,wird fortgesetzt,wird angehalten,angehalten,Fehler", ",")

' Variablenfeld mit den Klartextnamen für Starttyp anlegen
starttypes = Split("Autostart Boot,Autostart Windowsstart,Autostart Controlmanager,manuell,gesperrt",",")
'SYS: Windows Script Host Runtime Library
Set net = CreateObject("WScript.Network")

' Hier den lokalen Rechnernamen:
computer = InputBox("Bitte geben Sie den Rechnernamen an!",,net.ComputerName)

' Verbindung herstellen:
Set obj = GetObject("WinNT://" & computer & ",computer")
'SYS: Microsoft Office 2000 component
Set objXL = CreateObject("Excel.Application")
objXL.Visible = True
objXL.Workbooks.Add
objXL.Columns(1).ColumnWidth = 30
objXL.Columns(2).ColumnWidth = 15
objXL.Columns(3).ColumnWidth = 35
objXL.Columns(4).ColumnWidth = 20
objXL.Columns(5).ColumnWidth = 15
objXL.Columns(6).ColumnWidth = 10
objXL.Columns(7).ColumnWidth = 20
objXL.Columns(8).ColumnWidth = 20
' Spaltenüberschriften:
objXL.Cells(1, 1).Value = "Dienstname"
objXL.Cells(1, 2).Value = "Systemname"
objXL.Cells(1, 3).Value = "Executable"
objXL.Cells(1, 4).Value = "abhängig von"
objXL.Cells(1, 5).Value = "Konto"
objXL.Cells(1, 6).Value = "Status"
objXL.Cells(1, 7).Value = "Starttyp"
objXL.Cells(1, 8).Value = "Diensttyp"

Im Anschluss wird die 1. Zeile formatiert.

' erste Zeile formatieren:
objXL.Range("A1:H1").Select
objXL.Selection.Font.Bold = True
objXL.Selection.Interior.ColorIndex = 1
objXL.Selection.Interior.Pattern = 1 'xlSolid
objXL.Selection.Font.ColorIndex = 2

' Daten beginnen in zweiter Zeile
intIndex = 2

Servicefilter

' nur Service-Objekte anzeigen
obj.Filter = Array("Service")

' alle Dienste untersuchen
For each dienst in obj
   ' Infos in Spreadsheet eintragen:
   GetInfo(dienst)
Next

MsgBox "Fertig.",vbInformation + vbSystemModal

Fehlerbehandlung ausschalten, denn einige Eigenschaften können
undefiniert sein (z.B. Dependencies).

Sub GetInfo(obj)

   On Error Resume Next
   objXL.Cells(intIndex, 1).Value = obj.DisplayName
   objXL.Cells(intIndex, 2).Value = obj.Name
   objXL.Cells(intIndex, 3).Value = obj.Path
   dependencies = "unabhängig"
   dependencies = obj.Dependencies
   ' ist es etwa ein VariablenFELD?
   If TypeName(dependencies) = "Variant()" Then
      ' ja, also Feld in mehrzeiligen Text umwandeln
      dependencies = Join(dependencies, vbLf)
   End If
   objXL.Cells(intIndex, 4).Value = dependencies
   objXL.Cells(intIndex, 5).Value = obj.ServiceAccountName
   ' Zahlenwert in Klartext umwandeln:
   objXL.Cells(intIndex, 6).Value = startcodes(obj.Status)
   ' Zahlenwert in Klartext umwandeln:
   objXL.Cells(intIndex, 7).Value = starttypes(obj.StartType)
   ' Bitmaske in Klartext umwandeln:
   objXL.Cells(intIndex, 8).Value = DecodeType(obj.ServiceType)
   
   ' nächste Zeile:
   intIndex = intIndex + 1
   On Error Goto 0
   
End Sub

Hier erfolgt die Typdekodierung.

Function DecodeType(code)
   If (code And 1)<>0 Then
      DecodeType = "Kernel-Treiber"
   End If
   
   If (code And 2)<>0 Then
      DecodeType = DecodeType & "Dateisystem-Treiber"
   End If
   
   If (code And 16)<>0 Then
      DecodeType = DecodeType & "eigener Prozeß"
   End If
   
   If (code And 32)<>0 Then
      DecodeType = DecodeType & "gemeinsamer Prozeß"
   End If
End Function

Viel Erfolg mit dem Testen und ändert es einfach ab wenn etwas nicht passt.

Kategorien
Scripte

Benutzerkonto in AD Gruppe aufnehmen

AD Icon Graustufen

Script um eine Active Directory User in eine Gruppe aufzunehmen.

User=InputBox(„Usernamen eingeben“,“Userinput“)
Gruppe=InputBox(„Gruppennamen eingeben“,“Userinput“)

User=InputBox("Usernamen eingeben","Userinput")
Gruppe=InputBox("Gruppennamen eingeben","Userinput")
' Gruppe auswählen
Set ou = GetObject("LDAP://ou=Groups,dc=abc,dc=xy")
Set gruppe_G = ou.GetObject("group", "cn=" + Gruppe)
' User Auswählen
Set ou = GetObject("LDAP://ou=SWM-Users,dc=intra,dc=swm,dc=de")
Set User_G = ou.GetObject("user", "cn=" + User)

gruppe_G.Add User_G.ADsPath

Es geht hier um die Vorbereitung einer Möglichkeit die Funktion Administratoren über ein Servicekonto möglich zu machen.

Kategorien
Scripte

Windows neu starten nach Abfrage

CSS Programming Image

Nach Installationen oder auch zu Wartungszwecken ist es mitunter nötig den Rechner oder das Notebook neu zu starten.

Dieses kurze Script kann dabei helfen und am Ende einer Prozedur hinzugefügt werden. Der Benutzer kann die Ausführung abbrechen.

Ihr könnt das Script dem entsprechend abändern. Ausführung erfolgt mit „Windows Based Script Host“.

nachricht = "Beschreibung:" & vbCr & "Dieses Skript startet Windows neu. ACHTUNG: Windows wird mit diesem Skript NEU GESTARTET!" & vbCr & vbCr & "Jetzt das Skript ausführen?"
antwort = MsgBox(nachricht, vbYesNo + vbQuestion)
if antwort = vbNo then 
  MsgBox "Abbruch", vbExclamation
  WScript.Quit
end if

'SYS: Windows Shell Common Dll
Set shell = CreateObject("Shell.Application")

'SYS: Windows Script Host Runtime Library
Set wshshell = CreateObject("WScript.Shell")

antwort = MsgBox("Wollen Sie wirklich Windows neu starten?", vbYesNo + vbQuestion)
If antwort = vbYes Then
   ' Beenden aufrufen
   shell.ShutdownWindows
   ' halbe Sekunde warten
   WScript.Sleep 750
   ' Neu starten wählen
   wshshell.SendKeys "%N{ENTER}"
End If
Kategorien
Scripte

Passwort eines AD Benutzers setzen

AD Icon Graustufen

Nützlich für die initiale Verteilung neuer Konten (Domain Implementierung).

Hier wir ein Passwort für die gewünschten Benutzer gesetzt.

Wir das Ganze noch in eine Schleife gesetzt ist es eine Bulkänderung.

Set objUser = GetObject ("LDAP://abc.xy/CN=Accounname,OU=Users,DC=abc,DC=xy")
Kategorien
Scripte

Network Virtual Service Provider Bind

Binäre Darstellung

Summary

The purpose of nvspbind is to disable and enable protocol bindings from the command line when operating in the parent partition for Hyper-V in a server core environment.  This is typically accomplished using the network control panel. However, the network control panel GUI applet is not available in a server core installation of Windows Server 2008 or Microsoft Hyper-V Server.  Nvspbind provides a means for enabling and disabling the protocols from the command line.

Beispiel 1 (IPV6 on IPV4 off):

@echo off
REM IPV6 on IPV4 off
cls
REM cd IPV6
.\nvspbind.exe /e * ms_tcpip
.\nvspbind.exe /e * ms_tcpip6
pause
cls
.\nvspbind /o ms_tcpip6
.\nvspbind /o ms_tcpip
pause

Beispiel 2 (IPV6 on IPV4 on):

@echo off
REM IPV6 on IPV4 on
cls
REM cd IPV6
.\nvspbind.exe /e * ms_tcpip    
.\nvspbind.exe /e * ms_tcpip6
pause
cls
.\nvspbind /o ms_tcpip6
.\nvspbind /o ms_tcpip
pause

Die eigentlichen Tools kopiert ihr am besten in das gleiche Verzeichnis.

Kategorien
Scripte Webentwicklung

Notepad ++ – der Editor

CSS Programming Image

Was ist Notepad++?

Notepad++ ist ein kostenloser Quellcode-Editor und Notepad-Ersatz, der mehrere Sprachen unterstützt.

Kategorien
Scripte

PS zur Automatisierung nutzen

CSS Programming Image

Der wesent­liche Zweck von Power­shell ist die Auto­mat­isierung der System­verwaltung. Von mehreren Computern ist eine Remoteverwaltung gleich­zeitig möglich. Seit der PS in Ver­sion 3.0 ist ein Unter­brechen von Sitzungen und deren Weiterführung von einer anderen Work­station aus möglich.

In der interaktiven Variante startet man durch:

Enter-PSSession 

eine Shell auf dem anderen Rechner und führt dort Kom­mandos aus, so als wäre man an der Konsole der betreffenden Maschine. Für die Automa­tisierung von Aufgaben wird man mehrere parallele Sessions öffnen und über diese Scripts oder Befehle starten.