Make all text in MS Excel 2013 capitalized using a VBA script

first off…
Show the Developer tab
- Click the File tab
- Click Options
- Click Customize Ribbon
- Under Customize the Ribbon and under Main Tabs, select the Developer check box.
….now you have this
excel bar_dev-tab

Create a macro by using VBA
On the Developer tab, in the Code group, click Visual Basic.
If needed, in the Visual Basic Editor, on the Insert menu, click Module.
NOTE Modules are automatically created for all sheets in the workbook.

- In the code window of the module, type or copy the macro code* that you want to use.
- To run the macro from the module window, press F5.
- In the Visual Basic Editor, on the File menu, click Close and Return to Microsoft Excel when you finish writing the macro.

Sub Uppercase()
For Each x In Selection
x.Value = UCase(x.Value)
End Sub

you are awesome!

you are awesome!

Share on Facebook

Tags: , , , , , ,

forticlient webfilter bypass

So this new gig I have has a bunch of clients with the forigate/net product line and I installed the forticlient…I wanted to do quick/simple VPN to work on our customers’ networks. Upon installing I realized I was blocked from certain websites… I was sitting in my car outside the datacenter on the 4g hotspot… ALAS! the vpn client installs a webfilter and defaults rules…with configuration that I cannot change!!!

Found the service and was unable to disable/stop… tried with process explorer and process hacker (google that ish). That didn’t work and something in the background kept starting the software suite. Thought I would be clever and run cmd.exe as the system service via pstools to stop the service(psexec -i -s cmd.exe…sc stop etc.)…. access denied.


Then I realized it’s windows and I WILL HAVE TO REBOOT and change all that crap. ugh… gotta open the 5 million tabs in chrome and get my music right…


  1. Find out what sys file the filter is using (searched in process explorer and found Fortiwf2.sys)
  2. Reboot into safe mode, set the software service to manual and rename Fortiwf2.sys to Fortiwf2.old
  3. Start normally and when I want to vpn , start the service
Share on Facebook

Some useful NetApp Commands

General Commands
setup (Re-Run initial setup)
halt (Reboots controller into bootrom)
reboot (Reboots controller back to Data Ontap)
sysconfig -a (System configuration and information)
java netapp.cmds.jsh (limited freebsd cli)
storage show disk (show physical information about disks)
passwd (Change password for logged in user)
sasadmin shelf (shows a graphical layout of your shelves with occupied disk slots)
options trusted.hosts x.x.x.x or x.x.x.x/nn (hosts that are allowed telnet, http, https and ssh admin access. x.x.x.x = ip address, /nn is network bits)
options trusted.hosts * (Allows all hosts to the above command)
sysstat -s 5 (Displays operating statistics every 5 seconds i.e. CPU, NFS, CIFS, NET, DISK, etc)
reallocate measure /vol/volname (Measure the amount of fragmentation in a volume)
options autologout.console.enable on (Turns on autologout for the console)
options autologout.console.timeout 300 (300 second autologout for the console)
options autologout.telnet.enable on (Turns on autologout for telnet)
options autologout.telnet.timeout 300 (300 second autologout for the console)

Press DEL at boot up during memory test followed by boot_diags and select all (Diagnostic tests for a new install)
priv set diags (Enter diagnostics CLI mode from the Ontap CLI)
priv set (Return to normal CLI mode from diagnostics mode)

software list (Lists software in the /etc/software directory)
software get http://x.x.x.x/ (Copy software from http to software directory)
software delete (Deletes software in the /etc/software directory)
software update -r (Install software. The -r prevents it rebooting afterwards)

Baseboard Management Controller BMC
bmc status (shows the status of the BMC remote management interface)
bmc setup (BMC remote management interface setup)

Service Port SP
sp status (shows the status of the SP remote management interface)
sp setup (SP remote management setup)

ACP (Alternate Control Path)
options acp.enabled on (Turns on ACP)
storage show acp -a (show ACP status)

Root Volume
If you have a 32-bit root volume that you wish to convert to 64-bit, the best way I found is to snapmirror the root volume to a 64-bit aggregate, break the snapmirror, set the new root volume as root, and either failover and failback the filer, or reboot.

