Difference between revisions of "Windows7:Powershell"
From Aino Wiki
(→Il linguaggio) |
(No difference)
|
Latest revision as of 18:30, 20 October 2022
Cos'è
E' l'evoluzione degli script DOS (da prompt comandi), ha come icona >_
Come si usa
Alcune funzioni son possibili SOLO se PowerShell è avviato in modalità Amministratore.
Per eseguire uno script innanzitutto occorre abilitare la policy e successivamente dopo essere andati sulla cartella dov'è il file di script basta scrivere il nome del file preceduto da .\
seguito da INVIO.
Per eseguire uno script PowerShell da Promt di DOS:
> powershell -noexit "& ""C:\pathX\mio_script.ps1""" (enter)
Abilitazione esecuzione script
Avviare powerShell come amministratore ed eseguire:
> set-executionpolicy remotesigned
Provare anche
> Set-ExecutionPolicy Unrestricted
Il linguaggio
Comandi
# Stampare a video: Write-Output "Prova scrittura"
- Scrittura in output: Write-Output
Tips
Script utili
Creazione nuovo user di windows
Allo scopo di consentire verifiche sulla VM dove è installato il collector NDC si potrà eseguire il seguente script powershellper creare l'utente \ account TempNDC.
$Computer = [ADSI]"WinNT://$Env:COMPUTERNAME,Computer" $NewUser = $Computer.Create("User", "TempNDC") $NewUser.SetPassword('Pass.word$1') $NewUser.SetInfo() $NewUser.FullName = "Temporary NDC User" $NewUser.SetInfo() $NewUser.UserFlags = 65536 # code for Password does not expire $NewUser.SetInfo() $objGroup = [ADSI]("WinNT://$Env:COMPUTERNAME/Remote Desktop Users") $objGroup.PSBase.Invoke("Add",$NewUser.PSBase.Path)
è sufficiente copiare e riversare lo script in una finestra powerscript MA CON I DIRITTI DI AMMINISTRATORE.
Per verificare se la creazione è andata bene:
Get-WmiObject -Class Win32_UserAccount -Filter "LocalAccount='True'"
Scansioni IP
Serve trovare un IP di una macchina raggiungibile, abbiamo tutto tranne una parte dell'IP questa parte variabile è un numero che va da 0 a 255. Il seguente script esegue comandi cambiando il numero variabile e solo quando il comando non da errore allora lo stampa a video.Il pattern è: 10.110.$i.67
la parte variabile è quella nella variabile $i. Il comando eseguito ciclicamente è 'Test-Connection' dove -Count 1 serve a fare eseguire un solo tentativo al comando 'pingging'.
for($i=0; $i -le 255; $i++) { $conn = Test-Connection -Count 1 "10.110.$i.67" -ea silentlycontinue; if ($conn) { Write-Host "Found reachable IP: 10.110.$i.67"; } }
Installazione di componenti windows
Per installare Telnet:
DISM /online /enable-feature /featurename:TelnetClient
Download di un file zip e scompattamaneto
$dir = "D:\KT\Tools\" $var = "EnginePortTest.v2.zip" function md_t { if(-Not(Test-Path($args[0]))){ md($args[0]); } } md_t($dir) if(-Not(Test-Path($dir + $var))){ echo "Downloading file..." (New-Object System.Net.WebClient).DownloadFile("http://10.65.220.106:30000/DownloadedByShips/" + $var,$dir + $var) }else{ echo "File already downloaded." } if($var.EndsWith(".zip")){ md_t($dir + $var + "_extracted") if(-Not (Test-Path($dir + $var + "_extracted\*.*"))){ echo "Extracting zip" $shell = New-Object -ComObject shell.application $zip = $shell.NameSpace($dir + $var) foreach ($item in $zip.items()) { $shell.Namespace($dir + $var + "_extracted").CopyHere($item) } } explorer ($dir + $var + "_extracted") } else { explorer $dir }
Cambiare attributi a files
Per cambiare la data di creazione del file ciccio.txt
$(Get-Item ciccio.txt).creationtime=$(Get-Date "12/20/1971 07:00 am")
Per cambiare la data di modifica del file ciccio.txt
$(Get-Item ciccio.txt).writetime=$(Get-Date "12/20/1971 07:00 am")
Cancellazione ricorsiva
Cancella a partire dalla cartella indicata tutti i files più vecchi di 60 giorni e con estensione *.log
# target path $TargetPath = "D:\Job_Log\" # files to delete more than 5 days $Days = 60 # extension of the file to delete $Extension = "*.log" $CurrentDate = Get-Date $LastWrite = $CurrentDate.AddDays(-$days) # Get files based on lastwrite filter in the specified folder $FilesToDeletes = Get-Childitem $targetpath -Include $Extension -Recurse | Where {$_.LastWriteTime -le "$LastWrite"} foreach ($File in $FilesToDeletes) { if ($File -ne $NULL) { Remove-Item $File.FullName | out-null } }
Mappa e Link
Windows 7 | Script Tips | applicazioni eseguirli da prompt
Parole chiave: IP scan, Port scan