<?xml version="1.0"?>
<rss version="2.0"><channel><title>The Geek Cast Latest Topics</title><link>https://forums.mspgeek.org/forum/40-the-geek-cast/</link><description>The Geek Cast Latest Topics</description><language>en</language><item><title>[DataDump] - Network Monitoring in CW Automate (SNMP based Remote monitors)</title><link>https://forums.mspgeek.org/topic/6267-datadump-network-monitoring-in-cw-automate-snmp-based-remote-monitors/</link><description><![CDATA[<p>
	Hey all, 
</p>

<p>
	I was recently on a call with a few guys going over Network Monitoring. What started off as a quick call with one person... turned into a bit more of a formal training session with 4 or 5 people.
</p>

<p>
	So, with their permission, I recorded it and after watching it back and I think it turned out quite well. I also asked the attendees if I could share it... and they gave their consent!! - Thanks guys! <img alt=":)" data-emoticon="" height="20" src="https://forums.mspgeek.org/uploads/emoticons/smile.png" srcset="https://forums.mspgeek.org/uploads/emoticons/smile@2x.png 2x" title=":)" width="20" />
</p>

<p>
	This content has been requested from me for quite some time now, from both people in the community and my colleagues.. so, here it is!! <img alt=":)" data-emoticon="" height="20" src="https://forums.mspgeek.org/uploads/emoticons/smile.png" srcset="https://forums.mspgeek.org/uploads/emoticons/smile@2x.png 2x" title=":)" width="20" />
</p>

<p>
	This video is about 1hr 20 min long and covers the following topics:
</p>

<ul>
	<li>
		Device Discovery
	</li>
	<li>
		Probe Registry items
	</li>
	<li>
		Creating Detection Templates
	</li>
	<li>
		Device Searches
	</li>
	<li>
		SNMP based remote monitors
	</li>
</ul>

<p>
	<br />
	Now, in the video... you will notice that some things worked just fine and maybe 1 or 2 things didn't. I even got a little confused as to what happened to a ticket... I decided to leave that in there and roll with it as I think it adds to the content, more than it does take away. I have been using this product for 8 years now... and even I still get things mixed up from time to time!! #EverythingIsFine <span class="ipsEmoji">🔥</span> <span class="ipsEmoji">👀</span> <span class="ipsEmoji">😉</span>
</p>

<p>
	 
</p>

<p>
	Video link: <a href="https://www.youtube.com/watch?v=cNEUXIESgx4" rel="external nofollow">[DataDump] - Episode 3 - Network Monitoring in CW Automate - YouTube</a>
</p>

<p>
	 
</p>

<p>
	Enjoy <span class="ipsEmoji">👍</span>
</p>

<p>
	://mk
</p>
]]></description><guid isPermaLink="false">6267</guid><pubDate>Thu, 21 Jan 2021 22:54:39 +0000</pubDate></item><item><title>Data Dump - Automated Billing</title><link>https://forums.mspgeek.org/topic/5485-data-dump-automated-billing/</link><description><![CDATA[<p>
	<a href="https://youtu.be/kvkeaCMLCGM" rel="external nofollow">https://youtu.be/kvkeaCMLCGM</a>
</p>

<p>
	Enjoy!
</p>]]></description><guid isPermaLink="false">5485</guid><pubDate>Tue, 07 Jan 2020 14:26:03 +0000</pubDate></item><item><title>GeekCast - Perch Security and "Threaty Threats"</title><link>https://forums.mspgeek.org/topic/5462-geekcast-perch-security-and-threaty-threats/</link><description><![CDATA[<p>
	We had Perch Security on for this geekcast to show us about Threat Intelligence!
</p>

<p>
	 
</p>

<div class="ipsEmbeddedVideo">
	<div>
		<iframe allowfullscreen="" frameborder="0" height="270" width="480" data-embed-src="https://www.youtube.com/embed/DJoUA4p42d8?feature=oembed"></iframe>
	</div>
</div>

<p>
	 
