Jump to content

Kuddel071089

Members
  • Gesamte Inhalte

    557
  • Registriert seit

  • Letzter Besuch

Beste Lösungen

  1. Kuddel071089's post in PS Exchange Online Module: Manifestdatei kann nicht aktualisiert werden wurde als beste Lösung markiert.   
    Habe den Fehler gefunden.
     
    Die Verwednung von
    Remove-Variable * -Confirm:$false war nicht ganz so clever :-D
     
    Da wurde nicht nur die im Skript erstellten Variablen gelöscht.
  2. Kuddel071089's post in PS: Letzte Anmeldung per RDP anzeigen wurde als beste Lösung markiert.   
    Ja die Meldungen sind vorhanden. Danke.
     
    Wie bekomme ich denn jetzt den Usernamen aus der Nachricht des Logeintrages exportiert ?
     
     
    EDIT: So geht es
     
    $event = Get-WinEvent -FilterHashtable @{ LogName = 'Microsoft-Windows-TerminalServices-LocalSessionManager/Operational' ID = 21 } -MaxEvents 1 $user = $event.Properties.Value[0] $time = Get-Date ($event.TimeCreated) $user ; $time  
  3. Kuddel071089's post in SSH Server (Windows Feature) installieren ohne Internet wurde als beste Lösung markiert.   
    Hallo zusammen, ich konnte das Problem mittlerweile lösen.
     
    man muss das komplette ISO-File, auf dem die CAB liegt als Quellpfad bei der Installation angeben
  4. Kuddel071089's post in WSUS will 197GB Updates laden wurde als beste Lösung markiert.   
    Habe jetzt endlich eine Lösung gefunden:
     
    https://mstechy.net/2017/03/13/wsus-alte-updates-bereinigen/
  5. Kuddel071089's post in PS: von DHCP zu Static IP per Remote-Command wurde als beste Lösung markiert.   
    Habe den Fehler doch gefunden.

    Mein eben gepostets Skript funktioniert doch...
  6. Kuddel071089's post in Get-LocalGroupMember -Computername wurde als beste Lösung markiert.   
    Hab mir das Modul vom 2012er Server kopiert und importiert.
     
    jetzt funktioniert mein Skript wieder
  7. Kuddel071089's post in PS: Ablaufdatum mit aktuellem Datum vergleichen wurde als beste Lösung markiert.   
    Habe mir die entsprechenden Tage in eine Variable geschrieben:
    $aktuelles_datum = Get-Date -Format dd.MM.yyyy $7_tage = get-date -date $(get-date).adddays(+7) -format dd.MM.yyyy $5_tage = get-date -date $(get-date).adddays(+5) -format dd.MM.yyyy $1_tag = get-date -date $(get-date).adddays(+1) -format dd.MM.yyyy Jetzt muss ich nur noch das Ablaufdatum wie oben formatieren
    $user = Get-ADUser Test-5 -Properties * | Select AccountExpirationDate $user_ablaufdatum = $user.AccountExpirationDate EDIT:
     
    Okay, habs gelöst:
    $user = Get-ADUser Test-5 -Properties * | Select AccountExpirationDate $user_ablaufdatum = $user.AccountExpirationDate $user_ablaufdatum = ($user_ablaufdatum.tostring("dd.MM.yyyy"))
  8. Kuddel071089's post in PS: Eventlog zur Serversicherung auslesen wurde als beste Lösung markiert.   
    Hallo NIls,
     
    wusste bis eben gar nicht, dass so was geht ^^. Ja gut, das wäre dann wohl der einfach Weg gewesen :-D
     
    Für die Interessierten, wie ich es umgesetzt habe:
     
     
    cls $host.ui.RawUI.WindowTitle = "DC Backup Check v0.2" #Mailvariablen $Mailempfaenger = "xxxx@xxxx.de" $smtpserver = "outlook.xxxx.de" $absender = "Check@xxxx.de" #Server definieren $servers = @("DC01","DC02","DC03") #Checkschleife foreach($server in $servers) { #Datum von gestern in Variable $gestern = (Get-Date) - (New-TimeSpan -Day 1) #Check ob das Backup gestartet wurde $event_start = Get-WinEvent -LogName Microsoft-Windows-Backup -ComputerName $server | Where-Object {$_.Id -eq 1 -and ($_.TimeCreated -ge $gestern)} if($event_start) { #Check ob das Backup erfolgreich abgeschlossen wurde #Event in Variable schreiben $event_erfolgreich = Get-WinEvent -LogName Microsoft-Windows-Backup -ComputerName $server | Where-Object {$_.Id -eq 4 -and ($_.TimeCreated -ge $gestern)} if($event_erfolgreich) { #Klammer vom Check ob das Backup erfolgreich war #Erfolgreichmail $mailbody = "C:\mailbody_$server.txt" "$($event_erfolgreich.TimeCreated)" | Out-File -FilePath $mailbody -Append "$($event_erfolgreich.Message)" | Out-File -FilePath $mailbody -Append $body = Get-Content -Raw $mailbody Send-MailMessage -SmtpServer $smtpserver -to $Mailempfaenger -from $absender -Subject "+++ AD DC Backup: $server  -->  SUCCESS +++" -Body $body -Encoding Unicode Remove-Item $mailbody } else { #Fehlermeldung, dass das Backup nicht erfolgreich abgeschlossen wurde Send-MailMessage -SmtpServer $smtpserver -to $Mailempfaenger -from $absender -Subject "+++ AD DC Backup: $server  -->  ERROR +++" -Body "Das Backup wurde nicht erfolgreich abgeschlossen" -Encoding Unicode } }#Klammer vom Check ob das Backup gestartet wurde else { #Fehlermeldung, dass es keinen Eventlog-Eintrag für den Start des Backups gibt Send-MailMessage -SmtpServer $smtpserver -to $Mailempfaenger -from $absender -Subject "+++ AD DC Backup: $server  -->  ERROR +++" -Body "Das Backup wurde nicht ausgeführt" -Encoding Unicode } }#Klammer der ForEach Schleife
  9. Kuddel071089's post in PS: Infos von Groupmembers abfragen wurde als beste Lösung markiert.   
    Moin Nils,
     
    ich habe es jetzt per CSV-Export hinbekommen. Es werden nur User (danke für deinen Hinweis) in eine CSV geschrieben. welche am Ende wieder gelöscht wird
  10. Kuddel071089's post in Remote AD Join wurde als beste Lösung markiert.   
    Meine Lösung sieht jetzt so aus:
     
    $installip = "172.15.2.7" $domain = "xxxxx.local" $username = $env:USERNAME $servername = Read-Host   #teporären DNS Eintrag setzen Invoke-Command -ComputerName DC1 -ScriptBlock {Add-DnsServerResourceRecord –ZoneName xxxx.local –A –Name $using:servername –IPv4Address $using:installip} Invoke-Command -ComputerName DC1 -ScriptBlock {Get-DnsServerResourceRecord -ZoneName xxxx.local -Name $using:servername} ipconfig /flushdns Add-Computer -ComputerName $servername  -LocalCredential $servername\Administrator -DomainName $domain -Credential $domain\$username -Force -Restart   #temporärer DNS-Eintrag entfernen Invoke-Command -ComputerName DC1 -ScriptBlock {Remove-DnsServerResourceRecord -ZoneName xxxx.local -RRType "A" -Name $using:servername -Confirm:$false}
  11. Kuddel071089's post in PS: remote lokal Gruppen hinzufügen wurde als beste Lösung markiert.   
    Beispiel 9 war es. vielen dank
     
     
    $servername = "VNTS999" Invoke-Command -ComputerName VNTS999 -ScriptBlock {net localgroup Administratoren S-ZBS-$using:Servername-Admin /ADD}
  12. Kuddel071089's post in PS: Probleme mit Schleife wurde als beste Lösung markiert.   
    Ich habe das ganze jetzt über oscustomizationspec gelöst
  13. Kuddel071089's post in PS: Export in Excel Blätter wurde als beste Lösung markiert.   
    also den export nach excel hab ich schon einmal hinbekommen.
     
    folgendes fehlt jetzt noch:
     
    -das Worksheet umbenennen
    -eine Zweite Gruppe abfragen und ein neues Worksheet schreiben
     
    Leider bin ich gerade zu b***d, das selber hinzubekommen
     
     
    $excel = New-Object -ComObject Excel.Application $excel.Visible = $true $workbook = $excel.Workbooks.Add() $sheet = $workbook.ActiveSheet $counter = 2 $sheet.cells.Item(1,1) = "Username" $sheet.cells.Item(1,2) = "Anzeigename" Get-ADGroupMember Role-CMT-McAfee-Block-USB | Sort | Select SamAccountName, Name | ForEach-Object {     $counter++     $sheet.cells.Item($counter,1) = $_.SamAccountName     $sheet.cells.Item($counter,2) = $_.Name }
    Update. Bin ein ganzes Stück weiter gekommen. Im Endeffekt muss ich die erstellt Datei nur noch speichern
     
     
    cls $excel = New-Object -ComObject excel.application $excel.visible = $True $workbook = $excel.Workbooks.Add() $workbook.Worksheets.Add() $excel.DisplayAlerts = $False $sheet= $workbook.Worksheets.Item(1) #Block-USB #Tabelle benennen $sheet.Name = 'Block-USB' #Tabellenüberschriften setzen $sheet.Cells.Item(1,1) = 'Username' $sheet.Cells.Item(1,2) = 'Anzeigename' #Tabelle füllen $row = 2 $column = 1 Get-ADGroupMember Role-CMT-McAfee-Block-USB | Sort | Select SamAccountName, Name | ForEach {     #SamAccountName     $sheet.Cells.Item($row,$column) = $_.SamAccountName     $column++     #Name     $sheet.Cells.Item($row,$column) = $_.Name     $column++         #Increment to next Row and reset Column     $row++     $column = 1 } $usedRange = $sheet.UsedRange                         $usedRange.EntireColumn.AutoFit() | Out-Null #Monitor-USB $sheet= $workbook.Worksheets.Item(2) $sheet.Name = 'Monitor-USB' $sheet.Cells.Item(1,1) = 'Username' $sheet.Cells.Item(1,2) = 'Anzeigename' #Tabelle füllen $row = 2 $column = 1 Get-ADGroupMember Role-CMT-McAfee-Monitor-USB | Sort | Select SamAccountName, Name | ForEach {     #SamAccountName     $sheet.Cells.Item($row,$column) = $_.SamAccountName     $column++     #Name     $sheet.Cells.Item($row,$column) = $_.Name     $column++     #Increment to next Row and reset Column     $row++     $column = 1 } $usedRange = $sheet.UsedRange                         $usedRange.EntireColumn.AutoFit() | Out-Null
  14. Kuddel071089's post in Aufgabenplanung: Powershell-Skript wurde als beste Lösung markiert.   
    Hab das Skript jetzt lokal abgelegt und per CMD wie von dir beschrieben gestartet,
     
    Funktioniert. Danke
  15. Kuddel071089's post in PS: select Expression wurde als beste Lösung markiert.   
    Die Abfrage funktioniert (siehe oben).
     
    Das entfernen der Endungen habe ich jetzt auch hinbekommen (http://www.mcseboard.de/topic/206707-powershell-letzten-zeichen-abschneiden/)
  16. Kuddel071089's post in Powershell: Letzten zeichen abschneiden wurde als beste Lösung markiert.   
    Habs hinbekommen
     
     
    #Entfernen von -RW $gruppe_neu = $gruppe.SamAccountName.Substring(0,$gruppe.SamAccountName.Length-3)
  17. Kuddel071089's post in User wird ständig gesperrt wurde als beste Lösung markiert.   
    Es wurde alle Cleints im Büro geprüft und auf einem war tatsächlich im Brwoser noch ein altes PW hinterlegt. User wird jetzt nicht mehr gesperrt
  18. Kuddel071089's post in Homeverzeichnisse autom. loeschen wurde als beste Lösung markiert.   
    Da wir sowohl eine DaSi (4 Wochen aufbewahrung) als auch Vorgängerversionen haben, ist es viel einfacher das Verzeichnis immer direkt mit zu löschen.
     
    Für den Fall der Fälle müsste man dann halt das Verzeichnis wiederherstellen, aber das kommt nur selten vor
  19. Kuddel071089's post in Unterschiedliches Verhalten von Powershell-Skript wurde als beste Lösung markiert.   
    Mit
    FT -wrap -autosize wird nichts mehr abgeschnitten
     
     
    EDIT:
     
    Ich habe das Ganze jetzt doch anders gelöst, was ich sogar noch viel besser finde:
    Get-ADComputer -Filter {LastLogonTimeStamp -lt $time} -Properties LastLogonTimeStamp,operatingSystem,DistinguishedName | Sort-Object | select-object Name,@{Name="lastLogonTimestamp"; Expression={[DateTime]::FromFileTime($_.lastLogonTimestamp)}},operatingSystem, DistinguishedName | export-csv -Delimiter ";" -path "$outputFile"
  20. Kuddel071089's post in Berechtigungen für Domain join wurde als beste Lösung markiert.   
    ich habe es jetzt über ein gpo eingestellt.
     
    jetzt geht es
  21. Kuddel071089's post in Batch ohne Session ausführen wurde als beste Lösung markiert.   
    -Laufwerksbuchstabend sind alle entfernt. Läuft jetzt über die Serverfreigabe.
    -Das Computerobjekt hat Schreibrechte für die Serverfreigabe bekoomen
    -Cer Call befehl wurde ersetzt durch "C:\Program Files\Microsoft Office\Office14\EXCEL.EXE" /R "\\freigabe\...\...\excel-datei.xlsx"
     
    Das Script läuft jetzt an und EXCEL wird im Hintergrund gestartet (sieht man im Taskmanager)
     
    Nur tut sicht jetzt nichts mehr. Startet man den Befehl direkt ohne Task, öffnet sich Excel und schließt sich nach ca. 90 Sekunden wieder.
    Der Prozess läuft jetzt aber schon ein paar Minuten
  22. Kuddel071089's post in PS: User vor löschen schützen wurde als beste Lösung markiert.   
    hab gerade gelsen, dass es auch mit * geht und man nicht jeden User einzeln angeben muss
  23. Kuddel071089's post in Mail Alias abfragen wurde als beste Lösung markiert.   
    der alias wird ja geändert in den neuen usernamen, die alte adresse bleibt aber weiterhin erhalten.
     
    also müsste man abfragen, ob es eine mail-adresse gibt mit dem usernamen xy
     
    iwie in der form:
     
     
    get-mailbox -mailaddress $username
     
    if (Get-Mailbox -Identity "$username@xxxx.de") { cls Write-Host Write-Host -ForegroundColor Red "+++ Username im Exchange ist bereits vergeben +++" Write-Host Get-Mailbox -Identity $username@xxxx.de | select UserPrincipalName, DisplayName, EmailAddresses | fl Write-Host Write-Host -ForegroundColor Red "+++ Bitte Script neu starten +++" Sleep 5 break } else { Write-Host Write-Host -ForegroundColor Green "+++ Username im Exchange ist noch frei +++" Sleep 2 }
  24. Kuddel071089's post in Fileserver Migration mit Robocopy wurde als beste Lösung markiert.   
    Problem gegunden. Beim 1 COpyjob wurde die Rechte nicht migriert.
     
    Im Nachinein kann Robocopy das wohl nicht.
     
    Als ich alle Daten gelöscht habt und den Jon noch einmal durchlaufen lassen habe wurde auch die Rechte kopiert
     
     
    robocopy.exe "%quelle%" "\%ziel%" /e /COPYALL /SEC /MIR
  25. Kuddel071089's post in Powershell: User umbennen wurde als beste Lösung markiert.   
    kann man denn den User an sich Über den eindeutigen SamAccountName umbenennen ?
     
    Das ist meiner Meinung nach der einfachste Weg, sofern es geht ^^

    Also das umbennen mit dem DistinguishedName funktioniert jetzt. Nur leider ist das Feld "UserPrincipalName" danach immer leer.
     
    Obowl ich sage
    Set-ADUser -UserPrincipalName "$username_neu"  
    FEHLER GEFUNDEN:
     
     
    Set-ADUser -UserPrincipalName "$username_neu@xyz.local"
×
×
  • Neu erstellen...