aggr create aggregate_name (Creates an Aggregate)
aggr destroy aggregate_name (removes an Aggregate)
aggr offline aggregate_name (takes an Aggregate offline)
aggr online aggregate_name (bring an Aggregate online)
aggr options aggregate_name root (makes an Aggregate root|Only use if your Root Aggregate is damanged)
aggr status (shows status of all aggregates)
aggr status aggregate_name (show status of a specific Aggregate)
aggr status -r aggr0 (shows the root volume on aggr0 and the disk layout)
aggr status -s aggr0 (shows spare disks on aggr0)
aggr status -v aggr0 (MUST BE DONE IN PRIV SET DIAG MODE. Shows more detailed information of the aggregate status)
aggr show_space aggregate_name (shows specific aggregate space information)
aggr options aggregate_name nosnap=on (Disable snapshot autocreation)
aggr options aggregate_name raidsize=x (x being the number of drives in the RAID)
aggr scrub status -v (MUST BE DONE IN PRIV SET DIAG MODE. Shows scrub status of the aggregate)
aggr scrub resume (MUST BE DONE IN PRIV SET DIAG MODE. Resumes a susepended scrub)
aggr scrub suspend (MUST BE DONE IN PRIV SET DIAG MODE. Suspends a current scrub process)
aggr scrub start (MUST BE DONE IN PRIV SET DIAG MODE. Starts a new scrub process)
reallocate start -f -p /vol/volname (Run in priv set advanced, used after adding disks to an aggregate to evenly distribute blocks amongst raid groups)
snap reserve -A aggregate_name 0 (Set Aggregate snap reserve to 0% or any number you enter)
snap list -A aggregate_name (Lists snapshots on specified aggregate)
snap delete -A aggregate_name (Deletes a snapshot on a specified aggregate)
snap sched -A aggregate_name x x x@x,x,x (Creates a snapshot shedule in weeks days hours@time ie 0 2 1@9 means no weekly snaps, 2 daily, 1 hourly @ 9am)

vol create volume_name (Creates a volume)
vol autosize volume_name (Shows autosize settings for a given volume)
vol autosize volume_name on|off (Turns Volume autosize on or off)
vol options volume_name (Lists volume options)
vol size volume_name + size k|m|g|t (increase volume size by KB, MB, GB or TB)
vol status -f (lists broken or failed disks)
vol scrub status -v (Shows the scrubbing status of volumes)
vol options nosnapdir on|off (enables or disables snapshot visibility from the volume or LUN level)

qtree create /vol/volume_name/qtree_name (Create a qtree within a volume)
qtree security /vol/volume_name/qtree_name unix|ntfs|mixed (Change security settings of a qtree)
qtree stats qtree_name (Shows CIFS or NFS ops/sec for a given qtree)
qtree status (Displays all your Qtree’s)

snap create volume_name snapshot_name (create a snapshot)
snap list volume_name (List snapshots for a volume)
snap delete volume_name snapshot_name (delete a snapshot on a volume)
snap delete -a volume_name (Deletes all snapshots for a volume)
snap autodelete volume_name show (Shows snapshot autodelete settings for a volume)
snap restore -s snapshot_name volume_name (Restores a snapshot on the specified volume name)
snap sched volume_name weeks days hours@time (Creates a snapshot schedule on a volume i.e. snap sched volume 4 5 1@07 Weekly Snapshots are created at midnight on each Sunday, Daily snapshots are created each day except Sunday at midnight)
snap delta volume_name (Shows delta changes between snapshots for a given volume)
snap reserve volume_name (Shows the snap reserve for a given volume)
snap reclaimable volume_name snapshot_name (Shows the amount of space reclaimable if you remove this snapshot from the volume)
options cifs.show_snapshot on (Allows snapshot directory to be browse-able via CIFS)
options nfs.hide_snapshot off (Allows snapshot directory to be visible via NFS)

