Upload files to "/"
This commit is contained in:
parent
cc7fbda418
commit
581eb856e9
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
old/
|
||||||
|
test/
|
2
Install-updates.ps1
Normal file
2
Install-updates.ps1
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Install-WindowsUpdate -MicrosoftUpdate -AcceptAll -AutoReboot
|
||||||
|
shutdown.exe -r -t 0
|
37
No-updates.ps1
Normal file
37
No-updates.ps1
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
#Load variables
|
||||||
|
. "C:\scripts\automatic-updates-static\Variables.ps1"
|
||||||
|
|
||||||
|
#set-location C:\scripts\automatic-updates\
|
||||||
|
$KeyPath = "c:\scripts\automatic-updates-static\"
|
||||||
|
|
||||||
|
#function to get credentials from a Saved file
|
||||||
|
Function Get-SavedCredential([string]$UserName,[string]$KeyPath)
|
||||||
|
{
|
||||||
|
If(Test-Path "$($KeyPath)\$($Username).cred") {
|
||||||
|
$SecureString = Get-Content "$($KeyPath)\$($Username).cred" | ConvertTo-SecureString
|
||||||
|
$Credential = New-Object System.Management.Automation.PSCredential -ArgumentList $Username, $SecureString
|
||||||
|
}
|
||||||
|
Else {
|
||||||
|
Throw "Unable to locate a credential for $($Username)"
|
||||||
|
}
|
||||||
|
Return $Credential
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#Get encrypted password from the file
|
||||||
|
$cred = Get-SavedCredential -UserName $mailusername -KeyPath "c:\scripts\automatic-updates-static"
|
||||||
|
#Get FQDN for subject
|
||||||
|
$myFQDN =(Get-WmiObject win32_computersystem).DNSHostName+"."+(Get-WmiObject win32_computersystem).Domain ; Write-Host $myFQDN
|
||||||
|
#$cred = Get-Credential backup@fourit.nl
|
||||||
|
$mailprops = @{
|
||||||
|
To = $mailto
|
||||||
|
From = $mailfrom
|
||||||
|
Subject = $myFQDN
|
||||||
|
Port = 587
|
||||||
|
SmtpServer = $smtpserver
|
||||||
|
Credential = $cred
|
||||||
|
UseSsl = $true
|
||||||
|
BodyAsHtml = $true
|
||||||
|
}
|
||||||
|
$htmlBody = 'There are no updates available'
|
||||||
|
Send-MailMessage @mailprops -body $htmlBody
|
23
README.md
Normal file
23
README.md
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# Automatic Updates
|
||||||
|
|
||||||
|
Mail available updates and install updates
|
||||||
|
|
||||||
|
Create folder c:\scripts\automatic-updates. Place there the files.<br>
|
||||||
|
Run the script setup.ps1. If needed run Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass to allow unsigned script
|
||||||
|
|
||||||
|
If required for script variables are stored in c:\Scripts\atuomatic-updates-static\variables.ps1. To use these in script enter next lines:<br>
|
||||||
|
#Load variables<br>
|
||||||
|
. "C:\scripts\automatic-updates-static\Variables.ps1"<br>
|
||||||
|
|
||||||
|
https://gitlab.fourit.cloud/Ivo/automatic-updates-v2/-/archive/main/automatic-updates-v2-main.zip
|
||||||
|
|
||||||
|
ToDo:
|
||||||
|
Mails automatiseren met Power BI
|
||||||
|
Research possibility to update dc first then others. Maybe run from domain controller. Benefit is scripts on one location.
|
||||||
|
https://social.technet.microsoft.com/Forums/en-US/41ad0e87-71f1-4728-a78b-cec7923cefac/run-windows-scheduled-task-on-a-remote-server?forum=winserverpowershell
|
||||||
|
Automatic-Updates-Remote
|
||||||
|
Reboot resume script (werkt niet meer)
|
||||||
|
|
||||||
|
ToDo afgerond:
|
||||||
|
Geen resume script bij geen reboot benodigd
|
||||||
|
Cleanup mails send (create csv file with updates)
|
43
setup.ps1
Normal file
43
setup.ps1
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
#Only run this one time to setup server for automatic updates
|
||||||
|
New-Item -ItemType File -Path C:\Scripts\automatic-updates-static\variables.ps1 -Force
|
||||||
|
Copy-Item C:\Scripts\automatic-updates\variables.ps1 C:\Scripts\automatic-updates-static\variables.ps1
|
||||||
|
New-Item -ItemType File -Path C:\Scripts\automatic-updates-static\updatescript.ps1 -Force
|
||||||
|
Copy-Item C:\Scripts\automatic-updates\updatescript.ps1 C:\Scripts\automatic-updates-static\updatescript.ps1
|
||||||
|
New-Item -ItemType File -Path C:\Scripts\automatic-updates-static\Start-Remote-task-updatescript.ps1.ps1 -Force
|
||||||
|
Copy-Item C:\Scripts\automatic-updates\Start-Remote-task-updatescript.ps1 C:\Scripts\automatic-updates-static\Start-Remote-task-updatescript.ps1
|
||||||
|
#Install required modules
|
||||||
|
C:\scripts\automatic-updates\Run_scripts_onetime\install_module.ps1
|
||||||
|
#Create encrypted password file to be able to send mail
|
||||||
|
Write-Host "Enter password for mail" -ForegroundColor Yellow
|
||||||
|
Write-Host "Press a key to continue" -ForegroundColor Yellow
|
||||||
|
[void][System.Console]::ReadKey($true)
|
||||||
|
C:\scripts\automatic-updates\Run_scripts_onetime\email-password.ps1
|
||||||
|
#Create encrypted password file to create and run tasks
|
||||||
|
Write-Host "Enter username and password of service account" -ForegroundColor Yellow
|
||||||
|
Write-Host "Press a key to continue" -ForegroundColor Yellow
|
||||||
|
[void][System.Console]::ReadKey($true)
|
||||||
|
|
||||||
|
C:\scripts\automatic-updates\Run_scripts_onetime\localpassword.ps1
|
||||||
|
#>
|
||||||
|
$shell = new-object -comobject "WScript.Shell"
|
||||||
|
$result = $shell.popup("Are you running this script from primary domain controller?",0,"Question",4+32)
|
||||||
|
if ($result -eq "6") {
|
||||||
|
Write-Host @"
|
||||||
|
You are running this from the domain controller. You have to create a task manualy on the server.
|
||||||
|
|
||||||
|
Create a task manual with the name "Automatic-Updates"
|
||||||
|
Use as trigger montly on first Thursday.
|
||||||
|
As Actions Start a program. powershell.exe with arguments "-NoProfile -File C:\Scripts\automatic-updates\Automatic-updates.ps1".
|
||||||
|
Use the service account and choose to run whether user is logged on or not.
|
||||||
|
|
||||||
|
Press a key to continue
|
||||||
|
|
||||||
|
"@ -ForegroundColor Yellow
|
||||||
|
[void][System.Console]::ReadKey($true)
|
||||||
|
} else {
|
||||||
|
Write-Host "We will create a task that will not start automaticaly. This will be run from the domain controller." -ForegroundColor Yellow
|
||||||
|
enable-WUremoting
|
||||||
|
C:\scripts\automatic-updates\Run_scripts_onetime\Create-task-remote.ps1
|
||||||
|
C:\scripts\automatic-updates\Run_scripts_onetime\Create-task-updatescript.ps1
|
||||||
|
}
|
||||||
|
Write-Host "The variables.ps1 is copied to c:\scripts\automatic-updates-static. Please edit this file" -ForegroundColor Yellow
|
Loading…
Reference in New Issue
Block a user