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

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

PS leere AD Gruppen ermitteln

Prozess Pyramide
Get-ADGroup -Filter * -Properties Members | where { -not $_.Members} | select Name

Das Cmdlet Get-ADGroup ruft eine Gruppe ab oder führt eine Suche durch, um ein oder mehrere Gruppen aus einem Active Directory abzurufen.

Der Parameter Identity gibt die abzurufende Active Directory-Gruppe an. Sie können eine Gruppe anhand des Distinguished Name (DN), ihrer GUID, ihrer Sicherheitskennung (SID) oder ihres Kontonamens (Security Accounts Manager, SAM) identifizieren.

Um mehr als eine Gruppe zu suchen und anzuzeigen, gibt es die LDAP-Filter-Parameter. Der Parameter Filter verwendet die PowerShell Expression Language, um Abfragezeichenfolgen für Active Directory zu schreiben.

Hier in dem Beispiel erfolgt ein Ausschluss für Gruppen die keine Mitglieder enthalten. Der Anwendungszweck wäre z.B. die Vorbereitung einer Bereinigung an AD Objekten.

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

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.