Passer au contenu principal

Collection de fonctions

<#	
	.NOTES
	===========================================================================
	 Created on:   	24/06/2020 12:00
	 Created by:   	LeNuageux
	 Organization: 	LeNuageux
	 Filename:     	Collection_fonctions.ps1
	===========================================================================
	.DESCRIPTION
		Contient des fonctions pouvant être utilisé dans des scripts
#>

#################################################################################
# 								Bloc Inventaire Poste
#################################################################################

function Get-Running-Services()
{
	# - Recupère la liste des services en cours d'execution sur le poste
	$Running_Services = Get-Service | Where-Object {$_.Status -eq "Running"} | Select-Object -Property "Name" , "Status"
	Write-Output $Running_Services
}


function Get-Last-Error()
{
	# - Récupère les 10 dernières erreurs systèmes
	$Last_Error = Get-Eventlog System | where-Object {$_.EntryType -eq "Error"} | Select-Object timegenerated, source, eventid, message | Select-Object -first 10
	Write-Output $Last-Error
}


function Get-ComputerInfo-Sorted()

{
	# - Récupère les informations du système
	$ComputerInfo = Get-ComputerInfo | Select-Object -Property "CsModel","WindowsVersion","OsInstallDate","CsProcessors","CsPhyicallyInstalledMemory"
	Write-Output $ComputerInfo
}

function Get-Installed-Apps()
{
	# - Récupere la liste des programmes installé (exclusions des packages de mise à jours, )
	$Apps = Get-Package -ProviderName "programs"
}


#################################################################################
# 								Bloc Gestion Réseau
#################################################################################

function Get-IP4()
{
	# Récupère une IP en variable
	# On selectionne l'interface qui à un accès à l'exterieur
	$ip4 = $(Get-NetIPConfiguration | Where-Object { $_.NetProfile.IPv4Connectivity -eq 'Internet' }).IPV4Address[0].IPAddress
	# Alternative : On selectionne l'interface qui à une adresse IP commencant par 10.* via DHCP 
	#$ip4 = (Get-NetIPAddress -AddressFamily "ipv4" -AddressState "Preferred" -SuffixOrigin "dhcp" -IPAddress "10.*").IpAddress
	Write-Host "IP machine: $ip4"
}

function Get-NetworkSpeed()
{
	# Recupère la syncronisation du réseau
	$Index_Network_Interface = $(Get-NetIPConfiguration | Where-Object { $_.NetProfile.IPv4Connectivity -eq 'Internet' }).InterfaceIndex
	Get-NetAdapter -InterfaceIndex $Index_Network_Interface| Select-Object "Name","MacAddress","LinkSpeed"
}

function Get-NetworkSpeed-DHCP()
{
	# Recupère la syncronisation du réseau
	$Index_Network_Interface_DHCP = (Get-NetIPAddress -AddressFamily "ipv4" -AddressState "Preferred" -SuffixOrigin "dhcp").InterfaceIndex
	Get-NetAdapter -InterfaceIndex $Index_Network_Interface_DHCP | Select-Object "Name","MacAddress","LinkSpeed"
}

function Get-MacAddress()
{
	# Récupère l'adresse MAC de la carte réseau ayant une connectivité vers internet
	$Index_Network_Interface = $(Get-NetIPConfiguration | Where-Object { $_.NetProfile.IPv4Connectivity -eq 'Internet' }).InterfaceIndex
	$MAC = Get-NetAdapter -InterfaceIndex $Index_Network_Interface | Select-Object -ExpandProperty "MacAddress"
}

function Get-MacAddress-DHCP()
{
	# Récupère l'adresse MAC de la carte réseau ayant une Ipv4 via DHCP
	$Index_Network_Interface_DHCP = (Get-NetIPAddress -AddressFamily "ipv4" -AddressState "Preferred" -SuffixOrigin "dhcp").InterfaceIndex
	$MAC_DHCP = Get-NetAdapter -InterfaceIndex $Index_Network_Interface_DHCP | Select-Object -ExpandProperty "MacAddress"
}


function Ping-Host ($PingIP)
{
	if (Test-Connection -ComputerName $PingIP -Quiet)
	{
		Write-Host "la machine $PingIP est disponible"
	}
	else 
	{
		Write-Host "La machine $PingIP ne répond pas"
	}

}

function Get-DNSName($IP4)
{
	$NomPC_DNS = Resolve-DnsName -Name $IP4 | Select-Object -ExpandProperty "NameHost"
	if ($NomPC_DNS -like "IUTM*")
	{
		Write-Output "le nom DNS du poste est $NomPC_DNS"
	}
	else
	{
		Write-Output "Attention le Nom du poste est pas bon"
	}

}

function Mount-Share ($SRV_Partage,$Utilisateur_Partage,$MDP_Partage)
{
	Get-id $Utilisateur_Partage $MDP_Partage
	if (Test-Connection -ComputerName $SRV_Partage -Quiet) 
	{
		New-PSDrive  -Name "Z" -Root "\\$SRV_Partage\Logiciels" -PSProvider "FileSystem" -Credential $Identifiants
	}
}


#################################################################################
#							Bloc gestion logicielle
#################################################################################

function Install-AntiVirus ($EmplacementAV,$Parametre)
{
	Start-Process -Wait -Filepath $EmplacementAV -ArgumentList "$Parametre"
	Write-host "Anti-Virus Installé" -foreground "Green"
}

#################################################################################
#								Bloc Gestion AD
#################################################################################


function Join-AD($Nom_PC,$Nom_Dom,$Utilisateur_Dom,$MDP_Dom)
{
	# On met en variable les identifiant AD
	$MDP_Dom_Securise = $MDP_Dom | ConvertTo-SecureString -AsPlainText -Force
	$Identifiant_Dom = New-Object System.Management.Automation.PSCredential -ArgumentList $Utilisateur_Dom, $MDP_Dom_Securise
	
	# Ajout du pc au domaine
	Add-Computer -DomainName $Nom_Dom -Credential $Identifiant_Dom -OUPath $OU -NewName $Nom_PC -Force
}