Jump to content

schreckinger

Members
  • Gesamte Inhalte

    73
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte von schreckinger

  1. if(Get-Item $env:PROGRAMDATA\CenturaSQL\Databases\SPVLOCAL\SPVLOCAL.DBS).CreationTime -eq (Get-Item $env:PROGRAMDATA\CenturaSQL\Databases\SPVLOCAL\SPVLOCAL.DBS).LastWriteTime){ Remove-item $env:PROGRAMDATA\CenturaSQL\Databases\SPVLOCAL\SPVLOCAL.DBS } ist es so richtig ? danke dukel für deine geduld mit mir
  2. hallo ich denke ja die ganze Zeit das die Bedienung der vergleich von der creation und der lastwrite time ist ? und wenn eine underschiedliche Zeit ist soll er es löschen ?
  3. okay aber wie gehören die klammern ? If() {Get-Item $env:PROGRAMDATA\CenturaSQL\Databases\SPVLOCAL\SPVLOCAL.DBS).CreationTime -ne (Get-Item $env:PROGRAMDATA\CenturaSQL\Databases\SPVLOCAL\SPVLOCAL.DBS).LastWriteTime Remove-item $env:PROGRAMDATA\CenturaSQL\Databases\SPVLOCAL\SPVLOCAL.DBS } ich komm nicht dahinter ? ich brauche ja die runden und die geschwungen Klammern ?
  4. If{(Get-Item $env:PROGRAMDATA\CenturaSQL\Databases\SPVLOCAL\SPVLOCAL.DBS).CreationTime -ne (Get-Item $env:PROGRAMDATA\CenturaSQL\Databases\SPVLOCAL\SPVLOCAL.DBS).LastWriteTime } foo(){ Remove-item $env:PROGRAMDATA\CenturaSQL\Databases\SPVLOCAL\SPVLOCAL.DBS } ist das so dann richtig ?
  5. Hallo Dukel wie meinst die Bedienung drehen ? Kannst du mir das an hand von dem Beispiel erklären. Ich muss nämlich nochmals zurück zu denn Basics, daher ich mir in der Powershell noch immer sehr schwer tue. werd mir die dokus nochmal durch lesen und üben üben üben Wie gesagt danke für deine Hilfe.
  6. Hallo Dukel danke erstmals für die Antwort. Das Problem habe ich noch nicht gelöst daher es sich zum glück aufschieben hat lassen, doch möchte ich es jetzt probieren ich habe mal nach besten gewissen ein Script erstellt ?, dieses funktioniert jedoch nicht. If{(Get-Item $env:PROGRAMDATA\CenturaSQL\Databases\SPVLOCAL\SPVLOCAL.DBS).CreationTime -eq (Get-Item $env:PROGRAMDATA\CenturaSQL\Databases\SPVLOCAL\SPVLOCAL.DBS).LastWriteTime } else { Remove-item $env:PROGRAMDATA\CenturaSQL\Databases\SPVLOCAL\SPVLOCAL.DBS } Wie gesagt mein wissen mit der Powershell ist sehr begrenzt und daher auch meine Frage ob du mir das richtig stellen kannst bzw. Tipp geben kannst. Danke lg
  7. Hallo gemeinde ich sollte mit icacals rechte setzen Schreibrechte für ALLE Benutzer im ProgramData-Unterverzeichnis setzen ich probiere die ganze herum komm aber auf keinen grünen zweig darum bitte ich euch um Hilfe das hab ich bisher zusammen: icacls "%ProgramData%\test" /T /grant:r "everyone":(OI)(CI)M Ich bedanke mich schon mal herzlichst für Hilfe im Voraus! DANKE
  8. Hallo Gemeinde ich habe folgende Frage. Ich soll eine Datei entferen jedoch nur wenn diese nicht geändert wurde (gleiche Größe und Änderungszeitpunkt wie bei der Installation)! Wie kann ich das am besten machen. Daher meine Kenntnisse ziehmlich eingeschränkt sind in der Powershell hoffe ich hier auf Rasche Hillfe daher ich das für meinen Arbeitgeber brauche. ( Der Powershell Guru der Firma ist eine Woche krank und deswegen stehe ich auch unter Zeitdruck) Danke ich Vorraus für die Hilfe Lg Schreckinger
  9. Danke Powershell admin wieder ein Antwort die mich zu 100% zufrieden stellt. Jetzt noch eine Frage zum Forum ? Wenn ich mir denke das der Thread fertig muss ich denn schließen oder werden diese automatisch geschlossen. Danke nochmals lg schreckinger
  10. Hallo Leute ich wünsche euch einen guten Morgen :) ich hab mir gerade die Frage gestellt ob es Sinn macht Schleifen in einer Function verpacken. Z.b Mein Beispiel BackupTool #Backup Tool Clear-Host # Funkton 1 function Select-Folder($message='Wählen Sie einen Ornder', $path = 0) { $object = New-Object -comObject Shell.Application $folder = $object.BrowseForFolder(0, $message, 0, $path) if ($folder -ne $null) { $folder.self.Path } } ################################################################################################################## $date = Get-Date -Format d.MMMM.yyyy $var1 = Select-Folder 'Wählen Sie den Ornder aus denn Sie sichern möchten!' ############################################################################################################### if (Test-Path -Path $var1) { Write-Host "Die Eingabe war korrket." } else{ Write-Host "Der Angebene Ornder exestiert nicht bitte prüfen sie die Schreibweise und achten sie auf Groß/Klein Schreibun" #Write-Host "Der Pfad zum Ornder ist nicht Korrekt:"$var1 } $var2 = Select-Folder 'Wählen Sie nun den Ornder denn sie als Backup verwenden möchten!' if (Test-Path -Path $var2) { Write-Host "Die Eingabe war Korrekt." cd $var2 $var3 = mkdir $date -Force Copy-Item -Path $var1 -Destination $var3 -Recurse -Force | Write-Host "Kopiervorgang gestartet dies kann einige Zeit in Anspruch nehmen" For($i = 1; $i -le $files.count; $i++) { Write-Progress -Activity "Backup von den Daten" -status "Backup gestartet" ` -percentComplete ($i / $files.count*100)} $backup_log = Dir -Recurse $var2 | Sort-Object | out-File "$var2\backup_log.txt" Write-Host "Der Kopiervorgang abgeschlossen auf"$var2 Write-Host "Das Protokoll finden sie unter:"$var2 } else { Write-Host "Der Angebene Ornder exestiert nicht" Write-Host "Der Pfad zum Ornder von ihrer Eingabe:"$var2 } ################################################################################################################# Würde es sinn machen den Unteren Teil in ein Function einzubauen ? Oder ist es z.b bei diesem Beispiel 2 Rangig ? Sollte ich in der Zukunpf eher function bauen ? Danke ich freue mich auf Antworten LG Schreckinger
  11. Danke Powershelladmin für deine Antwort. Normalerweiße sollte es nicht vorkommen das die Pfad lange 260 Zeichen überschreitet. Aber für deine Erklärung bin ich dankbar.
  12. Hallo Leute! Ich hab mir das jetzt eine ProgeressBar eingebaut. if (Test-Path -Path $var2) { Write-Host "Die Eingabe war Korrekt." cd $var2 $var3 = mkdir $date -Force Copy-Item -Path $var1 -Destination $var3 -Recurse -Force | Write-Host "Kopiervorgang gestartet dies kann einige Zeit in Anspruch nehmen" For($i = 1; $i -le $files.count; $i++) { Write-Progress -Activity "Backup von den Daten" -status "Backup gestartet" ` -percentComplete ($i / $files.count*100)} $backup_log = Dir -Recurse $var2 | Sort-Object | out-File "$var2\backup_log.txt" Write-Host "Der Kopiervorgang abgeschlossen auf"$var2 Write-Host "Das Protokoll finden sie unter:"$var2 } Ich sehe auch das die ProgressBar aufgeht. Aber beim Probieren von meinen Script habe ich einen Bug endeckt. Fehlermeldung: "Copy-Item : The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters." Also die Ornder namen werden dem Script zu lange. Gibt es eine Möglich das zu denfieren oder besser gesagt die Lange zu verlängern ? Danke für eure Hilfe Lg
  13. Hallo Blub ich werde diese Regel beherzigen. und entschuldige mich für diesen Post in der Früh. Ich hatte nicht die Zeit den Post zubeschreiben. lg
  14. Hallo danke für deine Antwort. Ja das ist mir bewusst möchte aber einfach wegen dem Lerneffekt so ein Tool schreiben. Danke
  15. Hallo Gemeinde, hi leute :) Also ich möchte mir einen Tool bauen für die Netzwerkanaylse Der Scanner soll die IP-Range auflisten, Hostnamen, IP, MAC Adresse, Shares anzeigen und ob der PC Online ist. #Network Anaylse Clear-Host function Get-IPAddress { param( [switch] $first, [Parameter(ParameterSetName='IPV4')] [switch] $IPv4, [Parameter(ParameterSetName='IPV4')] [switch] $IPv6 ) $ip = @(Get-WmiObject -Filter 'IPEnabled=true' Win32_NetworkAdapterConfiguration | Select-Object -ExpandProperty IPAddress) if ($IPv4) { $ip = $ip | Where-Object { $_ -like '*.*' }} if ($IPv6) { $ip = $ip | Where-Object { $_ -like '*:*' }} if ($ip.Count -gt 1 -and $first) { $ip[0] } else { $ip } } function Get-IPRange($start, $end) { $ip1 = ([system.Net.IPAddress]$start).GetAddressBytes() [Array]::Reverse($ip1) $ip1 = ([system.Net.IPAddress]($ip1 -join '.')).Address $ip2 = ([system.Net.IPAddress]$end).GetAddressBytes() [Array]::Reverse($ip2) $ip2 = ([system.Net.IPAddress]($ip2 -join '.')).Address for ($x = $ip1; $x -le $ip2; $x++) { $ip = ([system.Net.IPAddress]$x).GetAddressBytes() [Array]::Reverse($ip) $ip -join '.' } } if ($PSCmdlet.ParameterSetName -eq 'Automatic') { @(Get-IPAddress -first:$first -IPv4) | ForEach-Object { $temp = ([system.Net.IPAddress]$_).GetAddressBytes() $temp[3] = 1 [system.Net.IPAddress]$start = $temp -join '.' $temp[3] = 255 [system.Net.IPAddress]$end = $temp -join '.' Get-IPRange $start $end } } else { Get-IPRange $start $end } function Test-Online { param( [Parameter(Mandatory=$true, ValueFromPipeline=$true)] [string] $computername, [int32] $throttleLimit = 300 ) begin { $list = New-Object System.Collections.ArrayList } process { [void]$list.Add($computername) } end { & { do { $number = [Math]::Min($list.Count, $throttleLimit) $chunk = $list.GetRange(0, $number) $job = Test-Connection $chunk �Count 1 �asJob $job | Wait-Job | Receive-Job | Where-Object { $_.StatusCode -eq 0 } | Select-Object �expandProperty Address Remove-Job $job $list.RemoveRange(0, $number) } while ($list.Count -gt 0) } | Sort-Object { [system.Version]$_ } } } function Get-HostName { param( [Parameter(Mandatory=$true, ValueFromPipeline=$true)] [string[]] $IPAddress ) process { $IPAddress | Foreach-Object { $ip = $_ try { [system.Net.DNS]::GetHostByAddress($ip) } catch { Write-Warning �IP $ip did not return DNS information� } } } } Get-IPAddress | Test-Online | Get-HostName Soweit hab ich mir das mal gedacht aber ich scheitere daran. Vielleicht sieht wer von euch wo es hackt ? Danke nochmals LG
  16. DANKE DANKE wo sollte man sowas im script einbauen, also an wechler Stelle findet das Platz ? lg
  17. Danke das war genau das was ich gesucht habe. BIn aber noch nicht fertig mit diesem Script möchte das ganze erweitern das er dem User ein Email schick mit dem Log File von der Sicherung. In diesem Log File sollten alle Dateien die Kopiert worden sind aufgelistet sein. Und ich möchte so einen Prozent Balken Einbauen damit man sieht wie weit der Kopiervorgang schon ist. Wie könnte man sowas lösen ? Danke für eure Hilfe und ich wünsch euch allen einen wünderschönen Guten Morgen und einen erfolgreichen Start in die Woche :)
  18. Vertraun ist gut kontrolle besser :) aber ich überleg mir was ob ich das irgendwie lösen kann. cd $var2 $var3 = mkdir $date -Force Ich spring ja vorher mit Cd $var in den Ziel Ornder, und in diesem soll der dann einen Ornder mit Datum anlegen. sprich E:\Backup\23.03.2012 okay dann werd ich mir mal über wochenende das Programm reinziehen. und natürlich mein Wissen über die Powershell erweitern.
  19. Frage zum Script..... für das steht das n= danke
  20. ducke danke :) es funktioniert , eine Frage dazu. ich bekomme eine Extrem Lange liste ? Aber wenn ich mir die Berechtigungen ansehe sehe ich nur das 2 Benutzer zugriff auf den Ornder haben ? Wie kann das sein ? Oder wird hier jede Datei auch auchgelistet ? ERSTELLER-BESITZER Allow VORDEFINIERT\Users Allow VORDEFINIERT\Users Allow VORDEFINIERT\Users Allow VORDEFINIERT\Administrators Allow NT-AUTORITÄT\SYSTEM Allow LUI\user1 Allow VORDEFINIERT\Users Allow VORDEFINIERT\Administrators Allow NT-AUTORITÄT\SYSTEM Allow LUI\User1 Allow VORDEFINIERT\Users Allow
  21. hi ersten wieder mal ein FETTES Dank an Dukel :) freut mich immer wieder von dir zu hörn. Wenn das weglasse : "$var1 = $env:USERPROFILE + '\' + $var1" muss der user doch den Pfad komplett eingeben ? da sind wir wieder beim Problem meine User können das ned. Ich kann ned verlangen von denen das die z.b E:\Backup\files\new eingeben oder so .. aber naja das ist halt die Geschichte mit den Usern :) "$var3 = mkdir $date -Force" da leg ich mir einen Ornder mit dem Heutigen Datum im Ziel Ordner an. PrimalForms: The only PowerShell GUI Editor Ist das ein eigenständiges Programm oder wie kann ich das verstehen ? Wie gesagt besten Dank und ich wünsch dir einen erfolgreichen Tag
  22. Hallo Gemeinde. Also ich arbeite jetzt seit ca 2 wochen mit der Powershell hab mir mal einen kleines Backup Tool geschrieben. Als erster wird eine Eingabe vom Benutzer verlangt, dann wird geprüft ob der Ornder verfügbar ist. Dann wird hinkopiert und in ein Log File gespeichert. Wenn der Eingebene Ornder nicht vorhanden ist wird eine Fehler meldung ausgeben. Hier mal mein Tool :) #Backup Tool Clear-Host $date = Get-Date -Format d.MMMM.yyyy $var1 = Read-Host "Eingabe des Ornders der gesichert werden soll, achten Sie bitte auf die Richtige Schreibweise" $var1 = $env:USERPROFILE + '\' + $var1 if (Test-Path -Path $var1) { Write-Host "Die Eingabe war korrket." } else{ Write-Host "Der Angebene Ornder exestiert nicht bitte prüfen sie die Schreibweise und achten sie auf Groß/Klein Schreibun" Write-Host "Der Pfad zum Ornder ist nicht Korrekt:"$var1 } $var2 = Read-Host "Eingabe der Ziel Quelle für das Backup:" $var2 = $env:SystemDrive + '\' + $var2 if (Test-Path -Path $var2) { Write-Host "Die Eingabe war Korrekt." cd $var2 $var3 = mkdir $date -Force Copy-Item -Path $var1 -Destination $var3 -Recurse -Force | Write-Host "Kopiervorgang gestartet dies kann einige Zeit in Anspruch nehmen" $backup_log = Dir -Recurse $var2 | Sort-Object | out-File "$var2\backup_log.txt" Write-Host "Der Kopiervorgang abgeschlossen auf"$var2 Write-Host "Das Protokoll finden sie unter:"$var2 } else { Write-Host "Der Angebene Ornder exestiert nicht" Write-Host "Der Pfad zum Ornder von ihrer Eingabe:"$var2 } Aber ich wäre nicht der Schreckinger wenn ich nicht noch mehr machen möchte. Erstens bin ich offen für Verbesserungsvorschläge. Weiters möchte ich das Script noch erweitern. Ich möchte eine Grafische Oberfläche für das Tool bauen. Funktioniert das via Powershell ? Ich weiß das es vielleicht ein bisschen bald ist mit GUI zu Experimentieren daher mir die Powersehll selbst manchmal noch sehr komplieziert ist. Aber wie gesagt ich dachte auch nicht das ich es schaffe so weit in 2 Wochen zu kommen. :) Des weiteren stört mich noch ein bisschen das der Ornder auf C:\ liegen muss. Möchte das Script erweitern auf alle Laufwerke? Wäre es sinnvoll vorher einen Laufwerk check einbauen ob diese vorhanden sind ? Danke nochmals an alle die mir bisher zur Seite standen :) DANKE
  23. das Result ist bei mir ähnlich aus ? aber mit diesen Werten kann ich leider nichts anfangen ? muss ich mir wahrscheinlich mit sort-object die Anzeige zurecht legen oder ? Danke
  24. Danke für den Link... hab nämlich 50 Tabs ca offen und hab das nicht mehr gefunden. Ich finde PowerShell My Powershell - PowerShellPraxis.de ist ne Top Seite. Danke :)
  25. hi also den get-help Befehl env: hab ich ausgeführt. Aber mein Problem ist das der jetztige Rechner was ich in der Arbeit verwende nur eine C Platte hat. Aber gibt es so einen Namen für alle Platten wie Drives oder so ? okay das mit den guis schau ich mir später an. Das Problem ist die User sind einfach zu d... ! Um den Pfad Komplett anzugeben. Deswegen auch meine Frage ob es ein Dropdown menü oder irgendsowas in der Art gibt. Gibt es dazu noch eine leichtere möglich ? Wie hast du das Gemeint mit der Abfrage ? Danke nochmal Dukel bist ein Top Mann
×
×
  • Neu erstellen...