Skip to content

Instantly share code, notes, and snippets.

View mccbryan3's full-sized avatar
Working from home

Bryan McClellan mccbryan3

Working from home
View GitHub Profile
Class: UniformKeys
Class Summary: This Class is used to make key values
uniform and requires a list of dictionaries
Author: Bryan McClellan
Created: 6/22/2021
mccbryan3 / create-dhcp-dns-for-vms.ps1
Last active September 16, 2020 13:31
Creates AD integrated DNS and DHCP records for vCenter based VMs. Uses runtime creds and assumes that DNS and DHCP are on the same server. Wild cards can be used for esx_vm_names.
param (
mccbryan3 / calm-unattend.xml
Created July 22, 2020 01:15
Nutanix Calm unattend.xml file for windows server with macros
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="windowsPE">
<component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="" xmlns:xsi="">
kind: ClusterRoleBinding
name: psp:vmware-system-privileged
kind: ClusterRole
name: psp:vmware-system-privileged
- kind: ServiceAccount
mccbryan3 / vro-get.vm-and-sdk-vm-name-exact.js
Last active May 16, 2020 18:49
This will take a VM input and search all vcenters added to vro and load the VC:Vm and VC:SdkConnection into output variables
var reg = new RegExp("^"+ strVmName + "$", 'ig');
for each(vm in VcPlugin.getAllVirtualMachines(null,"xpath:name='" + strVmName + "'")) {
if( {
vcenterSdk = vm.sdkConnection
vmOut = vm
mccbryan3 / format-svc-output-csv
Last active May 14, 2020 19:18
Take the SVC unformatted output for host to vdisk and use a name,capacity,FC_id vdisk list in anothe file to build the report.
$basepath = 'C:\Storage-Migration'
$content = gc "$basepath\mc\mcsvc01vdisks.txt"
gc "$basepath\mc\mcsvc01vdisksbyhost.txt" | %{
$line = $_
if($line -match "^\d+") {
$match = [regex]::Matches($line, "\S*(?>\s+)")
$vol_match = $content | sls -Pattern $(($match[4].value).Trim())
if($match) {
$vol_size = [regex]::Match($vol_match,'(?<=,)[\w\.\w]+(?=,[m\d])')
mccbryan3 / find-vmhost-lun-no-datastore.ps1
Last active May 12, 2020 14:38
This script will locate all luns on hosts that are not currently datastores and set output
$luns = get-vmhost | Get-Datastore | Get-ScsiLun -ErrorAction SilentlyContinue
# $luns.CanonicalName
} catch {
"Error getting lun info for one or more luns"
$array = @()
Get-VMHost | Get-ScsiLun | ?{$_.CanonicalName -notlike "mpx.*"} | %{
if(($luns.CanonicalName -notcontains $_.CanonicalName) -and ($array -notcontains $_.CanonicalName)) {
$array += $_.CanonicalName
curl -o rhcos-4.2.0-x86_64-vmware.ova
govc import.ova -name=rhcos-4.2.0-x86_64-vmware ./rhcos-4.2.0-x86_64-vmware.ova
export GOVC_URL='vsphere.server.local
export GOVC_USERNAME='admin@vsphere.local'
export GOVC_PASSWORD='password
mccbryan3 /
Last active February 25, 2020 12:18
Dynamic inventory script for Ansible using the OME API to find device Type of 1000
#!/usr/bin/env python
# Copyright: (c) 2018, Keiran Steele
# GNU General Public License v3.0+ (see COPYING or
import os
import sys
import argparse
arr_groups = new Array()
System.log("Running active Directory Search")
var groups ="UserGroup", nameStartsWith)
var arr_ExceptionList = exceptionList.split(",")
for (var i in groups) {
if(arr_ExceptionList.indexOf(groups[i].name) == -1) {