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
}