</p>]]></description><guid isPermaLink="false">5462</guid><pubDate>Tue, 17 Dec 2019 12:02:35 +0000</pubDate></item><item><title>GeekCast - Branding HTML Template (basic edition)</title><link>https://forums.mspgeek.org/topic/5202-geekcast-branding-html-template-basic-edition/</link><description><![CDATA[<p>
	I will link the VoD, i am working on getting it uploaded to youtube, once its done I will add the link.  Twitch VoD will only be available for 14 days.  If you have any questions/comments, feel free to ask me or post here. <span>@kspooner on slack.</span>
</p>

<div class="ipsEmbeddedOther">
	<iframe allowfullscreen="" height="450" src="https://player.twitch.tv/?video=v493354050&amp;autoplay=false" width="300"></iframe>
</div>

<p>
	HTML Files Attached for the code.  Feel free to edit the template to your hearts extent, and don't forget plenty of testing.
</p><p>
<a class="ipsAttachLink" href="https://forums.mspgeek.org/applications/core/interface/file/attachment.php?id=9047" data-fileExt='html' data-fileid='9047'>New_Template.html</a> 
<a class="ipsAttachLink" href="https://forums.mspgeek.org/applications/core/interface/file/attachment.php?id=9048" data-fileExt='html' data-fileid='9048'>Template.html</a></p>]]></description><guid isPermaLink="false">5202</guid><pubDate>Sat, 12 Oct 2019 03:09:33 +0000</pubDate></item><item><title>Automate Classes with Kyle and Mendy Ep1</title><link>https://forums.mspgeek.org/topic/4722-automate-classes-with-kyle-and-mendy-ep1/</link><description><![CDATA[
<p>
	See the recording for this cast, start at around 12 minutes in order to skip the countdown until 8:30 <img alt=":)" data-emoticon="" height="20" src="https://forums.mspgeek.org/uploads/emoticons/smile.png" srcset="https://forums.mspgeek.org/uploads/emoticons/smile@2x.png 2x" title=":)" width="20" /></p>

<div class="ipsEmbeddedVideo">
	<div>
		<iframe allowfullscreen="true" frameborder="0" height="270" src="https://www.youtube.com/embed/Lv5ZVAJIFRk?start=1&amp;feature=oembed" width="480"></iframe>
	</div>
</div>

<div class="ipsEmbeddedOther">
	<a href="https://www.youtube.com/watch?v=Lv5ZVAJIFRk&amp;t=1s" rel="external nofollow">https://www.youtube.com/watch?v=Lv5ZVAJIFRk&amp;t=1s</a>
</div>

<div class="ipsEmbeddedOther">
	 
</div>

<div class="ipsEmbeddedOther">
	There was some confusion as I quickly ballooned from simple Searches and Groups to a Remote Monitor that changed into a complex Powershell script that then turned into a confusing State Based monitor.
</div>

<p>
	I'll break it down here for people who want  a quick review without watching the entire show.
</p>

<p>
	<strong>The goal:</strong> Determine which Virtual Machines are supposed to be running on the Host that are not actually running right now, and start them or make a ticket if they fail to start.
</p>

<p>
	To identify these virtual machines I have to make sure I find machines that are either A) Not a replica B) If it is a replica, its the PRIMARY Replica. Additionally I have to confirm that the machine is supposed to be running. I use two methods to do this 1) I confirm that the VHD(x) was recently written to, and also confirm that the VM Settings itself is configured to start automatically.
</p>

<p>
	I use the following Powershell Modules to determine what I listed above..
</p>

<p>
	<strong>Get-VM</strong>
</p>

<p>
	<b>Get-VMReplication</b>
</p>

<p>
	<b>Get-VMHardDiskDrive</b>
</p>

<p>
	<b>Get-ChildItem</b>
</p>

<p>
	I use the following PowerShell parsing methods and logical processing to properly handle the data received from the above modules.
</p>

<p>
	<strong>where</strong>
</p>

<p>
	<strong>For-Each</strong>
</p>

<p>
	<strong>If () { } else {}</strong>
</p>

<p>
	<b>M</b>y first step is to get a list of all Virtual Machines that are NOT in a running state. Specifically because there are other states (Starting, Shutting down) I limit my search to those that are either Saved or Off.
</p>

<pre class="ipsCode">
Get-VM | where {$_.State -in "Off","Saved"}</pre>

<p>
	I'm using the "-in" logical comparison to match the value of the VM State retrieved from the Get-VM command to either Off or Saved. This will return any VM that isn't running. This is the base check.
