Jump to content

ineedhelp

Members
  • Gesamte Inhalte

    41
  • Registriert seit

  • Letzter Besuch

Reputation in der Community

10 Neutral

Über ineedhelp

  • Rang
    Newbie
  1. 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?
  2. @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.
  3. TPM benötigt Firmwareupdate

    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.
  4. FACEPALM! Während der Autofahrt darüber nach gedacht. Es liegt daran, wie ich die Ini-Datei auslesen.
  5. 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.
  6. GELÖST Remove-Item und Dateiberechtigung

    Danke, das war entscheidende Paramter. Da hätte ich auch drauf kommen können.
  7. GELÖST Remove-Item und Dateiberechtigung

    Jup. Es ist ein Rätsel, warum Remove-Item seine Probleme und das FSO-Objekt den Ordner ohne Probleme löscht.
  8. GELÖST Remove-Item und Dateiberechtigung

    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.
  9. @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.
  10. FGPP per VBS anlegen

    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.
  11. FGPP per VBS anlegen

    @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
  12. Ordner auf primären Computern umleiten

    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.
  13. @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.
  14. 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.
  15. @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.
×