Jump to content

ineedhelp

Members
  • Content Count

    46
  • Joined

  • Last visited

Community Reputation

10 Neutral

About ineedhelp

  • Rank
    Newbie
  1. Danke @MurdocX. Wieder etwas dazu gelernt. Ich stehe doch noch ganz unter auf der PowerShell-Leiter. Nun funktioniert es wie gewünscht. Ein kurzer Blick in die Windows-Registierungsdatenbank hätte mir es auch verraten ...
  2. @All Wenn ich mich auf meine Systeme per RDP anmelde, soll das Programm DesktopInfo mit meinen Einstellungen ausgeführt werden. Zu diesem Zweck habe ich eine Gruppenrichtlinie definiert. In der Konfigurationsdatei von DesktopInfo habe ich definiert, dass PowerShell-Skripte Daten zur Anzeige in DesktopInfo aufbereiten sollen -> CMD=active:1,hidden:1,interval:300,file:powershell.exe,directory:%temp%,parameters:-ExecutionPolicy ByPass -Command Scripts\Get-IPConfig.ps1. Es gibt auch eine Gruppenrichtlinie auf Computerebene, die die Ausführung aller Skripte erlaubt. Wenn ich mich per RDP an meinem System anmelde, werden die PowerShell-Skripte nicht ausgeführt. Starte ich das PowerShell-Skript manuell wird mir folgender Fehler angezeigt: Sobald ich das Programm aber manuell starte, laufen meine PowerShell-Skripte wie gewünscht. Was musst ich machen, dass meine PowerShell-Skripte mit DesktopInfo nach der Anmeldung die gewünschten Daten liefert. Vielen Dank im Voraus.
  3. 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.
  4. 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.
  5. @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.
  6. 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?
  7. @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.
  8. 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.
  9. FACEPALM! Während der Autofahrt darüber nach gedacht. Es liegt daran, wie ich die Ini-Datei auslesen.
  10. 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.
  11. Danke, das war entscheidende Paramter. Da hätte ich auch drauf kommen können.
  12. Jup. Es ist ein Rätsel, warum Remove-Item seine Probleme und das FSO-Objekt den Ordner ohne Probleme löscht.
  13. 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.
  14. @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.
  15. 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.
×
×
  • Create New...