private/Setting.ps1
# OK function New-LocalAdmin { [CmdletBinding()] param ( [Parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()] [psobject]$Args ) if (Get-LocalUser -Name $Args.NewLocalAdmin) { Write-Verbose -Message "User already exist, reseting the password..." Get-LocalUser -Name $Args.NewLocalAdmin | Set-LocalUser -Password (ConvertTo-SecureString -AsPlainText $Args.Password -Force) } else { New-LocalUser -Name $Args.NewLocalAdmin -Password (ConvertTo-SecureString -AsPlainText $Args.Password -Force) -FullName $Args.NewLocalAdmin -Description "Ami-User" Write-Verbose -Message "$($Args.NewLocalAdmin) local user created" } if ([bool]((Get-LocalGroupMember -Group "Administrateurs").Name -like ("*$($Args.NewLocalAdmin)*"))) { Write-Verbose -Message "$($Args.NewLocalAdmin) added to the local administrator group" } else { Write-Verbose -Message "$($Args.NewLocalAdmin) is already in administrator group" Add-LocalGroupMember -Group "Administrateurs" -Member $Args.NewLocalAdmin } } function Set-ConfigMode { [CmdletBinding( SupportsShouldProcess = $true )] param ( [Parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()] [psobject]$Args ) if ($Args.Statut -eq $true) { netsh advfirewall set allprofiles state off Enable-WSManCredSSP -Role server } elseif ($Args.Statut -eq $False) { netsh advfirewall set allprofiles state on Disable-WSManCredSSP -Role server } } function Set-Accessibility { [CmdletBinding( SupportsShouldProcess = $true )] param ( [Parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()] [psobject]$Args ) if ($Args.Statut -eq $true) { Enable-PSRemoting -Force winrm quickconfig -q Start-Service WinRM Set-Service WinRM -StartupType Automatic } elseif ($Args.Statut -eq $false) { Disable-PSRemoting -Force Stop-Service WinRM -Force Set-Service WinRM -StartupType Disabled } } function Set-RdpAccess { [CmdletBinding( SupportsShouldProcess = $true )] param ( [Parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()] [psobject]$Args ) if ($Args.Statut -eq $true) { Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server'-name "fDenyTSConnections" -Value 0 Enable-NetFirewallRule -DisplayGroup $FirewallGroup Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -name "UserAuthentication" -Value 1 } elseif ($Args.Statut -eq $false) { Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server'-name "fDenyTSConnections" -Value 1 Disable-NetFirewallRule -DisplayGroup $FirewallGroup } } # OK function Set-ComputerName { [CmdletBinding( SupportsShouldProcess = $true )] param ( [Parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()] [psobject]$Args ) Rename-Computer -NewName $Args.NewName } function Set-WindowsActivation { [CmdletBinding( SupportsShouldProcess = $true )] param ( [Parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()] [psobject]$Args ) Slmgr -ipk $Args.WinKey Slmgr -ato Get-CimInstance SoftwareLicensingProduct -Filter "Name like 'Windows%'" | where { $_.PartialProductKey } | select Description, LicenseStatus } function Set-DiskStorage { [CmdletBinding( SupportsShouldProcess = $true )] param ( [Parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()] [psobject]$Args ) Initialize-Disk $Args.DiskNumber New-Partition -DiskNumber $Args.DiskNumber -UseMaximumSize -DriveLetter $Args.DriveLetter Format-Volume -DriveLetter $Args.DriveLetter Set-Volume -DriveLetter $Args.DriveLetter -NewFileSystemLabel $Args.DriveLabel } function Set-Network { param ( [Parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()] [psobject]$Args ) if ($Args.IPAddress) { New-NetIPAddress -InterfaceIndex $Args.InterfaceIndex -IPAddress $Args.IPAddress -PrefixLength $Args.PrefixLength -DefaultGateway $Args.DefaultGateway } elseif ($Args.Dns) { Set-DnsClientServerAddress -InterfaceIndex $Args.InterfaceIndex -ServerAddress $Args.Dns } } function Install-Printer { param ( [Parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()] [psobject]$Args ) $Port = "IP_" + $Args.IPAddress $checkExist = Get-PrinterPort -Name $Port -ErrorAction SilentlyContinue if ($Args.DriverName -and ![bool]((Get-PrinterDriver).Name -match $Args.DriverName)) { pnputil.exe /a $Args.DriverInfPath Add-PrinterDriver -Name $Args.DriverName -InfPath $Args.DriverInfPath Write-Verbose -Message "$($Args.DriverName) driver installed" } if (-not $checkExist) { Add-PrinterPort -Name $Port -PrinterHostAddress $Args.IPAddress Write-Verbose -Message "$($Args.PrinterName) and $Port port created" } if ([bool]((Get-PrinterDriver).Name -match $Args.DriverName)) { Add-Printer -Name $Args.PrinterName -DriverName $Args.DriverName -PortName $Port } } function Add-ComputerDomain { param ( [Parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()] [psobject]$Args ) Add-Computer -DomainName $Args.DomaineName -DomainCredential $Args.Credential -force -verbose -NoRestart } function Set-RegKey { param ( [Parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()] [psobject]$Args ) if ($Args.Param -and $Args.Value) { New-ItemProperty -Path $Args.path\$Args.key -Name $Args.Param -Value $Args.Value -PropertyType DWORD -Force } else { New-Item -Path $Args.Path -Name $Args.Key -Force } } |