</p>

<p>
	Next we want to check for machines that are <em>meant</em> to be on. This is just an additional condition of looking for Virtual Machines that are configured to start automatically.
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">Get-VM | where {$_.State -in "Off","Saved" -and  $_.AutomaticStartAction -ne "Nothing"}</span></pre>

<p>
	Using "-and" and "-ne" (not equals) I'm able to string a second check on the same VM object to exclude anything that is configured to DO NOTHING on reboot. 
</p>

<p>
	My next  step is to get the VM Replication status, using the powershell module Get-VMReplication I will be returned with a list of all Virtual Machines that are replicas.This is similar to the Get-VM module except that I'm specifically getting ONLY Replicas. Using similar logic to above I know that I only want to get Virtual Machine replicas where the Primary Server is the same as the server that the name itself is running under.
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">Get-VMReplication -Mode Primary|?{$_.PrimaryServer -eq ([System.Net.Dns]::GetHostByName($env:computerName).HostName)}</span></pre>

<p>
	If you look at Get-VMReplication you'll see a property "PrimaryServer" that has the full FQDN of the servername. The only way to get the FQDN in Powershell without using WMI is by tapping into .NET (which is faster) and that is the second part of the command. Combining addressing the DNS Namespace in .NET to retrieve the FQDN we combine it with the environment variable computername to generate the same string that would match within the PrimaryServer attribute. We now have a full list of VMs that exist on the VM as the primary replica copy.
</p>

<p>
	Combining the first two modules together so we can get a single list of Virtual Machines the command will look like this.
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">Get-VM | where {($_.State -in "Off","Saved" -and  $_.AutomaticStartAction -ne "Nothing") -and ($_.Name -in (Get-VMReplication -Mode Primary|?{$_.PrimaryServer -eq ([System.Net.Dns]::GetHostByName($env:computerName).HostName)}).VMName)}</span></pre>

<p>
	Note how we created separate groups in the logic, because two statements are AND but the second statement (the replica primary server) is going to be an OR against a final check -if Replica is even enabled at all. The final piece to point out is how I'm specifically selecting a specific property from the output by doing ".VMName" which is the value I want to compare against the $_.Name from Get-VM.
</p>

<p>
	Adding in the <strong>final and last</strong> condition check to confirm that we're getting NON REPLICA Vm's as well as Replica VMs where the primary server is itself I'm going to adjust the code as follows.
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">Get-VM | where {($_.State -in "Off","Saved" -and  $_.AutomaticStartAction -ne "Nothing") -and ($_.Name -in (Get-VMReplication|?{$_.PrimaryServer -eq ([System.Net.Dns]::GetHostByName($env:computerName).HostName)}).VMName -or $_.ReplicationState -eq "Disabled")}</span></pre>

<p>
	We now have  a list of VM's that are <strong>Off/Not Running, Configured to turn on automatically, will run on this host if it was on</strong> however we still don't know if the VM was recently used. Using Get-ChildItem and Get-VMHardDiskDrive I can pull out the path to the first VHD on the VM (which will always be the boot disk) and check the last write time. However note, that this can take some time and I only want to do this for the Virtual Machines that we know are supposed to be on. This means we need to create an If statement to see IF results are returned then we'll check for the Last Write TIme.
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">#Create variable containing all the Virtual Machines.
$VirtualMachines = Get-VM | where {($_.State -in "Off","Saved" -and  $_.AutomaticStartAction -ne "Nothing") -and ($_.Name -in (Get-VMReplication -Mode Primary|?{$_.PrimaryServer -eq ([System.Net.Dns]::GetHostByName($env:computerName).HostName)}).VMName)}

#Create If Statement and check if the variable is NULL
if ($null -ne $VirtualMachines) {
	#Loop through the virtual machines and check last write time
		$VirtualMachines|foreach {
			#create the actual check for the last write time, follow along as we nest additional modules within the IF Check
			if ( (Get-ChildItem (Get-VMHardDiskDrive -VMName $_.Name -ControllerLocation 0).Path).LastWriteTime -gt (Get-Date).AddDays(-2) ) {
				#Start VM
				Start-VM $_
				#Output Hostnames or VM Object
				$_
			} #end If statement for last write time
		} #end Loop statement
} # End If statement for Null variable, create else statement that no issues found.

