Login Login
MORE

WIDGETS

Widgets

Wanted articles
Who is online?
Article tools

Windows7:Powershell

From Aino Wiki

Jump to: navigation, search

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"

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

Author Giuseppe AINO