Jump to content

blub

Expert Member
  • Gesamte Inhalte

    7.598
  • Registriert seit

  • Letzter Besuch

Beiträge erstellt von blub

  1. probiers mal damit:

     

    Module Module1
    
       Sub Main()
           ' DCGCs im Forest
    
    
           Dim myForest As System.DirectoryServices.ActiveDirectory.Forest
           myForest = System.DirectoryServices.ActiveDirectory.Forest.GetCurrentForest
           Dim myDCGC As System.DirectoryServices.ActiveDirectory.DomainController
           Try
    
               For Each myDCGC In myForest.FindAllGlobalCatalogs
                   Console.WriteLine(myDCGC.Name & " " & myDCGC.IPAddress)
               Next
    
           Catch ex As Exception
               Console.WriteLine("Fehler aufgetreten: " & ex.Message)
           End Try
    
       End Sub
    
    
    End Module
    

     

    Das Programm listet dir alle DCGCs im Forest mit Namen und IP mittels .Net auf

    http://msdn.microsoft.com/en-us/library/system.directoryservices.activedirectory.domaincontroller.aspx

     

    In einem Multidomain-Forest habe ich es noch nicht getestet, sollte aber funktionieren

     

    cu

    blub

    get-DCGCs-In-Forest.zip

  2. Dieser Beitrag ist Teil des Gewinnspiels "Rette Julia" zur Monatsaufgabe November.

    Der Beitrag ist geschlossen, da die Monatsaufgabe November erfüllt wurde.

    Mehr dazu: http://www.mcseboard.de/rettejulia.php

     

    __

     

     

    Hallo Julia,

     

    In Puncto Sicherheit setzt die Powershell v2.0 neue Maßstäbe:

     

    Das geht bei den ExecutionPolicies los, mit denen man sehr granuliert steuern kann, wer (Maschine, Prozess, User, etc.) welche Art (signiert, unsigniert, remotesigniert etc.) von PS-Skripten ausführen darf.

    Diese Executionpolicies können lokal oder über DomänenGrouppolicies mit all deren Vorteilen gesetzt werden, was die Sicherheit nochmals erhöht.

    Ein paar zusätzliche Infos habe ich hier zusammengetragen

    PowerShell Sicherheit/ Signieren - PowerShellPraxis.de

     

    Auch beim Remoting hat sich die Sicherheit drastisch erhöht. Früher haben Admins für Remoteaufgaben oft das psexec-Tool von Sysinternals eingesetzt und dabei nicht bedacht, dass Username+Passwort im Klartext übers Netz gesendet werden.

    Mit der PS2.0 haben sich erstens der Komfort und die Möglichkeiten für einen Admin gesteigert (was hier aber nicht so wichtig ist) und zweitens hat sich auch mit dem "Windows Remote Management 2.0" die Sicherheit sehr gesteigert, so dass Credentials verschlüsselt über die Leitung sausen.

    Macht in der Powershellconsole einfach mal "get-help about_remot", dann bekommst du einige sehr lesenswerte Artikel.

     

    Dass man direkt in Powershellskripten Passwörter verkryptet hinterlegen kann, sei nur am Rande bemerkt, da converto-securestring und converfrom-securestring bereits in der PS1.0 unter XP verfügbar waren

     

    Der Vorteil in Win7 gegenüber alteren OSsen ist, dass in Puncto Sicherheit und Remoting native alles schon enthalten ist und nichts nachkonfiguriert/ nachinstalliert werden braucht und damit vergessen werden kann.

     

    Schöne Grüsse an Deinen Chef

    blub

  3. Hallo,

    der Parameter lautet "Zwangsflag"

     

    aus der Onlinehilfe

    netsh dhcp server>scope 192.168.2.0

     

    Der aktuelle Bereichskontext wurde in Bereich 192.168.2.0 geändert.

    netsh dhcp server scope>set optionvalue /?

     

    Legt den Wert einer Option für den Bereich fest.

     

    Syntax:

     

    set optionvalue <Optionskennung> <Datentyp> [user=Benutzername]

    [vendor=Herstellername] [Zwangsflag] <Optionswert>

     

    Parameter:

     

    Optionskennung - Die Kennung der Option, deren Wert festgelegt

    werden soll.

     

    Datentyp - Der Datentyp für den Optionstyp, dessen Wert

    festgelegt werden soll.

     

    Benutzername - Gibt entweder die aktuelle

    Standardbenutzerklasse oder die als "Benutzername"

    angegebene Klasse an. Wenn dieser Parameter verwendet

    wird, muss das Tag "user=" angegeben werden.

     

    Herstellername - Gibt entweder die aktuelle

    Standardherstellerklasse oder die als "Herstellername"

    angegebene Klasse an. Wenn dieser Parameter verwendet

    wird, muss das Tag "vendor=" angegeben werden.

     

    Zwangsflag - DhcpNoForce/DhcpFullForce kann angegeben werden.

    Dies gilt speziell für die DNS-Prüfung der Optionskennung 006.

    Wenn DhcpFullForce angegeben ist, werden dem Server

    auch dann DNS-Adressen hinzugefügt, wenn bei der

    DNS-Prüfung ein Fehler auftritt. Wenn DhcpNoForce

    angegeben ist, werden die DNS-Adressen nur hinzugefügt,

    wenn die DNS-Prüfung erfolgreich ist.

    Der Standardwert ist DhcpNoForce.

     

    cu

    blub

  4. wenn man's genau wissen will

     

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine

     

    bzw.

    $path = "HKLM:\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine"
    $psKey = get-itemproperty -path $path
    "PSVersion auf diesem Rechner: " + $psKey.RunTimeVersion
    
    PSVersion auf diesem Rechner: v2.0.50727
    

     

     

    $psversiontable
    
    Name                           Value
    ----                           -----
    CLRVersion                     2.0.50727.3603
    BuildVersion                   6.0.6002.18111
    PSVersion                      2.0
    WSManStackVersion              2.0
    PSCompatibleVersions           {1.0, 2.0}
    SerializationVersion           1.1.0.1
    PSRemotingProtocolVersion      2.1
    

    ginge auch noch

  5. 
    'VB2008-code, getestet unter XP/ win7
    
    Imports System.Management
    'Verweis auf System.Management einrichten
    Module Module1
       Sub Main()
           Dim objQuery As New ObjectQuery("SELECT * FROM Win32_operatingsystem")
           Dim searcher As New ManagementObjectSearcher(objQuery)
           Dim caption As String = ""
           Dim osa As String = ""
           Dim spmv As String = ""
    
           Try
               For Each mem As ManagementObject In searcher.Get
                   caption = mem("Caption")
                   spmv = mem("ServicePackMajorVersion")
                   osa = mem("OSArchitecture") 'erst ab vista
               Next
           Catch
           End Try
    
           Console.WriteLine(caption & " " & osa + " SP" & spmv)
       End Sub
    
    End Module
    

     

    OSArchitecture ist erst ab Vista aufwärts verfügbar

    Win32_OperatingSystem Class (Windows)

     

    Die Expressversion von VisualBasic 2008 liegt bei MS kostenlos zum Downloaden.

    Damit kannst du dir den Code bei Bedarf selbst weiter anpassen und compilieren.

     

    cu

    blub

    ConsoleApplication1.zip

  6. Hallo,

     

    danke dir. Was macht die EXE denn genau?

     

    Gruß Wolfgang

     

    genau das gleiche wie dein "wmic get os caption" ohne Zeilenumbruch, in VB

     

    Option Strict On
    ' ' Verweis auf System.Management ist notwendig
    Module Module1
       Sub Main()
           Dim mos As Management.ManagementObjectSearcher
           Dim moc As Management.ManagementObjectCollection
           Dim mo As Management.ManagementObject
           Dim pd As Management.PropertyData
    
           mos = New Management.ManagementObjectSearcher( _
             [color="DarkRed"]"SELECT caption FROM Win32_operatingsystem")[/color]
           moc = mos.Get()
           For Each mo In moc
               For Each pd In mo.Properties
                   Try
                       [color="DarkRed"]Console.WriteLine(pd.Value.ToString)[/color]
                   Catch
                       ' ignore errors
                   End Try
               Next
           Next
           moc.Dispose()
           mos.Dispose()
       End Sub
    End Module
    

  7. @Nilsk,

    Wenn die Browsingliste zu gross wird, ist "net config server /hidden:yes" durchaus eine tolle Idee. Auch Netbios zu deaktivieren ist häufig sinnvoll.

    Ich hoffe ja nciht, dass du ohne Changemanagement "Einfach mal so " deine Systeme veränderst", nur weil du die Änderung als "ungefährlich" einstufst. Das wäre nämlich tatsächlich saugefährlich.

     

    @Mantikor, ohne deine Domain / Netzadmins wirst du das Problem nicht lösen können

     

    cu

    blub

  8. Hallo Tom,

    Pipen gehört sicherlich zu den Grundlagen der Powershell. Trivial, besonders wenn man nur gelegentlich skriptet, ist das Konzept deswegen nochlange nicht.

    Also: wenn du Fragen zur PS hast, immer her damit.

     

    cu

    blub

     

     

    Moin zusammen,

     

    muss nochmal kurz etwas loswerden.

    Einen BasisKurs für Powershell hatte ich schonmal, ist aber leider schon ne Weile her. Und wenn die Projekte und der Betrieb einen in Beschlag nehmen ist oftmals nicht viel intensiv mit PS zu arbeiten.

    Das mit der Pipe und dem Dranhängen war mir dann auch klar.

    Aber manchmal benötigt man etwas Unterstützung und die habe ich hier auch bekommen.

    Vielen Dank nochmal für eure schnellen Antworten.

    Gruß Tom

×
×
  • Neu erstellen...