Jump to content

blub

Expert Member
  • Gesamte Inhalte

    7.598
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte von blub

  1. Bei diesem Buch liegt der Focus auf der Administration von Windowsumgebungen http://shop.oreilly.com/product/0636920024132.do?cmp=tw-npa-dotd-orm-ebook&code=DEAL blub
  2. ist eine "weichere" Security-Variante, als die Regel "nach 7 Fehlversuchen ist der Zugang definitiv gesperrt". Manchmal fällt einem nach einer gewissen Denkpause das richtige PW ja dann doch noch ein und erspart sich damit den Helpdesk-Call.
  3. Ich kenne die Funktion von Safeguard-Easy (Festplattenverschlüsselung). Nach dem ersten PW-Fehlversuch beim Hochfahrenmusste man 5s warten, dann 10s, dann 20s usw. blub
  4. Hallo, Lastaccesstime ist default ab vista deaktiviert, kann man aber aktivieren http://msdn.microsoft.com/en-us/library/ms940846%28v=winembedded.5%29.aspx Zum Filtern der Ausgabe kannst du Select-object oder Format-Table verwenden blub
  5. z.B. prinzipiell benötigt man boolsches Vergleiche um z.b. an Userkonten gezielt einzelne UserAccountControls wie trustedDelegation, smartcardrequired, accountdisabled etc. zu verändern oder auszulesen http://www.mcseboard.de/topic/190771-accounts-mit-trusted-for-delegation-rechten-im-ad-finden/ ähnliches gilt für Berechtigungen im Filesystem Aber Batch und Bool passen denke ich eher nicht zusammen, obwohl beide ähnlich alt sein dürften :-)
  6. Hallo, Vielleicht hilfts schon, wenn du in der letzten Zeile > durch >> ersetzt und einen festen, anstelle eines variablen Dateinamens setzt. Warum setzt du auf eine 20 Jahre alte Technologie wie Batch? Muss das Script auf einem NT3.51 Server laufen? blub
  7. Ich habe dein Skript etwas angepasst. Als Datenstruktur benutze ich eine Datatable, damit kannst du die Ausgabe jenach Wunsch an Format-Table oder export-csv übergeben Set-StrictMode -Version "2.0" Clear-Host $Path= # Read-Host "Bitte FQDN des gewünschten Zielordners eingeben.(\\Server\freigabe)" #DataTable anlegen $Properties = @("Ordnername","Identitaet","Berechtigungen","Vererbt") $DataTable=New-Object System.Data.DataTable("FileACL") $Properties | foreach { $Column = New-Object System.Data.DataColumn($_) $DataTable.Columns.Add($Column) } #DataTable befüllen Get-ChildItem $Path -Recurse | foreach{ $FolderName = $_.Name $ACLs= @((Get-ACL $_.FullName).Access) | sort $ACLs | foreach{ $Identity=$_.IdentityReference $FileSystemRights=$_.FileSystemRights $IsInherited=$_.IsInherited $DataTable.Rows.Add($FolderName,$Identity,$FileSystemRights,$IsInherited) | Out-Null } } #Datatable Filtern $Filter = "(Vererbt like 'False')" $FilteredDataTable = $DataTable.Select($Filter,$null) #DataTable ausgeben $FilteredDataTable | Format-Table OrdnerName,Identitaet,Berechtigungen,Vererbt -auto #Host $FilteredDataTable | Export-Csv "c:\temp\ausgabe1.csv" -Delimiter ";" #File $FilteredDataTable | select Ordnername,Vererbt | Export-Csv "c:\temp\ausgabe2.csv" -Delimiter ";" #File
  8. So könnte die Anforderung in PS umgesetzt werden Set-StrictMode -Version "2.0" Clear-Host #RootPath $Path = "C:\temp\Homes" $Folders = Foreach($Folder in (Get-ChildItem $path -Recurse)) { If($Folder.PSIsContainer -eq $True){ New-Object -TypeName Psobject -Property @{ Name = $Folder.FullName Size = $([int]((gci $folder.FullName -recurse | Measure-Object -Property "Length" -Sum).Sum))/1MB SumFiles = ((gci $Folder.Fullname -recurse | Where {$_.PSIsContainer -eq $False}) |Measure-Object).Count } } } #Ausgabe1 $Folders | sort SumFiles -descending | ForEach{ "{0} {1:0.00} MB {2}" -f $($_.name),$($_.size),$($_.Sumfiles) } #Ausgabe2 $Folders | sort SumFiles -descending | ft Name,Size,Sumfiles -auto #Ausgabe3 (csv) $Folders | sort SumFiles -descending | export-csv "c:\temp\folders.csv" -delimiter ";" #so könnten die ersten beiden Ausgaben aussehen C:\temp\Homes\HomeUser001 0,17 MB 114 C:\temp\Homes\HomeUser002 0,17 MB 106 C:\temp\Homes\HomeUser003 0,12 MB 64 Name Size SumFiles ---- ---- -------- C:\temp\Homes\HomeUser001 0,168468475341797 114 C:\temp\Homes\HomeUser002 0,168468475341797 106 C:\temp\Homes\HomeUser003 0,115304946899414 64
  9. Hi, Ein Array ist zweidimensional. Ich benutze für mehrspaltige Tabellen meist DataTables als Struktur. Finde ich sehr flexible und übersichtlich $DataTable = New-Object System.Data.DataTable("Test") $Column1 = New-Object System.Data.DataColumn("Vorname") $Column2 = New-Object System.Data.DataColumn("Nachname") $Column3 = New-Object System.Data.DataColumn("Wohnort") $DataTable.Columns.Add($Column1) $DataTable.Columns.Add($Column2) $DataTable.Columns.Add($Column3) $DataTable.Rows.Add("Dagobert","Duck","Entenhausen") | out-null $DataTable.Rows.Add("Gundel","Gaukelei","Vesuv") | out-null $DataTable | format-Table "Vorname","Nachname","Wohnort" -AutoSize #Bildschirm $DataTable | export-csv -delimiter ";" -path "c:\temp\test.csv" #csv" #Ausgabe am Host Vorname Nachname Wohnort ------- -------- ------- Dagobert Duck Entenhausen Gundel Gaukelei Vesuv Bischen was zu Datatables in PS findest du hier: http://powershellpraxis.de/index.php/datenzugriffe-ueber-ado-net/2disconnectedclasses blub
  10. Hi, Format-Table hat den Positionsparamer "-HideTableHeaders", um nur Datensätze auszugeben blub
  11. Hi, Zu 1) Man kann gci auch dazu überreden, die Pfade auszuspucken $Path= "c:\temp" Get-ChildItem $path -Recurse | foreach{ If($_.PSIsContainer -eq $True){ $_.fullname #$_.PsParentPath #$_.PschildName } } Ab PS3 kannst du den if-Block weglassen, und get-childitem den Positionsparameter -Directory mitgeben zu 2.) IsInherited hat entweder $true oder $false. Auf diese Werte kannst du doch filtern $a=4 -le 2 $a if($a -eq $false){ "Falsch" }else{ "Richtig" }
  12. Hallo, Wenn sich die wichtigen Dateien in einem Unterverzeichnis befinden, kannst du dieses Verzeichnis relativ leicht mit der FileSystemWatcher-Klasse überwachen: http://www.powershellpraxis.de/index.php/ntfs-filesystem/filemonitoring -> 4.3.2 FileMonitoring mit der .Net-Klasse FileSystemWatcher Vor längerer Zeit habe ich den FSW in einer exe verbaut. Kannst ihn ja mal ausprobieren blub fystemwatcher.zip
  13. Hi, so müsste es gehen. Aber ich habe es jetzt nimmer getestet Set-StrictMode -Version "2.0" Clear-Host $ADS_UF_TRUSTED_FOR_DELEGATION = 0x80000 $Filter = "objectClass=user" ([ADSISearcher]$Filter).Findall() | Foreach-Object { $UAC = ([ADSI]$_.Path).Invokeget("UserAccountControl") if($UAC -band $ADS_UF_TRUSTED_FOR_DELEGATION){ Write "$($_.Properties.Item("DistinguishedName")) ist Trusted for Delegation" } } 3 ADSI-Provider - > Kapitel 3.3 blub
  14. Hallo, Hast du auf beiden DCs gesucht? Evtl. wird das Objekt nicht repliziert blub
  15. Hallo, ich würde die Ausfallsicherheit und Verfügbarkeit deines DHCP-Servers in Betracht ziehen. Fällt der DHCP-Dienst runter, kanns dir bei 1-3 Tagen Leasetime passieren, dass am nächsten Arbeitstag in der Früh nichts mehr geht. blub
  16. Wir haben früher unter 2003 in großem Stil den Threadmaster erfolgreich eingesezt, der genau diese Aufgabe gelöst hat. ThreadMaster Home Das Projekt sieht jetzt leider etwas eingeschlafen aus, vielleicht gibts aber einen anderslautenden Nachfolger. blub
  17. Hallo Zeichenfolge, Du verzwirbelst hier und in dem anderen Post verschiedenste Dinge. sicherer Login/ Autorisierung/ Authentisierung/ Manipulation von RFID-Karten/ Festplattenverschlüsselung/ Selbstlöschung von Platten. Und alles zusammen für unter 250€ für deinen Win8-HomePC, oder? blub
  18. Hallo, sicherer Login = 2-Faktorauthentisierung aus Besitz + Wissen , also z.B. Smartcart + PIN, Fingerprint + Passwort, etc. RFID-Chips nimmt man eher als Zutrittskontrolle für Gebaude. Zum Anmelden nimmt man Cryptochips (Java, Starcos, Seccos, etc.) , die gelten als nicht manipulierbar. Hast du dich authentisiert und bist authentifziert, erfolgt die Anmeldung dann mittels privateKey + Zertifikat (2048 Bit). Die Schlüssellänge gilt heute als sicher. Festplattenverschlüsselung ist dann die nächste Baustelle. Bei Lösungen für den Home-Bereich kann ich dir allerdings auch nicht weiterhelfen. Ein großer Anbieter professioneller Lösungen für Smartcards ist G&D: http://www.gi-de.com/de/products_and_solutions/products/strong_authentication/strong-authentication.jsp blub
  19. Hallo, Probier mal $address = "ping`@pong.de" Der Backtick maskiert Sonderzeichen blub
  20. naja in PS löse ich Aufgaben in 5 übersichtlichen CodeZeilen, wofür ich in VBS nicht unter 25 mehr oder weniger kryptischen Zeilen auskomme. Sofern hat PS schon deutliche Vorteile bei der Fehlervermeidung. Batch: Für den, der auf Masochismus steht, isses sicher das Höchste :D,...
  21. Außer dass das Skript alle vorhandenen Userkonten löscht oder sonstwie unbrauchbar macht, eigentlich nichts :D Ernsthaft: Sowas habe ich schon erlebt. Tipps: - Teste und prüfe ausgiebigst deine Skripte in einer Testumgebung und entwickle keinesfalls in der Produktivumgebung - Protokolliere jede Veränderung im AD in einer Logdatei mit - Changeprozesse zu befolgen und AD-Backup/ Restoreprozesse zu kennen ist nie verkehrt - Entwickle nicht mit einer Steinzeittechnologie wie VBS, sondern nimm Powershell. blub
  22. Hi, dann wirds mit Boardmitteln ala WMI schwierig. Bei HP mal anfragen? blub
  23. Hallo, wmic path win32_bios get * /value sind die Felder in der Ausgabe dabei? blub
  24. Wer sich schon Drogen in den Hintern steckt...:shock: Damit's richtig knallt
  25. Hallo, Zertifikate sind mit dem Schlüssel der CA signiert. d.h. man kann nicht mal ein Komma, ein Leerzeichen oder gar den Gültigkeitszeitraum verändern, ohne dass die Signatur nicht mehr zum Inhalt passt und damit das Zertifikat ungültig wird. In der Unveränderbarkeit eines Zertifikats liegt ja seine Bedeutung für die Security. blub
×
×
  • Neu erstellen...