else {Write-Host "No issues detected."}</span></pre>

<p>
	The above script has been written in long hand with lots of comments to indicate what the script is doing. As you can see we're still sticking to the basics explained in previous examples of pulling information as we just overlay commands over with themselves to do more complex comparisons and matching.
</p>

<p>
	The above script will do everything we need, you can remove the Start-VM line and just have it echo out the results or you can remove the $_ line by itself to remove the output from occurring in the event the machines start successfully.
</p>

<p>
	<b>Keep in mind about the Escape Characters, when using the above script in Automate Remote Monitor you will need it to be one line, and will need to call it in by executing the poewrshell interpreter directly.</b> The full command to use in the remote monitor is as follows.
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -noprofile -command " &amp; {$a = get-vm|? {($_.State -in \"Saved\",\"Off\" -and $_.AutomaticStartAction -ne \"Nothing\") -and ($_.ReplicationState -eq \"Disabled\" -or ($_.Name -in (Get-VMReplication -Mode Primary|?{$_.PrimaryServer -eq ([System.Net.Dns]::GetHostByName($env:computerName).HostName)}).VMName))}; if ($a){$a|% {if ((gci (Get-VMHardDiskDrive -VMName $_.Name -ControllerLocation 0).Path).LastWriteTime -gt (Get-Date).AddDays(-2)){Start-VM $_} }}else {Write-Host \"No issues detected.\"} }"</span></pre>

<p>
	Using ";" to indicate line breaks to allow multi line scripts to be executed on a single line.
</p>

<p>
	Regarding the remote monitor itself you can set it to be State Based by following the below screenshot.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="8751" href="https://forums.mspgeek.org/uploads/monthly_2019_02/image.png.1a87ae92d6e168332bc02e7a820a86bc.png" rel=""><img alt="image.thumb.png.b58f9d93eb0d5f29158e5cef06d7e58f.png" class="ipsImage ipsImage_thumbnailed" data-fileid="8751" src="https://forums.mspgeek.org/uploads/monthly_2019_02/image.thumb.png.b58f9d93eb0d5f29158e5cef06d7e58f.png" /></a>
</p>

<p>
	The details of the state based conditions are covered more inside the video, and will not be covered in detail here. This post was just to cover the areas that I "rushed" through so that I could focus on Automate.
</p>

<p>
	Please hit me up if you have any questions.
</p>
]]></description><guid isPermaLink="false">4722</guid><pubDate>Thu, 07 Feb 2019 06:15:21 +0000</pubDate></item><item><title>LabTechGeek Monthly Digest - Third Edition</title><link>https://forums.mspgeek.org/topic/4368-labtechgeek-monthly-digest-third-edition/</link><description><![CDATA[
<p>
	Good Morning/Afternoon Connectwise Automate Campers! It's time for the next delivery of the LabTechGeek Digest!
</p>

<p>
	<strong><span style="font-size:16px;">Automate 12 - Patch 7</span></strong><br /><br />
	After a rocky start with Patch 6, Patch 7 has been relatively stable with no known major issues. Be aware of potential issues with IIS though during the install - not a fault with the patch, but an issue with IIS and Microsoft's July patches. See here for more details: <a href="https://bit.ly/2Akrgoz" rel="external nofollow">https://bit.ly/2Akrgoz</a>
</p>

<p>
	With that in mind, this is a good stable base to upgrade to if you’ve been waiting for a while to upgrade. I continue to be impressed with the speed of development for the new Automate Web App, and I’m sure we’ll see some good additions to it over the next few patches. Hopefully we will see the addition of a Current User/Last Logged on User column soon, it’s the only thing really stopping heavy usage for a lot of the engineers at my MSP.<br /><br /><strong><span style="font-size:16px;">Slack</span></strong><br /><br />
	We are now over 3000 users in our Slack, and growth doesn’t seem to be slowing down. Thanks to all Admins and members who contribute. If you’re not already in our Slack, you can join here - <a href="https://slack.labtechgeek.com" rel="external nofollow">https://slack.labtechgeek.com/</a>
</p>

