Popular Posts
-
SSL/TLS Diffie-Hellman Modulus <= 1024 Bits (Logjam) Configure the following registry and restart the server [HKEY_LOCAL_MACHINE\SYSTEM\C...
-
1) Issue: { "msg": "basic: the specified credentials were rejected by the server", "unreachable...
-
Issue: After installing SCCM 2007 client, the computer is unable to download Actions and components. checking C:\Windows\SysWOW64\CCM\Logs\C...
Monday, August 31, 2020
Extending a disk on a window system using PowerShell and PowerCLI
Identify the correct disk to extend on OS
param(
[string]$drivename #ex: C or D
$percentage = 1.1
)
try{
$moddrivename = $drivename + ":"
$extendnumber = [math]::Round(((Get-WmiObject -Class Win32_LogicalDisk | where DeviceID -like $moddrivename | select -ExpandProperty Size) /1TB)*$percentage)
if ($extendnumber -ge 2) {
return "2TBDisk"
}
$searchstring = '\\' +$env:computername+ '\root\cimv2:Win32_LogicalDisk.DeviceID="' +$drivename+ ':"'
$disknumberlong = Get-WmiObject -Class Win32_LogicalDiskToPartition | where Dependent -Like $searchstring | select -ExpandProperty Antecedent
$disknumberlong -match 'Disk #(\d+)' | out-null
$disknumber = $matches[0].split('#')[1]
return $disknumber
} catch {
throw
}
Extending VM disk
param(
[String]$serverfqdn,
[String]$disknumber, #passed from the previous script
[double]$percentage=1.1 #percentage at which the disk should be extended by
)
Get-Module -Name VMware* -ListAvailable | Import-Module #call PowerCLI module
$vcusername = ''
$vcpassword = ''
$hostname = $serverfqdn.split(".")[0]
if ($hostname -like 'some naming convention') {
$vcservers = @("vc1","vc2")
foreach ($vc in $vcservers) {
Connect-VIServer -Server $vc -User $vcusername -Password $vcpassword
if ($vm = Get-VM $hostname) {
$correctvc = $vc
break
}
else {
Disconnect-VIServer -Server $vc -Confirm:$false
continue
}
}
} elseif ($hostname -like 'some naming convention 2') {
$vcservers = @("vc3","vc4")
foreach ($vc in $vcservers) {
Connect-VIServer -Server $vc -User $vcusername -Password $vcpassword
if ($vm = Get-VM $hostname) {
$correctvc = $vc
break
}
else {
Disconnect-VIServer -Server $vc -Confirm:$false
continue
}
}
}
$SCSI = '0:'+$disknumber
#heres the tricky part, pass each disk on the VM to get-scsicontroller which returns it's respective busnumber and unit number. Then get the disk name by filtering the result using the $SCSI variable.
$diskname = Get-VM $hostname | Get-HardDisk | Select @{N='VM';E={$_.Parent.Name}},Name,@{N='Node';E={'{0}:{1}' -f ((Get-ScsiController -HardDisk $_).ExtensionData.BusNumber),$_.ExtensionData.UnitNumber}} | where Node-like $SCSI | select Name -ExpandProperty Name
$disksize = Get-HardDisk -VM $hostname | where {$_.Name -eq $diskname} | select -ExpandProperty CapacityGB
$newdisksize = $disksize*$percentage
Write-Host $newdisksize
Get-HardDisk -VM $hostname | where {$_.Name -eq $diskname} | Set-HardDisk -CapacityGB $newdisksize -confirm:$false
Disconnect-VIServer -Server $correctvc -Confirm:$false
Extending disk on OS
param(
[string]$drivename,
[double]$percentage=0.1
)
try{
"RESCAN" | diskpart
$moddrivename = $drivename + ":"
$extendnumber = [math]::Round(((Get-WmiObject -Class Win32_LogicalDisk | where DeviceID -like $moddrivename | select -ExpandProperty Size) /1MB)*$percentage)
write-host $extendnumber
$searchstring = '\\' +$env:computername+ '\root\cimv2:Win32_LogicalDisk.DeviceID="' +$drivename+ ':"'
$disknumberlong = Get-WmiObject -Class Win32_LogicalDiskToPartition | where Dependent -Like $searchstring | select -ExpandProperty Antecedent
$disknumberlong -match 'Disk #(\d)'
$disknumber = $matches[0].split('#')[1]
$string1 = "select disk " + $disknumber
$string2 = "select volume " + $drivename
$string3 = "extend size=" + $extendnumber
$commands = @(
$string1,
$string2,
$string3
)
$commands | diskpart
Write-Host "Disk extension on OS layer completed"
exit 0
} catch {
Write-Host "Disk extension on OS layer failed"
exit -1
}
Thursday, August 20, 2020
Common SSL/TLS vulnerability fixes
SSL/TLS Diffie-Hellman Modulus <= 1024 Bits (Logjam)
Configure the following registry and restart the server
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms\Diffie-Hellman]
"ServerMinKeyBitLength"=dword:00000800
Transport Layer Security (TLS) Protocol CRIME Vulnerability - Splunkd port 8089
Change allowSslCompression = true to false and restart splunkforwarder service
C:\Program Files\SplunkUniversalForwarder\etc\system\default>more server.conf | findstr allowSslCompression
allowSslCompression = false
SSL/TLS Diffie-Hellman Modulus <= 1024 Bits (Logjam)
Add the following line in sshd_config and restart sshd service
# Ciphers and keying
Thursday, August 13, 2020
Shutdown and Startup VMs using PowerCLI
Shutdown
param (
[Parameter(Mandatory=$true)]
$serverslistfile
)
function writetolog([string] $txt) {
$Stamp = (Get-Date).toString("yyyy/MM/dd HH:mm:ss")
Add-content $logfile -value $Stamp':'$txt
}
$vCenter = 'vcentername'
$logfile = 'C:\Windows\Temp\DR_ShutdownVMs.log'
$serverslist = Get-Content $serverslistfile
Write-host "############################## ABC company DR activity - Shutdown VMs ##############################"
writetolog("############################## ABC company DR activity - Shutdown VMs ##############################")
Write-Host "vCenter server selected : "$vCenter
writetolog("vCenter server selected : " + $vCenter)
Write-Host "Servers list selected : "
writetolog("Servers list selected : ")
$serverslist | ForEach-Object { Write-Host $_ ; writetolog($_) }
$Confirm = Read-Host "Please type 'ok' to confirm selection is correct"
if($Confirm -eq 'ok') {
writetolog("Proceed: OK by $env:UserName")
try{
Connect-VIServer $vCenter
Write-Host "Successfully connected to $vCenter vCenter"
writetolog("Successfully connected to $vCenter vCenter")
} catch {
Write-Host "Cannot connect to $vCenter vCenter, Exiting Program"
writetolog("Cannot connect to $vCenter vCenter, Exiting Program")
exit -1
}
$serverslist | foreach-object {
if((Get-VM $_ | select -ExpandProperty PowerState) -eq "PoweredOn") {
try {
shutdown-vmguest $_ -Confirm:$false | Out-Null
Write-Host $_ "Shutdown-ed"
writetolog($_ + " Shutdown-ed")
} catch{
Write-host $_ "Error"
writetolog($_ + " Error Shutting down")
}
} else {
Write-host $_ "Already Powered Down"
writetolog($_ + " Already Powered Down")
}
}
Disconnect-VIServer $vCenter -Confirm:$false
Write-Host "Successfully disconnected from $vCenter vCenter"
writetolog("Successfully disconnected from $vCenter vCenter")
} else {
exit
}
Startup
param (
[Parameter(Mandatory=$true)]
$serverslistfile
)
function writetolog([string] $txt) {
$Stamp = (Get-Date).toString("yyyy/MM/dd HH:mm:ss")
Add-content $logfile -value $Stamp':'$txt
}
$vCenter = 'vcentername'
$logfile = 'C:\Windows\Temp\DR_PowerOnVMs.log'
$serverslist = Get-Content $serverslistfile
Write-host "############################## ABC company R activity - Power On VMs ##############################"
writetolog("############################## ABC company DR activity - Power On VMs ##############################")
Write-Host "vCenter server selected : "$vCenter
writetolog("vCenter server selected : " + $vCenter)
Write-Host "Servers list selected : "
writetolog("Servers list selected : ")
$serverslist | ForEach-Object { Write-Host $_ ; writetolog($_) }
$Confirm = Read-Host "Please type 'ok' to confirm selection is correct"
if($Confirm -eq 'ok') {
writetolog("Proceed: OK by $env:UserName")
try{
Connect-VIServer $vCenter
Write-Host "Successfully connected to $vCenter vCenter"
writetolog("Successfully connected to $vCenter vCenter")
} catch {
Write-Host "Cannot connect to $vCenter vCenter, Exiting Program"
writetolog("Cannot connect to $vCenter vCenter, Exiting Program")
exit -1
}
$serverslist | foreach-object {
if((Get-VM $_ | select -ExpandProperty PowerState) -eq "PoweredOff") {
try {
Start-VM $_ -Confirm:$false | out-null
Write-Host $_ "Powered On"
writetolog($_ + " Powered On")
} catch{
Write-host $_ "Error"
writetolog($_ + " Error Powering On")
}
} else {
Write-host $_ "Already Powered On"
writetolog($_ + " Already Powered On")
}
}
Disconnect-VIServer $vCenter -Confirm:$false
Write-Host "Successfully disconnected from $vCenter vCenter"
writetolog("Successfully disconnected from $vCenter vCenter")
} else {
exit
}
Subscribe to:
Posts (Atom)