Jump to content

ineedhelp

Members
  • Gesamte Inhalte

    94
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte von ineedhelp

  1. Hinbekommen. Die Domänenfunktionsebene war noch Windows 2000 pur. Thema kann auf GELÖST gesetzt werden. Natürlich weiß ich es. Die Person, die für die Planung zu ständig ist, schon oft gesagt, dass wir hier unbedingt handeln müssen.
  2. Mit einem Domänen-Konto (ist in der Gruppe Domänen-Admins) bin ich auf dem 2012er-Server angemeldet. Eben habe ich mich auf einem Windows 7-Rechner mit dem selben Konto angemeldet. Auch hier werden mir die DL-Gruppen nicht in der grafischen Oberfläche (Sicherheitseinstellungen) angezeigt.
  3. @All Gegeben ist ein Domänencontroller mit Windows Server 2003 (deutsch) und ein Dateiserver mit Windows Server 2012 R2 (engl.). Auf dem Dateiserver möchte ich Ordner anlegen und der Zugriff per NTFS-Berechtigung steuern. Gerne möchte ich A G D L P-Prinzip anwenden. Hierfür habe ich bereits DL-Gruppen erstellt und globale Sicherheitsgruppen aufgenommen. Wenn ich jetzt über die grafische Oberfläche die Sicherheitseinstellung des Ordners konfigurieren möchte, werden mir die DL-Gruppen nicht angezeigt. Was muss ich machen, damit es funktioniert? Eine Migration der Domäne kann aus Zeitgründen nicht durchgeführt werden. Vielen Dank für die Hilfe.
  4. Da hast Du recht. Ich werde es sofort umsetzen. Danke für den Hinweis. Folgendes brachte endlich den Erfolg: $process = Start-Process -FilePath cmd -argumentlist "/C C:\users\...\...\mysql.exe --host=<mysqlhost> --user=root --password=<kennwort> --execute=""Show databases;"" > C:\backup\databases.txt" -PassThru -WindowStyle Hidden Wie kann ich diesen Beitrag auf gelöst setzen?
  5. @All Mittels Powershell möchte ich mysql.exe mit Parametern starten. Hierfür benutze ich das Start-Process-Cmdlet und führe es wie folgt aus: Die Datei databases.txt ist nicht im Zielordner vorhanden. Wenn ich mir Startinformationen des process-Objekt anzeige lasse und diese in Eingabeaufforderung ausführe, dann wird die Datei erstellt. Wie muss der Aufruf von Start-Process aussehen, damit die Statements angewendet werden. "Show databases;" war nur für Testzwecke. Später sollen die Backupinformationen in die Datenbank geschrieben werden. Ich habe schon vieles erfolglos ausprobiert: andere Anführungszeichen verwendet. cmd.exe und mysql.exe mit Parametern gestartet, usw. Danke für Eure Hilfe.
  6. Hallo Gemeinde. Mein Rechner (Fujitsu CELSIUS W570power mit Windows 10 Enterprise 1803) meldet mir, dass für den Sicherheitschip (TPM 2.0, Firmwareversion 5.60.2677.0 ) ein Firmwareupdate erforderlich ist. Die Laufwerke sind mit BitLocker verschlüsselt. TPM 2.0 Update procedure for Infineon habe hier http://support.ts.fujitsu.com/IndexDownload.asp?SoftwareGuid=e7010898-dc99-4262-91f0-e4f10c1d6ecc heruntergeladen. Nun weiß ich aber nicht weiter, wie die richtige Vorgehensweise ist. Müssen die Laufwerke wieder entschlüsselt, der TPM-Chip gelöscht und dann vom USB-Stick gebootet werden? Für Eure Hilfe wäre ich sehr dankbar.
  7. FACEPALM! Während der Autofahrt darüber nach gedacht. Es liegt daran, wie ich die Ini-Datei auslesen.
  8. Hallo. Ich habe mir folgendes PowerShell-Skript "zusammengebastelt" und bekomme bei der Ausführung den Fehler: "ConvertTo-SecureString : Die Eingabezeichenfolge hat das falsche Format." Class Crypt { # Ohne den winzigen Anpassungen ist der Quellcode hier zu finden -> # Link: http://get-powershell.com/post/2008/12/13/Encrypting-and-Decrypting-Strings-with-a-Key-in-PowerShell.aspx Static [System.String]DecryptData([System.Byte[]]$Key, [System.String]$Data) { [System.String]$plainText = [System.String]::Empty $Data | ConvertTo-SecureString -key $Key | ForEach-Object { $plainText = [Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($PSItem)) } return $plaintext } Static [System.Byte[]]GenerateKey([System.String]$string) { [System.Text.ASCIIEncoding]$encoding = New-Object -TypeName System.Text.ASCIIEncoding return $encoding.GetBytes($string.PadRight(32, "0")) } Static [System.String]EncryptData([System.Byte[]]$Key, [System.String]$Text) { [System.Security.SecureString]$secureString = New-Object -TypeName System.Security.SecureString [System.Char[]]$chars = $Text.ToCharArray() foreach ($char in $chars) { $secureString.AppendChar($char) } [System.String]$encryptedData = ConvertFrom-SecureString -SecureString $secureString -Key $Key return $encryptedData } } #region === Test === Class Configuration { [System.String]$MySqlHost = [System.String]::Empty [System.String]$BackupUserName = [System.String]::Empty [System.String]$BackupUserPSW = [System.String]::Empty [System.String]$BackupLocation = [System.String]::Empty [ValidateRange(1,30)] [System.Int16]$RetentionTime = 14 Hidden[System.Byte[]]$Key = [Crypt]::GenerateKey("dakfjadlkdf3") ScriptConfiguration() { } [void]Load([System.String]$Path) { if ( -not(Test-Path $Path) ) { throw "Datei existiert nicht." } Get-Content -Path $Path | ForEach-Object{ [System.String[]]$line = [System.Text.RegularExpressions.Regex]::Split($PSItem, "=") if ( ($line[0].CompareTo("") -ne 0) -and ($line[0].StartsWith("[") -ne $true) ) { switch ($($line[0].Trim())) { "mysql_host" { $this.MySqlHost = $($line[1].Trim()) } "backup_dir" { $this.BackupLocation = $($line[1].Trim()) } "backupuser_name" { $this.BackupUserName = $($line[1].Trim()) } "backupuser_psw" { $this.BackupUserPSW = $($line[1].Trim()) } "retention_time" { $this.RetentionTime = $($line[1].Trim()) } } } } } [void]Save([System.String]$Path) { [System.IO.FileInfo]$OutFile = New-Item -Path $Path -ItemType File -Force Add-Content -Path $OutFile -Value "[mysqlbackup]" Add-Content -Path $OutFile -Value "mysql_host = $($this.MySqlHost)" Add-Content -Path $OutFile -Value "backup_dir = $($this.BackupLocation)" Add-Content -Path $OutFile -Value "backupuser_name = $($this.BackupUserName)" Add-Content -Path $OutFile -Value "backupuser_psw = $($this.BackupUserPSW)" Add-Content -Path $OutFile -Value "retention_time = $($this.RetentionTime)" } } [Configuration]$Config = New-Object -TypeName Configuration $Config.MySqlHost = "localhost" $Config.BackupLocation = "C:\BackUps" $Config.BackupUserName = "backuser" $Config.BackupUserPSW = [Crypt]::EncryptData($Config.Key, "123") $Config.RetentionTime = "7" "Vor der Speicherung" "Kennwort verschluesselt: $($Config.BackupUserPSW)" "Kennwort entschluesselt: $([Crypt]::DecryptData($Config.Key, $Config.BackupUserPSW))" $Config.Save("C:\Test\mysqlbackup.cfg") "Nach der Speicherung" $Config.Load("C:\Test\mysqlbackup.cfg") "Kennwort verschluesselt: $($Config.BackupUserPSW)" "Kennwort entschluesselt: $([Crypt]::DecryptData($Config.Key, $Config.BackupUserPSW))" #endregion === Test === Die Ausgabe sieht wie folgt aus: Vor der Speicherung Kennwort verschluesselt: 76492d1116743f0423413b16050a5345MgB8AGsASAAwAE0ATgBqAG4AWQBKADQAbwAzAEgAYQBUAFAAOABFAGsANgByAEEAPQA9AHwAYgA1ADYANgAwADUAZQBkADQAMgBjADUAYgA5ADUAYQA1ADUAZAA0AGMAMAA2ADUANgA0AGEANgAwAGYAMQBmAA== Kennwort entschluesselt: 123 Nach der Speicherung Kennwort verschluesselt: 76492d1116743f0423413b16050a5345MgB8AGsASAAwAE0ATgBqAG4AWQBKADQAbwAzAEgAYQBUAFAAOABFAGsANgByAEEAPQA9AHwAYgA1ADYANgAwADUAZQBkADQAMgBjADUAYgA5ADUAYQA1ADUAZAA0AGMAMAA2ADUANgA0AGEANgAwAGYAMQBmAA ConvertTo-SecureString : Die Eingabezeichenfolge hat das falsche Format. In Zeile:10 Zeichen:13 + ConvertTo-SecureString -key $Key | + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [ConvertTo-SecureString], FormatException + FullyQualifiedErrorId : System.FormatException,Microsoft.PowerShell.Commands.ConvertToSecureStringCommand Kennwort entschluesselt: Warum schneidet PowerShell die letzten Zeichen bei der Speicherung ab? Liegt es an der Codierung der Textdatei? Wie kann ich es lösen? Ich möchte nicht einfach die fehlenden Zeichen an die Zeichenfolge ranhängen. VIelen Dank im Voraus.
  9. Danke, das war entscheidende Paramter. Da hätte ich auch drauf kommen können.
  10. Jup. Es ist ein Rätsel, warum Remove-Item seine Probleme und das FSO-Objekt den Ordner ohne Probleme löscht.
  11. Anbei ein Screenshoot der Sicherheitseinstellungen. Die Dateien kann ich ja per Explorer oder skriptgesteuert per FSO löschen, nur nicht mit dem Remove-Item-Commandlet.
  12. @All. Endlich habe ich mir ein PowerShell-Skript gebastelt, welches meine Gruppenrichtlinien sichert. Damit mir mein Speicher nicht irgendwann ausgeht, soll das Skript alte Sicherungen löschen. Hierfür möchte ich doch gerne das CmdLet Remove-Item benutzen. Die Ausführung produziert viele Meldungen, dass der Zugriff verweigert ist. Wobei ich die Konsole mit administrativen Rechten gestartet habe und die Dateien auch im Datei-Explorer löschen kann. Ein Berechtigungsproblem ist also nicht. Die Betriebssystemfunktion [system.IO.Directory]::Delete(string path, boolean recursive) löscht leider auch nicht den gesamten Verzeichnisbaum. Den Verzeichnisbaum lässt sich nur mit der DeleteFolder-Methode des COM-Objects Scripting.FileSystemObject vollständig rekursiv löschen. Was muss ich tun, um den Verzeichnisbaum doch mit dem CmdLet zu löschen. param ( [System.String] $BackupDir = "C:\Backups\GPOs", [System.Int32] $DeleteAferDays = 30 ) [System.DateTime]$dateStamp = Get-Date [System.String]$backupLocation = Join-Path -Path $BackupDir -ChildPath $dateStamp.ToString("yyyy-MM-dd") if ( -not(Test-Path $backupLocation) ) { New-Item -Path $backupLocation -ItemType Directory Backup-GPO -All -Path $backupLocation } Get-ChildItem -Path $BackupDir -Directory | ForEach-Object { if($PSitem.CreationTime -le $dateStamp.AddDays(-$DeleteAferDays)) { # Löscht nicht alle Dateien. Zugriff verweigert! # Remove-Item -Path $PSitem.FullName -Recurse -Confirm:$false -ErrorAction SilentlyContinue # ... ebenfalls werden nicht alle Dateien gelöscht. Zugriff verweigert! # [System.IO.Directory]::Delete($PSitem.FullName, $true) # FSO ist mein Mann! (New-Object -ComObject Scripting.FileSystemObject).DeleteFolder($PSitem.FullName, $true) } } Danke im Voraus.
  13. Die aktuelle Domänenfunktionsebene ist Windows Server 2012 R2. Per Skript kann ich bereits die PSOs auslesen und löschen. Gerne möchte ich die PSOs aus VBS raus anlegen können. Danke für Eure Bemühungen.
  14. @All. Leider weiß ich nicht mehr weiter. Ich versuche per VBS ein Password Settings Object anzulegen. Folgender Fehler wird ausgeworfen: 0x80072014 (Der angeforderte Vorgang erfüllt mindestens eine Einschränkung nicht, die für diese Objektklasse Bedingung ist.) Bisher konnte mir das Internet nicht weiterhelfen. Vielleicht habt Ihr ja eine Idee. Sämtliche Skripte in unserer Domäne wurden mit VBS erstellt. Es ist noch nicht vorgesehen, diese nach Powershell zu portieren. Danke im Voraus. OPTION EXPLICIT Dim PSOContainer Dim PSO Set PSOContainer = GetObject ("LDAP://CN=Password Settings Container,CN=System,DC=<Domain Component>,DC=<Domain Component>") ' List all PSO's PSOContainer.Filter = Array("msDS-PasswordSettings") For Each PSO In PSOContainer WScript.Echo "Name " & PSO.Get("name") ' ... Next ' PSO Set PSO = PSOContainer.Create("msDS-PasswordSettings", "cn=<Common Name>") ON ERROR RESUME NEXT CALL PSO.Put("msDS-MaximumPasswordAge", -51840000000000) ' LargeInteger CALL PSO.Put("msDS-MinimumPasswordAge", -1728000000000) ' LargeInteger CALL PSO.Put("msDS-MinimumPasswordLength", 8) ' Integer CALL PSO.Put("msDS-PasswordHistoryLength", 20) ' Integer CALL PSO.Put("msDS-PasswordComplexityEnabled", TRUE) ' Boolean CALL PSO.Put("msDS-PasswordReversibleEncryptionEnabled", FALSE) ' Boolean CALL PSO.Put("msDS-LockoutObservationWindow", -36000000000) ' LargeInteger CALL PSO.Put("msDS-LockoutDuration", -36000000000) ' LargeInteger CALL PSO.Put("msDS-LockoutThreshold", 0) ' Integer CALL PSO.Put("msDS-PasswordSettingsPrecedence", 10) ' Integer CALL PSO.Put("msDS-PSOAppliesTo", Array("CN=<Common Name>,OU=<Organisational Unit>,DC=<Domain Component>,DC=<Domain Component>")) CALL PSO.SetInfo() ' Commit to the directory ' Error: LDAP_OBJECT_CLASS_VIOLATION WScript.Echo "Error: " & err.Number WScript.Echo "Description: " & err.Description ON ERROR GOTO 0
  15. VIelen Dank für die Antworten. Nächste Woche habe ich Zeit mir das Problem noch einmal genauer anzuschauen und das Ereignisprotokoll unter die Lupe nehmen.
  16. @All Ich habe eine Benutzerin mit servergespeicherten Profil und umgeleiteten Ordnern, die sich oft an zwei unterschiedlichen Rechnern anmeldet. Der eine Computer steht im Hauptgebäude und der andere Rechner im 300 m entfernten Nebengebäude, Das Nebengebäude ist über eine asynchrone 6Mbit/s-Leitung per VPN an das Hauptgebäude (ebenfalls nur 6MBit/s) angebunden. Die Anmeldung dauert im Nebengebäude, hier ist auch ihr Hauptarbeitsplatz, entsprechend lange. Kann ich für die Benutzer mehrere primäre Computer im Active Directory festlegen? Ich erhoffe mir dadurch, dass die Anmeldung dann schneller geht bzw. ist es überhaupt sinnvoll mehrere primäre Computer zu definieren? Danke im Voraus.
  17. Hallo Zusammen. In meinen Schulen beginne ich Windows 10 Enterprise zu installieren. Hierfür habe ich ein Basisimage auf Grundlage der Windowsversion vom Juli 2015 angefertigt, Startapps per Powershell deinstalliert und mit sysprep verallgemeinert. Da ich noch keinen WSUS in den Schuldomänen betreibe, holen die Clients ihre Updates automatisch aus dem Netz. Leider kam die Windowsversion 1511 im November 2015 heraus, welches natürlich automatisch auf den Clients installiert wurde. Mit dem neuen Release kamen leider die Standardapps wieder zurück. Wie kann ich die Apps via GPO wieder deinstallieren bzw. das Verhalten, dass die Apps installieren, deaktivieren? Per GPO habe ich es erst einmal das Upgrade zurückgestellt. Zur Zeit erstellen wir wieder ein Masterimage auf Basis des Releases 1511. Vielen Dank im Voraus für Eure Hilfe.
  18. @All Ich suche eine Gruppenrichtlinieneinstellung, um bei Windows 8.1 bzw. bei Windows 10 das Quick Access Menu zu deaktivieren. Leider bin ich noch nicht fündig geworden. Ich bin mir auch nicht sicher, wie das Kontextmenü von Start genau heißt. Vielleicht habt Ihr einen Tipp für mich. Für Eure Bemühungen bedanke ich mich im Voraus.
  19. @All Kurze Verständnisfrage: Wir wollen unsere Außenstandorte per VPN an unserer Hauptstandort anbinden. An unser Hauptstandort haben wir eine Sophos SG 230, in den Außenstandort betreiben wir Sophos SG 210. Unser Hauptstandort ist über eine feste öffentliche IP erreichbar. Die Außenstandorte bekommen die öffentliche IP in regelmäßigen Abständen vom ISP zu gewiesen. Nun zu meiner Frage. Ist es zwingend erforderlich in meine Außenstandorte ebenfalls eine feste öffentliche IP zu haben, um eine Site-to-Site-VPN-Verbindung auszubauen? Reicht es aus, wenn der Hauptstandort über eine statische öffentliche IP erreichbar ist? Danke im Voraus.
  20. @All Fast alle unserer Server lassen wir als Virtuelle Maschinen (Generation 2) auf einen Windows Server 2012 R2 mit der Hyper-V-Rolle laufen. Vor kurzem habe ich in einem Buch gelesen, dass man die Auslagerungsdatei der VMs auf ein separates virtuelles Laufwerk legen sollte. Bei meiner Recherche im Internet bekam ich aber unterschiedliche Ergebnisse. Wie macht Ihr es bzw. wie sehen die Best-Practice aus? Vielen Dank im Voraus.
  21. Hallo Admins. Auf meinem DC habe ich eine Gruppenrichtlinie erstellt, die mir nur bestimmte Systemsteuerungssymbole beim Benutzer anzeigen lassen soll. Hierfür verwende ich den kanonischen Namen der Systemsteuerungselemente, welches wunderbar funktioniert. Nun stehe ich aber vom dem Problem, dass ich unterhalb von Anmeldeinformationsverwaltung nur Windows-Anmeldeinformationen anzeigen lassen möchte. Ich weiß nicht, wie ich den Page Name in der Gruppenrichtlinie eintragen soll. Unterschiedliche Schreibweisen habe ich schon ausprobiert. Vielen Dank im Voraus.
  22. Der vollständige ADS-Pfad muss ou=Ebene1,ou=Ebene2,dc=xxx,dc=xxx,dc=xxx lauten.
  23. ineedhelp

    Hyper-V und DC

    @All. Mein Kollege und ich wollen bei uns anfangen, unsere Server zu virtualisieren. Um mir etwas Wissen anzueignen, habe ich das Buch "Microsoft Hyper-V und System Center" 1. Auflage von Nils K. und Autoren gekauft und natürlich auch gelesen. Im dem Kapitel 5.10.3 Active Directory wurde empfohlen, pro Domäne mindestens einen Domaincontroller als physischen Server laufen zu lassen. Das Projekt würde ich gerne nach den Best Practice umsetzen wollen und streite mich deshalb aktuell mit den Kollegen. Er meint, dass Buch behandelt Hyper-V 2.0 und wäre damit wertlos. Mit Hyper-V 3.0 wäre es nicht mehr erforderlich, den DC als POSE zu betreiben. Nun gehen mir die Argumente aus und ich wollte auch nicht in den Erwerb der Neuauflage des Buches investieren. Leider lässt sich der Streit nicht über einen Vorgesetzen beilegen, weil dieser einfach das technische Wissen nicht hat und nicht aus der IT kommt. Wie würdet Ihr es lösen bzw. ich benötige einfach noch mehr Argumente, um den ersten DC auf ein Blech zu installieren? Danke im Voraus. P.S. Wir setzen auf die neuste Server-Technologie und somit Server Windows 2012 R2 ein.
  24. Gelöst!!! Nach Suchen in der Gruppenrichtlinienverwaltung habe ich die passende Einstellung gefunden: Computerkonfiguration \ Einstellungen \ Systemsteuerungseinstellungen \ Geräte
  25. @All. In allen Netzwerke, die ich betreue (z. Zt. über zwanzig Windows 2008RC2-Domänen), müssen auf den Laptops die Lan-Verbindung wieder aktiviert werden. Dieses wollte ich per Startskript mittels Gruppenrichtlinie regeln. Leider sind die Notebooks mit Windows XP SP 3 installiert, und daher scheidet netsh.exe aus. WMI scheidet leider auch aus, weil die Methode Win32_NetworkAdapter.Enable() erst ab Windows Vista zur Verfügung steht. Also bleibt da nur noch das Shell.Application-Objekt, um die Lan-Verbindung zu aktivieren. Leider funktioniert mein Quelltext nicht auf meinem Testrechner (Windows XP SP 3). Das FolderItemVerb-Objekt wird nicht ausgeführt. Woran liegt es? Vielen Dank im Voraus! OPTION EXPLICIT Const DEVICE_DISABLED = 22 ' As uint32 COnst ssfCONTROLS = 3 ' As ShellSpecialFolderConstants Dim ControlPanel ' As Shell32.Folder Dim NetConnections ' As Shell32.Folder Dim FolderItem ' As Shell32.FolderItem Dim Verb ' As Shell32.FolderItemVerb Dim WMI ' As SWbemServices Dim NetAdapters ' As SWbemObjectSet Dim NetAdapter ' As SWbemObject Set WMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\root\cimv2") Set NetAdapters = WMI.ExecQuery _ ("SELECT * FROM Win32_NetworkAdapter WHERE ConfigManagerErrorCode = " & DEVICE_DISABLED) For Each NetAdapter In NetAdapters Set ControlPanel = CreateObject("Shell.Application").Namespace(ssfCONTROLS) For Each FolderItem In ControlPanel.Items If FolderItem.Name = "Netzwerkverbindungen" Then Set NetConnections = FolderItem.GetFolder Exit For End If Next For Each FolderItem In NetConnections.Items If FolderItem.Name = NetAdapter.NetConnectionID Then For Each Verb In FolderItem.Verbs If Verb.Name = "&Aktivieren" Then Verb.DoIt Exit For End If Next 'For Each Verb In FolderItem.Verbs ' wscript.echo Verb.name 'Next End If Next Next
×
×
  • Neu erstellen...