<p>
	<strong><span style="font-size:16px;">We need your Feedback!</span></strong><br /><br />
	Thank you to everyone who has already filled in the Feedback form that has been posted in Slack for a few weeks, if you haven’t then we’d really appreciate getting your feedback on our GeekCast and LabTechGeek content in general: <a href="https://goo.gl/forms/FAC0m1Gua9fToit13" rel="external nofollow">https://goo.gl/forms/FAC0m1Gua9fToit13</a><br /><br /><strong><span style="font-size:16px;">Agent response slow? Tired of waiting to interact with agents? Offline server alerts flaky? Your heartbeat may be broken</span></strong>
</p>

<p>
	Following a conversation in the Slack just over a month ago, I asked a number of members in Slack to check whether their heartbeat was working or not – and a good 40% of the people that checked found this wasn’t working properly. When heartbeat isn’t working it can significantly impact on the day to day running of Automate. If you can answer yes to any of the questions in this sections title, I would advise you have a read of my article on how to identify, and fix problems with heartbeat: <a href="https://bit.ly/2OhOONr" rel="external nofollow">https://bit.ly/2OhOONr</a><br /><br /><strong><span style="font-size:16px;">LabTechGeek Downloads</span></strong><br /><br />
	Are you aware of this section of the LabTechGeek Forums? <a href="https://forums.mspgeek.org/files/" rel="">https://www.labtechgeek.com/files/</a> This is where we have started posting Scripts, SQL Definitions, Role Definitions and more. Over the upcoming months, we are going to start adding more content in here – and you can help. We are going to start giving trusted community members the ability to post files in here. If you want to contribute, please message me on Slack (@gavsto).<br /><br />
	Some of my favourite ones in there so far:<br /><br /><a href="https://forums.mspgeek.org/files/file/17-script-backup/" rel="">https://www.labtechgeek.com/files/file/17-script-backup/</a> - Backup your LabTech Scripts into a folder hierarchy that matches the Automate script folders. Each time a script is exported, the last updated time and user information is included, providing multiple script revisions as it is changed over time.<br /><a href="https://forums.mspgeek.org/files/file/16-powershell-deployment-scripts/" rel="">https://www.labtechgeek.com/files/file/16-powershell-deployment-scripts/ </a>- Powershell deployment scripts for Powershell 2,3,4,5? Yes please!<br /><a href="https://forums.mspgeek.org/files/file/8-bitlocker-enabled/" rel="">https://www.labtechgeek.com/files/file/8-bitlocker-enabled/</a> - Role definition to detect Bitlocker is enabled on a machine.<br /><br />
	See you next month (ish)!
</p>

<p>
	 
</p>

<p>
	Gavsto and the LabTechGeek Admin Team
</p>
]]></description><guid isPermaLink="false">4368</guid><pubDate>Thu, 26 Jul 2018 20:45:41 +0000</pubDate></item><item><title>The GeekCast Future</title><link>https://forums.mspgeek.org/topic/4336-the-geekcast-future/</link><description><![CDATA[
<p>
	For those who see this, please fill out this form.  Thank you so much from the geekcast team!
</p>

<p>
	 
</p>

<p>
	<a href="https://goo.gl/forms/EC2sPfxABaOZ8tfJ3" rel="external nofollow">https://goo.gl/forms/EC2sPfxABaOZ8tfJ3</a>
</p>
]]></description><guid isPermaLink="false">4336</guid><pubDate>Mon, 02 Jul 2018 17:04:27 +0000</pubDate></item><item><title>The Geek Cast - Ep3 - Malware Analysis</title><link>https://forums.mspgeek.org/topic/4335-the-geek-cast-ep3-malware-analysis/</link><description><![CDATA[
<p>
	We embark on journey to learn more about Malware and how it infects your systems!  We also spend some time discussing points on social engineering and how to possibly fix some of these issues!
</p>

<p>
	 
</p>

<div class="ipsEmbeddedVideo">
	<div>
		<iframe allowfullscreen="true" frameborder="0" height="270" src="https://www.youtube.com/embed/GYr2Drg-lA4?feature=oembed" width="480"></iframe>
	</div>
</div>

<p>
	 
</p>
]]></description><guid isPermaLink="false">4335</guid><pubDate>Mon, 02 Jul 2018 17:01:57 +0000</pubDate></item></channel></rss>