options snapmirror.enable on (turns on SnapMirror. Replace on with off to toggle)
rdfile /etc/snapmirror.allow (Performed on the Source Filer. You should see you destination filers in this file.)
wrfile /etc/snapmirror.allow (Performed on the Source Filer. Overwrites the file with the specified destination filer name and ip address)
vol restrict volume_name (Performed on the Destination. Makes the destination volume read only which must be done for volume based replication. Don’t use for Qtree based replication)
snapmirror initialize -S srcfiler:source_volume dstfiler:destination_volume (Performed on the destination. This is for full volume mirror. For example snapmirror initialize -S filer1:vol1 filer2:vol2)
snapmirror initialize -S srcfiler:/vol/vol1/qtree dstfiler:/vol/vol1/qtree (Performed on the destination. Performs the same as the command above but for Qtree’s only)
snapmirror initialize -S srcfiler/vol/vol1/- dstfiler:/vol/vol1/qtree (Performed on the destination. Performs volume to qtree replication. Includes all luns, exports on the source volume)
snapmirror status (Shows the status of snapmirror and replicated volumes or qtree’s)
snapmirror status -l (Shows much more detail that the command above, i.e. snapshot name, bytes transferred, progress, etc)
snapmirror quiesce volume_name (Performed on Destination. Pauses the SnapMirror Replication. If you are removing the snapmirror relationship this is the first step.)
snapmirror break volume_name (Performed on Destination. Breaks or disengages the SnapMirror Replication. If you are removing the snapmirror relationship this is the second step followed by deleting the snapshot)
snapmirror resync volume_name (Performed on Destination. When data is out of date, for example working off DR site and wanting to resync back to primary, only performed when SnapMirror relationship is broken)
snapmirror update -S srcfiler:volume_name dstfiler:volume_name (Performed on Destination. Forces a new snapshot on the source and performs a replication, only if an initial replication baseline has been already done)
snapmirror release volume_name dstfiler:volume_name (Performed on Destination. Removes a snapmirror destination)
/etc/snapmirror.conf (edit or wrfile this file on the destination filer or vfiler to enter in a snapmirror schedule. i.e. srcfiler:vol1 dstfiler:vol1 – 15 * * * This will replicate every 15 minutes. Each * represents a value. Starting from right to left you have day of week, month, day of month, hour minute. Minute 0-59, hours 0-23, day-of-month 1-31, day-of-week 0 for Sunday – 6 Saturday) Each value can only be a number.)
/vol/vfiler_vol/etc/snapmirror.conf (read or write this file for snapmirror configurations on a vfiler. vfiler_vol being the first volume with the /etc in the vfiler)
“priv set diag” followed by “snapmirror break -h ” followed by “priv set”. (If for some reason you snapmirror relationship has been orphaned, meaning it doesn’t exist in snapmirror status on the source but does exist on the destination, you can use these three commands to force the destination to become read/write. You can then do “snap list” and find the baseline snapshot for the destination. Followed by snap delete of the baseline snapshot. This will remove the snapmirror relationship if all else fails. Lastly don’t forget to remove the entry from snapmirror.conf)

cf enable (enable cluster)
cf disable (disable cluster)
cf takeover (take over resources from other controller)
cf giveback (give back controller resources after a take over)

vFiler – Multistore
vfiler limit (Performed on the host to see what the limit of vfilers is)
vfiler limit 16 (Performed on the host to change the limit of vfilers to 16 or any number you specify. Check the documentation for Memory Requirements before doing this)
vfiler status (Displays the status of the vfiler i.e. running or stopped)
vfiler status -r (On the host system. Shows which volumes are running on each vfiler)
vfiler rename old_vfiler_name new_vfiler_name (Renames a vfiler)
vfiler run vfiler_name setup (Runs the vfiler setup wizard)
vfiler run vfiler_name cifs setup (Runs the cifs setup wizard for a vfiler)
ipspace create ipspacename (Creates an ipspace – needed when 2 or more vfilers use the same network subnets)
ipspace list (Lists the available ipspace’s)
ipspace assign ipspacename interface_name (Assigns the interface to an ipspace.)
ipspace destroy ipspace_name (Removes/Deletes an ipspace)
vfiler create vfiler_name -s ipspace_name -i x.x.x.x /vol/volume_name or qtree_name (Creates a vfiler name with ip address x.x.x.x and assigns the volume or qtree to the vfiler. The -s is optional)NOTE: Creating a qtree as the base vfiler does not allow you to enable snapmirror. You must create the base as a volume!
vfiler add vfiler_name -i x.x.x.x /vol/volume_name (Adds an ip address and additional volume (can be qtree) to an existing vfiler name)
vfiler remove vfiler_name -i x.x.x.x /vol/volume_name (Removes an IP address and volume from an existing vfiler)
vfiler destroy vfiler_name (Deletes/removes a vfiler)
vfiler rename vfiler_name_old vfiler_name_new (Renames a vfiler from old name to new name)
vfiler context vfiler_name (Changes CLI into the context of the vfiler name)
vfiler allow vfiler_name proto=cifs proto=nfs proto=iscsi (Allows the following protocols cifs, nfs and iscsi. Disallows rsh, ssh, ftp and http)
vfiler stop vfiler_name (Stops a vfiler instance)
vfiler start vfiler_name (Starts a vfiler instance)
vfiler run vfiler_name route add default x.x.x.x 1 (Adds a default route to a vfiler. Performed from vfiler0)
route add x.x.x.x/x x.x.x.x 1 (Adds a route in a vfiler)

