Uploaded by Maria Maria

Scripturi PowerShell pentru gestionarea fișierelor și sistemului

advertisement
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
}
Download