Peter Kloep

A+ R A-

Scripts

Finden von nicht verwendeten Gruppen im Active Directory

  • Hauptkategorie: FAQs
  • Kategorie: Scripts
  • Zuletzt aktualisiert: Samstag, 03. März 2018 11:59
  • Veröffentlicht: Freitag, 12. Januar 2018 17:58
  • Geschrieben von Peter Kloep
  • Zugriffe: 6231

Schnelles "Quick and dirty"-Skript, welches die Gruppen im Active Directory (außer in Builtin und Users) ausliest und eine zusätzliche Liste der in den Berechtigungen (ACLs) der Ordner und Unterordner in der definierten Variable ($Startordner) nimmt und aus der "$Domaingroups" alle verwendeten Gruppen rauslöscht (nur aus der Liste, nicht aus dem Active Directory).

Es erfolgt dann die Ausgabe der DistinguishedNames der Gruppen, die nicht in den ACLs des angegebenen Ordners vorhanden sind.

Vorsicht: Es werden aktuell keine Audit-Berechtigungen und keine Freigabeberechtigungen ausgewertet. Zusätzlich kann nicht festgestellt werden, ob die Gruppen an anderer Stelle berechtigt sind.

$StartOrdner="c:\Daten"
[System.Collections.ArrayList]$Domaingroups = Get-ADGroup -Filter * | Where-Object {($_.distinguishedname -notlike "*$((get-addomain).Userscontainer)") -and ($_.distinguishedname -notlike "*CN=Builtin,$((get-addomain).DistinguishedName)") }
[array]$alleOrdner = Get-ChildItem $StartOrdner -Recurse -Directory
$usedgroups=@()
foreach ($Ordner in $alleOrdner)
{
  $acl=get-acl $ordner.FullName
  for ($i=0; $i -lt $acl.access.count;$i++)
  {
    if ($acl.Access[$i].IdentityReference.Value -like "$((Get-ADDomain).NetBIOSName)\*")
      {
      $usedgroups+=($acl.Access[$i].IdentityReference.Value).split("\")[1]
      }
  }
}
$usedgroups = $usedgroups | Sort-Object | Get-Unique
Write-Host "Gruppen im Active Directory gesamt: $(($Domaingroups).count)" -BackgroundColor Green
Write-Host "In den ACL verwendete Domänengruppen gesamt: $(($Usedgroups).count)" -BackgroundColor Green
###Vergleich der Gruppen
for ($i=0; $i -lt $usedgroups.count; $i++)
  {
    for ($j=0; $j -lt $Domaingroups.count; $j++)
    {
       if ($Domaingroups[$j].name -like $usedgroups[$i])
      {
            $Domaingroups.RemoveAt($j)
      }
       }
  }
Write-Host "Nicht verwendete AD-Gruppen:"
for ($i=0; $i -lt $Domaingroups.count; $i++)
{
  write-host $Domaingroups[$i].distinguishedname
}

 

Drucker per Script installieren

  • Hauptkategorie: FAQs
  • Kategorie: Scripts
  • Zuletzt aktualisiert: Donnerstag, 06. September 2012 17:38
  • Veröffentlicht: Mittwoch, 09. August 2006 14:34
  • Geschrieben von Peter Kloep
  • Zugriffe: 17657
Syntax: rundll32 printui.dll,PrintUIEntry [Optionen] [@Befehlsdatei]

/a

[Datei] Name der Binärdatei

/b

[Name] Basisdruckername

/c

[Name] UNC-Computername, wenn der Vorgang auf einem Remotecomputer ausgeführt wird.

/dl

Löscht den lokalen Drucker.

/dn

Löscht die Netzwerkdruckerverbindung.

/dd

Löscht den Druckertreiber.

/e

Zeigt Druckeinstellungen an.

/f

[Datei] Entweder INF-Datei oder Ausgabedatei.

/ga

Fügt Druckerverbindungen pro Maschine hinzu.

/ge

Listet Druckerverbindungen pro Maschine auf.

/gd

Löscht Druckerverbindungen pro Maschine.

/h

[Arch] Treiberarchitektur Alpha | Intel | Mips | PowerPC.

/ia

Installiert Druckertreiber mithilfe einer INF-Datei.

/id

Installiert Druckertreiber mithilfe des Assistenten.

/if

Installiert Drucker mithilfe der angegebenen INF-Datei.

/ii

Installiert Drucker mithilfe des Assistenten und einer INF-Datei.

/il

Installiert Drucker mithilfe des Assistenten.

/in

Fügt eine Netzwerkdruckerverbindung hinzu.

/j

[Anbieter] Druckanbietername

/k

Druckt eine Testseite auf dem angegebenen Drucker aus. Kann bei der Druckerinstallation nicht verwendet werden.

/l

[Pfad] Quellpfad des Druckertreibers

/m

[Modell] Modellname des Druckertreibers

/n

[Name] Druckername

/o

Zeigt die Druckerwarteschlange an.

/p

Zeigt Druckereigenschaften an.

/q

Stiller Modus. Fehlermeldungen werden nicht angezeigt.

/r

[Anschluss] Anschlussname (Hier auch die Möglichkeit Lokale Schnittstellen, anstelle des UNC Pfades anzugeben)

/s

Zeigt Servereigenschaften an.

/Ss

Speichert Druckereinstellungen in einer Datei.

/Sr

Stellt Druckereinstellungen aus einer Datei wieder her.
Speichert Optionsattribute für Druckereinstellungen oder stellt diese wieder her. Die Attribute müssen am Ende des Befehls stehen:

            2          PRINTER_INFO_2

            7          PRINTER_INFO_7

            c          Farbprofil

            d          Druckerdaten

            s          Sicherheitsbeschreibung

            g          Globaler DevMode

            m         Minimale Einstellungen

            u          Benutzer-DevMode

            r           Namenskonflikte lösen

            f           Namen erzwingen

            p          Anschluss zuordnen

/u

Verwendet den vorhandenen Druckertreiber, sofern bereits einer installiert ist

/t

[#] Nullbasierte Indexseite zum Starten

/v

[Version] Eine der folgenden Treiberversionen: Windows 95 oder 98 | Windows NT 3.1 | Windows NT 3.5 oder 3.51 | Windows NT 3.51 | Windows NT 4.0 | Windows NT 4.0 oder 2000 | Windows 2000

/w

Fordert einen Treiber an, wenn der angegebene Treiber nicht in der INF-Datei gefunden wird.

/y

Richtet den Drucker als Standarddrucker ein.

/Xg

Liest Druckereinstellungen.

/Xs

Richtet Druckereinstellungen ein.

/z

Gibt diesen Drucker nicht automatisch frei.

/Z

Gibt diesen Drucker frei. Verwendung nur mit der Option /if möglich.

/?

Zeigt diese Hilfemeldung an.

@

[Datei] Datei mit Befehlszeilenargumenten

Script zur Vermeidung des Trennens einer Nezwerkverbindung

  • Hauptkategorie: FAQs
  • Kategorie: Scripts
  • Zuletzt aktualisiert: Donnerstag, 06. September 2012 17:38
  • Veröffentlicht: Donnerstag, 27. Juli 2006 19:48
  • Geschrieben von Peter Kloep
  • Zugriffe: 14293
Script, damit Netzwerkverbindungen nicht getrennt werden (rotes X):
set wshshell = CreateObject("WScript.Shell")  kommando = "net config server /autodisconnect:-1"  resultat = wshshell.Run(kommando , 1 , true)