To add extra vlans to a vfiler you must do the following:
Check the ip space that the vfiler is using by typing ipspace list
Create the vlan interface on the host i.e. vif0-360 for vlan 360
Assign the interface to the ip space of the vfiler i.e. ipspace assign ipspace_name vif0-360
Add the ip address you wish to use on the vlan interface to the vfiler i.e. vfiler add vfiler_name -i
Once the vfiler has this ip address in it’s config we can add it onto the interface i.e. ifconfig vif0-360 netmask

options on (Turns Autosupport on)
options off (Turns Autosupport off)
autosupport.doit “description” (creates an autosupport alert with a user defined description)

Hot Spares
Any functioning disk that is not assigned to an aggregate but is assigned to a controller functions as a hot spare disk
disk show
vol status -r (displays which disks are allocated as spare)

disk show (Show disk information)
disk show -n (Show unowned disks)
disk assign 0d.02.0 -s unowned (Changes ownership from owned to unowned or to other cluster member)
disk assign 0d.02.0 (assigns the disk to the controller you perform the command on)
options disk.auto_assign off (turns auto assign of unowned disks to controllers to off)
options disk.auto_assign on (turns auto assign of unowned disks to controllers to on)
storage show disk -p (displays primary, secondary port, shelf and bay in a metro cluster)

lun setup (runs the cli lun setup wizard)
lun create -s 10g -t windows_2008 -o noreserve /vol/vol1/lun1 (creates a lun of 10GB with type Windows 2008, sets no reservation and places it in the following volume or qtree)
lun offline lun_path (takes a lun offline)
lun online lun_path (brings a lun online)
lun show -v (Verbose listing of luns)
lun move /lun_path_source /lun_path_destination (Move lun from source to destination)
lun resize -f lun_path +|- new_size k|m|g|t (Resizes a lun by adding space (+) or subtracting space (-) Note: a lun can only ever grow 10x it’s original size)
lun map /vol/vol1/lun1 igroup_name (Maps lun1 to the igroup_name)
lun alignment show (MUST BE DONE IN PRIV SET DIAG MODE. Shows which luns are aligned and which are not)

Fiber FCP
fcadmin config -t taget 0a (Changes adapter from initiator to target)
fcadmin config (lists adapter state)
fcadmin start (Start the FCP service)
fcadmin stop (Stop the FCP service)
fcp show adapters (Displays adapter type, status, FC Nodename, FC Portname and slot number)
fcp nodename (Displays fiber channel nodename)
fcp show initiators (Show fiber channel initiators)
fcp wwpn-alias set alias_name (Set a fiber channel alias name for the controller)
fcp wwpn-alias remove -a alias_name (Remove a fiber channel alias name for the controller)
igroup show (Displays initiator groups with WWN’s)

iscsi start (Start the iscsi service)
iscsi stop (Stop the iscsi server)
iscsi status (Show whether iscsi server is running or not running)
iscsi interface show (Show which interfaces are enabled or disabled for iscsi)
iscsi interface enable interface_name (Enable an interface for iscsi)
iscsi interface disableinterface_name (Disable an interface for iscsi)
iscsi nodename (Display the controllers iscsi nodename)
igroup show (Displays iSCSI initiators)
igroup create -i -t vmware sqlcluster_igroup (Creates an Initiator Group called sqlcluster_igroup with OS type vmware)
igroup add sqlcluster_igroup (Assigns the following iscsi initiator to the sqlcluster_igroup. This can also be FCP addresses)

