Create AD users from a CSV-file

Here is an example of a script to create AD users from a CSV-file and assign a temoporary password.

param
(
	[parameter(Mandatory = $true)]
	$infile,
	$output
)

$OU = "OU=Users,DC=PSLABB,Dc=local"

$users = Import-Csv -Path $infile


foreach ($user in $users)
{
	$rand = Get-Random -Minimum 1000 -Maximum 9999
	$pwd = "Temp$rand"
	$name = "$($user.givenname)" + " " + $($user.surname)
	
	New-ADUser -Name $name -GivenName $user.Givenname -Surname $user.Surname -SamAccountName $user.username -user $user.username -Description "Tempuser" -path $ou -enabled $true -AccountPassword (convertTo-securestring -AsPlainText "Temp$rand" -Force)
	
	$details = @{
		'Name'= $name;
		'username'  = $($user.username);
		'Password'     = $pwd
	}
	$results = New-Object PSObject -Property $details
	$results | Export-Csv -Path $output -NoTypeInformation -Append
	
}

OP5 plugin example in powershell

If you want to monitor your windows server uptime in OP5. Run from NSClient++ on all hosts you want to monitor uptime on.

param
(
	[parameter(Mandatory = $true)]
	[int]$w,
	[parameter(Mandatory = $true)]
	[int]$c
)
function Get-Uptime
{
	$os = Get-WmiObject win32_operatingsystem
	$uptime = (Get-Date) - ($os.ConvertToDateTime($os.lastbootuptime))
	return $Uptime
}
$os = Get-CimInstance Win32_OperatingSystem | Select-Object  Caption | ForEach{ $_.Caption }
$uptime = Get-Uptime

if ( $uptime.Days -gt $c)
{
	Write-Host Write-Host "CRITICAL Uptime:" $Uptime.Days "days"
	exit 2

}
if ($uptime.Days -gt $w)
{
	Write-Host Write-Host "WARNING Uptime:" $Uptime.Days "days"
	exit 1

}
if ($uptime.Days -lt $w)
{
	Write-Host "OK" $Uptime.Days "days uptime"
	Write-Host "OS: $os"
	exit 0
}