1. Scrieți un script PowerShell care să afișeze toate fișierele dintr-un director dat ca parametru, împreună cu dimensiunea lor în octeți. Get-ChildItem "D:\TI-AN3_SEM2\PMP" -Recurse -File | ForEach-Object { # Do something with the file size Write-Host "File: $($_.FullName), Size: $($_.Length)" } 2. Scrieți un script PowerShell care să creeze un fișier de tip text cu un mesaj dat ca parametru. New-Item -Path . -Name "msg.txt" -ItemType "file" -Value "Here is Maria" Get-Content .\msg.txt 3. Scrieți un script PowerShell care să afișeze primele zece linii ale unui fișier dat ca parametru. Get-Content D:\TI-AN3_SEM2\SOA_LAB\just.txt | Select -First 10 4. Scrieți un script PowerShell care să caute toate fișierele dintr-un director și să le copieze într-un alt director. Copy-Item -Path D:\a -Destination D:\TI-AN3_SEM2\SOA_LAB\lab5_dest -Recurse 5. Scrieți un script PowerShell care să creeze un director nou și să mute toate fișierele cu o anumită extensie dintr-un director în noul director creat. New-Item -Path 'D:\TI-AN3_SEM2\SOA_LAB\test' -ItemType Directory Move-Item -Path D:\TI-AN3_SEM2\SOA_LAB\lab5\*.txt -Destination 'D:\TIAN3_SEM2\SOA_LAB\test' 6. Scrieți un script PowerShell care să afișeze toate fișierele dintr-un director care au fost modificate în ultimele 24 de ore. Get-Item D:\TI-AN3_SEM2\SOA_LAB\lab5_dest\a\*.* | Foreach { $lastupdatetime=$_.LastWriteTime $nowtime = get-date if (($nowtime - $lastupdatetime).totalhours -le 24) { Write-Host "File modified within 24 hours "$_.Name } else { Write-Host "File modified before 26 hours" } } 7. Scrieți un script PowerShell care să descarce un fișier de pe un server web dat ca parametru. # Source URL $url = "http://speed.transip.nl/10mb.bin" # Destation file $dest = "D:\TI-AN3_SEM2\SOA_LAB\lab5_dest\testfiles.bin" # Download the file Invoke-WebRequest -Uri $url -OutFile $dest 8. Scrieți un script PowerShell care să genereze o parolă aleatoare cu o lungime dată ca parametru. Function Get-RandomPassword { #define parameters param([int]$PasswordLength = 10) #ASCII Character set for Password $CharacterSet = @{ Uppercase = (97..122) | Get-Random -Count 10 | % {[char]$_} Lowercase = (65..90) | Get-Random -Count 10 | % {[char]$_} Numeric = (48..57) | Get-Random -Count 10 | % {[char]$_} SpecialChar = (33..47)+(58..64)+(91..96)+(123..126) | Get-Random -Count 10 | % {[char]$_} } #Frame Random Password from given character set $StringSet = $CharacterSet.Uppercase + $CharacterSet.Lowercase + $CharacterSet.Numeric + $CharacterSet.SpecialChar -join(Get-Random -Count $PasswordLength -InputObject $StringSet) } #Call the function to generate random password of 8 characters Get-RandomPassword -PasswordLength 8 9. Scrieți un script PowerShell care să caute și să înlocuiască un cuvânt dat ca parametru în toate fișierele dintr-un director. $FolderPath="D:\TI-AN3_SEM2\SOA_LAB\lab5_dest\a" $SearchString="mere" $ReplaceString="cirese" $files = Get-ChildItem $FolderPath -Recurse | Where-Object { $_.PSIsContainer -eq $false } foreach ($file in $files) { (Get-Content $file.FullName) | ForEach-Object { $_ -replace $SearchString, $ReplaceString } | Set-Content $file.FullName } Write-Host "Word '$SearchString' has been replaced with '$ReplaceString' in all files within directory '$FolderPath'." 10. Scrieți un script PowerShell care să afișeze informații despre procesele care rulează pe un sistem, inclusiv PID-ul, numele procesului și consumul de memorie Get-Process | Select-Object Id, Name, WorkingSet 11. Scrieți un script PowerShell care să afișeze informații despre toate fișierele dintr-un director, inclusiv numele fișierului, dimensiunea și data creării. Get-ChildItem "D:\TI-AN3_SEM2\PMP" -Recurse -File | ForEach-Object { # Do something with the file size Write-Host "File: $($_.FullName), Size: $($_.Length), Date: $($_.CreationTime)" } 12. Scrieți un script PowerShell care să creeze un fișier de tip CSV și să îl completeze cu informații despre toate fișierele dintr-un director, inclusiv numele fișierului, dimensiunea și data creării. Get-ChildItem -Path "D:\TI-AN3_SEM2\SOA_LAB\lab5_dest\a" | Where-Object { !$_.PSIsContainer } | Select-Object Name, Length, CreationTime | Export-Csv -Path "D:\TI-AN3_SEM2\SOA_LAB\lab5_dest\a\test.csv" -NoTypeInformation 13. Scrieți un script PowerShell care să obțină toate fișierele dintr-un director și să le comprime într-un fișier ZIP. $sourcePath ="D:\TI-AN3_SEM2\SOA_LAB\lab5_dest\a" $destinationPath="D:\TI-AN3_SEM2\SOA_LAB\lab5_dest" Compress-Archive -Path $sourcePath\* -DestinationPath $destinationPath 14. Scrieți un script PowerShell care să afișeze toate procesele care rulează pe un sistem și să le ordoneze după numele procesului în ordine alfabetică. Get-Process | Sort-Object Name 15. Scrieți un script PowerShell care să găsească toate fișierele dintr-un director care au o anumită extensie și să le șteargă. Get-ChildItem “D:\TI-AN3_SEM2\SOA_LAB\lab5_dest\a” -recurse -include *.docx -force | remove-item 16. Scrieți un script PowerShell care să monitorizeze un director și să afișeze un mesaj atunci când se adaugă sau se șterge un fișier. $directoryPath = "D:\TI-AN3_SEM2\SOA_LAB\lab5_dest\a" $watcher = New-Object System.IO.FileSystemWatcher $watcher.Path = $directoryPath $watcher.IncludeSubdirectories = $false $watcher.EnableRaisingEvents = $true Register-ObjectEvent $watcher Created -SourceIdentifier FileCreated -Action { $fileName = $Event.SourceEventArgs.Name Write-Host "A fost adăugat fișierul $fileName." } Register-ObjectEvent $watcher Deleted -SourceIdentifier FileDeleted -Action { $fileName = $Event.SourceEventArgs.Name Write-Host "A fost șters fișierul $fileName." } 17. Scrieți un script PowerShell care să caute și să înlocuiască un șir de caractere dat ca parametru într-un fișier de tip text. $path="D:\TI-AN3_SEM2\SOA_LAB\lab5_dest\a\a.txt" $SearchString="mere" $ReplaceString="pere" Get-Content -Path $path (Get-Content -Path $path) | ForEach-Object {$_ -Replace $SearchString, $ReplaceString} | Set-Content -Path $path Get-Content -Path $path 18. Scrieți un script PowerShell care să afișeze toate serviciile care rulează pe un sistem și să le ordoneze după starea lor (pornit/oprit). Get-Service | Sort-Object -Property Status 19. Scrieți un script PowerShell care să afișeze informații despre dispozitivele conectate la un sistem, inclusiv numele dispozitivului, tipul și adresa MAC. Get-NetAdapter | Select-Object Name, InterfaceDescription, MacAddress 20. Scrieți un script PowerShell care să descarce toate fișierele dintr-un director FTP și să le salveze într-un director local. # Setăm variabilele pentru serverul FTP și directorul de pe server de unde dorim să descărcăm fișierele $ftpServer = "ftp://example.com" $remoteDirectory = "/path/to/remote/directory" # Setăm variabilele pentru directorul local unde dorim să salvăm fișierele descărcate $localDirectory = "D:\TI-AN3_SEM2\SOA_LAB\lab5_dest\a" # Obținem lista de fișiere de pe serverul FTP $files = Invoke-WebRequest -Uri "$ftpServer$remoteDirectory" -Credential (GetCredential) -UseBinaryTransfer -Method ListDirectory # Parsăm lista de fișiere pentru a obține numele lor și descărcăm fiecare fișier în directorul local foreach ($file in ($files.Content -split "`n" | Select-Object -Skip 1)) { $fileName = $file.Trim() $localFile = Join-Path $localDirectory $fileName $remoteFile = "$ftpServer$remoteDirectory/$fileName" Invoke-WebRequest -Uri $remoteFile -Credential (Get-Credential) -UseBinaryTransfer -OutFile $localFile }