cifs setup (cifs setup wizard)
cifs terminate (terminate the cifs service)
cifs restart (restarts cifs)
cifs shares (displays cifs shares)
cifs status (show status of cifs)
cifs lookup SID|name (Either displays the SID if you type in the name or name if you type in the SID)
cifs sessions (Show you current cifs sessions)
cifs sessions -s username (Shows the current session for a user)
cifs broadbast -v volume_name “message” (Broadcast a message to all users connected to volume_name)
cifs shares -add share_name /vol/volume_name/qtree_name (Create a cifs share on a specific volume or qtree)
cifs shares -delete share_name (Deletes a share name)
cifs shares share_name (Displays full path and permissions of the share)
cifs access share_name -g user_rights (Grants specific user rights to the share)
cifs access share_name user_name permission (Grants a specific permission to a user for a share. Permissions = Full Control, Change, Read, No Access)
cifs domain info (Lists information about the filers connected Windows Domain)
cifs testdc ip_address (Test a specific Windows Domain Controller for connectivity)
cifs prefdc (Displays configured preferred Windows Domain Controllers)
cifs prefdc add domain address_list (Adds a preferred dc for a specific domain i.e. cifs prefdc add netapplab.local
cifs prefdc delete domain (Delete a preferred Windows Domain Controllers)
cifs gpresult (Displays which Windows Group Policies apply to this filer)
cifs gpupdate (Forces an update of Windows Group Policy)
cifs top (Performance data for cifs. cifs.per_client_stats.enable option must be on to use this feature)
vscan on (Turns virus scanning on)
vscan off (Turns virus scanning off)
vscan reset (Resets virus scanning)

nfs setup (Runs the NFS setup wizard)
/etc/export (Enter in your export information here and save the file. Then proceed with exportfs -a to update memory buffer)
exportfs (Displays current exports)
exportfs -p path (Adds exports to the /etc/exports file)
exportfs -uav (Unexports all current exports)
exportfs -u path (Unexports a specific export from memory)
exportfs -z path (Unexports a specific export and also removes it from /etc/exports)
exportfs -a (Updates memory buffer with contents in /etc/exports)
nfsstat -d (Displays NFS statistics)

HTTP Admin
options httpd.admin.enable on (Turns on http web admin, na_admin)
options httpd.admin.access host=x.x.x.x,x.x.x.x (Allows admin access for specific hosts separated by a comma)

SIS (Deduplication)
sis status (Show SIS status)
sis config (Show SIS config)
sis on /vol/vol1 (Turn on deduplication on vol1)
sis config -s mon-fri@23 /vol/vol1 (Configure deduplication to run every monday – Friday at 11pm on vol1)
sis start -s /vol/vol1 (Run deduplication manually on vol1)
sis status -l /vol/vol1 (Display deduplication status on vol1)
df -s vol1 (View space savings with deduplication)
sis stop /vol/vol1 (Stop deduplication on vol1)
sis off /vol/vol1 (Disables deduplication on vol1)

User Accounts
useradmin user add user_name -g group_name (Adds a user to a group)
useradmin user list (Lists current users)
useradmin user list user_name (List specific user information)
useradmin group list (Lists current groups)
useradmin group delete group_name (Deletes a specific group name)
useradmin group modify group_name -g new_group_name (Modify group name)
useradmin user delete user_name (Delete a specific user)
useradmin user modify user_name -g group_name (Adds a user to a group)
useradmin domain user add user_name -g group_name (Adds a Windows Domain user to a local group)
useradmin domain user list -g group_name (List Windows Domain users in a specific group)

dns flush (Flushes the DNS cache)
/etc/resolv.conf (edit this file to change your dns servers)

ndmpd status (check status)
ndmpd on|off (turns ndmpd on or off)
ndmpd version (displays version information)
ndmpd version 4 (set ndmpd version to 4)
options ndmpd (Display ndmpd options)

Reading and Writing Files (Deduplication)
rdfile path/file (Reads a file)
wrfile path/file (Writes to a file. Warning this method overwrites the file. Make sure you copy out original contents if you wish to keep it. If you haven’t used this before try on the simulator.)
wrfile -a path/file (Writes to a file by appending the changes)

/etc/messages (All logging is for the system is stored here)

vif status (Displays the status of VIF interfaces)
vif create lacp vif0 ip e0a,e0b,e0c,e0d (Create a vif interface named VIF0 using lacp and a load balancing method of IP, bundled with interface e0a, e0b, e0c, e0d)
vif add vif0 e0a (Adds a down interface into an existing VIF)
vif destroy vif0 (deletes a VIF interface)

vlan create vif0 10 (create a vlan on interface vif0. The interface will be vifo-10)
vlan delete vif0 10 (deletes the vlan interface vif0-10)
ifconfig vif0-10 x.x.x.x netmask x.x.x.x partner vif0-10 (Sets IP information on the interface named vif0-10 with a partner interface of vif0-10)
route add default 1 (Adds a default route of with metric 1)

sysstat -x 1 (displays per second statistics for CPU, iSCSI, FCP, CIFS, NFS, Disk Util, etc)
sysstat -m 1 (displays per second statistics for each CPU)
sysstat -M 1 (MUST BE DONE IN PRIV SET DIAG MODE. Displays per second statictics for CPU’s, Kahuna, WAFL, etc)
statit b (MUST BE DONE IN PRIV SET DIAG MODE. Starts a performance snapshot)
statit e (MUST BE DONE IN PRIV SET DIAG MODE. Stops a performance snapshot and displays the stats on screen. TIP: Turn on logging in your terminal program before running this command)

Share on Facebook

Tags: , , , , , , ,

Quickly install features/components with Windows Powershell

Windows 2008 now comes packed with “windows powershell“, allowing administrators and engineers alike to access a powerful CLI more attuned to those that prefer a unix/linux environment. The powershell can be leveraged by customizing your os, administering your domain, or even managing multiple virtualization infrastructures. If you have not heard already, vmware’s powercli is basically a bunch of specially written cmdlets allowing IT staff to automate every portion of your vsphere implementation.

I was tasked with duplicating three production servers for a new staging environment within the same network. For this to occur, it would not be  as simple to just clone and sysprep. For various reasons, I decided to clone from a template, configure the basics, install features, and deploy app/db specific software. The only portion of this that would be time consuming would be getting the roles and features to be the same from production to staging.

Let’s get this done in under two minutes.

Make certain you have opened powershell with admin/elevated rights

• Step 1: Run PowerShell with the ServerManager module:

import-module servermanager

• Step 2: Export the list of currently installed features to XML

Get-WindowsFeature | ? { $_.installed } | Export-Clixml \\server\share\features.xml

• Step 3: On second server, run PowerShell and import XML

$f = Import-Clixml \\server\share\features.xml

• Step 4: Pipe that bad boy into Add-WindowsFeature!

$f | Add-WindowsFeature

• Step 5: Restart, if needed


• Step 6: Go eat a sandwich


After this was completed, I ran the installers for the app/db software and passed back to the client’s dev team for specific data load and deployment.

You can get creative with these types of one-liners when you start making your own scripts and go really nutty with it. For now, this just shows some basic tasks that could potentially save you anywhere from 30 to 90 minutes depending.


Share on Facebook

Tags: , , , ,

Force group policy updates on all Active Directory Domain Members

If you are a windows administrator, at one time or another you have been ready to pull out your hair when you realize Microsoft doesn’t always supply some of the most basic utilities. One of these basic functions is to force a group policy update on all domain member computers. You can change the update interval, script the changes, manually enact the change on each computer, or leverage some really amazing, free tools.

Sysinternals, a company acquired by Microsoft in July of 2006, provides a software suite of various utilities to assist you. In this example, I will run a command as a domain administrator to enumerate all domain members, force a remote group policy update, and provide the output results:

“psexec.exe -i -s \\* gpupdate.exe /force”

…thats it! Quick, easy, and painless.

Share on Facebook

Tags: , , , ,

Starting Over

Migrated my site to another server and things went awry…. I will rebuild!

Share on Facebook

Switch to our mobile site