Jump to content

schreckinger

Members
  • Gesamte Inhalte

    73
  • Registriert seit

  • Letzter Besuch

Profile Fields

  • Member Title
    Junior Member

Fortschritt von schreckinger

Enthusiast

Enthusiast (6/14)

  • Erste Antwort
  • Engagiert
  • Erster eigener Beitrag
  • Eine Woche dabei
  • Einen Monat dabei

Neueste Abzeichen

10

Reputation in der Community

  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
×
×
  • Neu erstellen...