tag:blogger.com,1999:blog-80603374826370710492024-03-06T08:49:44.542+10:00Wayne HoggettMicrosoft DevOps ExpertWayne Hoggetthttp://www.blogger.com/profile/17357074935928764761noreply@blogger.comBlogger399125tag:blogger.com,1999:blog-8060337482637071049.post-88333807450221409222021-11-12T09:28:00.000+10:002021-11-12T09:28:39.154+10:00What's New in PowerShell 7.2?<p>Hey everyone, it's time to get stuck into PowerShell 7.2. PowerShell 7.2 is an important release in the lifecycle of PowerShell as it replaces 7.0 as the next Long Term Support (LTS) release. That means it will have support from Microsoft next 3 years.</p><h3 style="text-align: left;">How can I Install PowerShell 7.2? <br /></h3><p>You can grab the 7.2 release here: <a href="https://aka.ms/PowerShell-Release?tag=v7.2.0">https://aka.ms/PowerShell-Release?tag=v7.2.0</a></p><p>On Windows desktop operating systems, you can install PowerShell from either the Microsoft Store, or from an MSI. On Windows Servers, you're limited to The MSI. The installation on Linux has also been improved for this release, with one universal package that targets most major flavours of Linux.<br /></p><h3 style="text-align: left;">Enabling update via Microsoft Update</h3><div style="text-align: left;"><p style="text-align: left;">You can enable Microsoft Update when installing using the MSI:</p></div><h3 style="text-align: center;"> <img alt="Micrsoft Update PowerShell 7.2" height="498" src="data:image/png;base64,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" title="Microsoft Update in PowerShell 7.2" width="640" /></h3><p style="text-align: left;">There are command line options too, but the default is to enable Microsoft Update.</p><h3 style="text-align: left;">Changing the Look and Feel of PowerShell </h3><p style="text-align: left;">Microsoft has introduced a new built-in variable, <span style="font-family: courier;">$PSStyle</span>. You can use that to change the look and feel of PowerShell.<br /></p><p style="text-align: left;">One of the favorite items to change is the table headings, you can do this by setting the <span style="font-family: courier;">$PSStyle.Formatting.TableHeader</span> value, shown below:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOfDrvWS889GT1jUHDJWGJpo8n5sv9JIgLmEUSKbJ6T9ZMh5hgjoHLwDjRnbujYpa9JZbNUQRwVx6GyFZk1jAVUIb03cmLQ9oa8EwuONeta1LrksGwi04VfsrkzZDPD5S1icLJYms6e_w/s1177/PSStyle.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="599" data-original-width="1177" height="326" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOfDrvWS889GT1jUHDJWGJpo8n5sv9JIgLmEUSKbJ6T9ZMh5hgjoHLwDjRnbujYpa9JZbNUQRwVx6GyFZk1jAVUIb03cmLQ9oa8EwuONeta1LrksGwi04VfsrkzZDPD5S1icLJYms6e_w/w640-h326/PSStyle.gif" width="640" /></a></div><h3 style="text-align: left;">Writing PowerShell Faster with Predictive Intellisense</h3><p style="text-align: left;"> PSReadLine 2.1 ships with PowerShell 7.2, but you need to enable it first. You can enable it using the below command:</p><p style="text-align: left;"><span style="font-family: courier;">Set-PSReadLineOption -PredictionSource History</span></p><p style="text-align: left;">You also might want to change the colour of the predictions, by default it's a bit hard to see the predictions, see below, it's almost invisible on my monitor:<br /></p><p style="text-align: left;"><img height="325" src="data:image/png;base64,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AgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAAAAECZUAgAAACBMqAQAAABAmFAJAAAAgDChEgAAAABhQiUAAAAAwoRKAAAAAIQJlQAAAAAIEyoBAP9/e3doxEAMA0Cw1e+/iqCQnyTWPQjQLFgkq4EDMgAAZKISAAAAAJmoBAAAAEAmKgEAAACQiUoAAAAAZKISAAAAAJmoBAAAAEAmKgEAAACQiUoAAAAAZKISAAAAAJmoBAAAAEAmKgEAAACQiUoAAAAAZKISAAAAAJmoBAAAAEAmKgEAAACQiUoAAAAAZKISAAAAAJmoBAAAAEAmKgEAAACQnaLSdV2jaHR6JyoBAAAALDKJSqdgNHkjKgEAAAAsMo1K36LRaS4qAQAAACxUotI9HP2aiUoAAAAAi00OdX+KRyUoiUoAAAAAy0x/f7tHpBKURCUAAACAZaZR6VtYmu6KSgAAAACLlKhUDnOLSgAAAACL1aj0Dkt1R1QCAAAAWORJVHpCVAIAAABYRFQCAAAAIBOVAAAAAMhEJQAAAAAyUQkAAACATFQCAAAAIBOVAAAAAMj+GZVe23zH8Mi2DhkAAAAASUVORK5CYII=" width="640" /></p><p style="text-align: left;">Here is an example of the prediction with a more readable colour:</p><p style="text-align: left;"></p><p style="text-align: left;"></p><p style="text-align: left;"><img height="325" src="data:image/png;base64,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AAAAgBqhEgAAAAAAANQIlQAAAAAAAKBGqAQAAAAAAAA1QiUAAAAAAACoESoBAAAAAABAjVAJAAAAAAAAaoRKAAAAAAAAUCNUAgAAAAAAgBqhEgAAAAAAANQIlQAAAAAAAKBGqAQAAAAAAAA1QiUAAAAAAACoESoBAAAAAABAjVAJAAAAAAAAaoRKAAAAAAAAUCNUAgAAAAAAgBqhEgAAAAAAANQIlQAAAAAAAKBGqAQAAAAAAAA1QiUAAAAAAACoESoBAAAAAABAjVAJAAAAAAAAaoRKAAAAAAAAUCNUAgAAAAAAgBqhEgAAAAAAANQIlQAAAAAAAKBGqAQAAAAAAAA1QiUAAAAAAACoESoBAAAAAABAjVAJAAAAAAAAaoRKAAAAAAAAUCNUAgAAAAAAgBqhEgAAAAAAANQIlQAAAAAAAKBGqAQAAAAAAAA1QiUAAAAAAACoESoBAAAAAABAjVAJAAAAAAAAaoRKAAAAAAAAUCNUAgAAAAAAgBqhEgAAAAAAANQIlQAAAAAAAKBGqAQAAAAAAAA1QiUAAAAAAACoESoBAAAAAABAjVAJAAAAAAAAaoRKAAAAAAAAUCNUAgAAAAAAgBqhEgAAAAAAANQIlQAAAAAAAKBGqAQAAAAAAAA1QiUAAAAAAACoESoBAAAAAABAjVAJAAAAAAAAaoRKAAAAAAAAUCNUAgAAAAAAgBqhEgAAAAAAANQIlQAAAAAAAKBGqAQAAAAAAAA1QiUAAAAAAACoESoBAAAAAABAjVAJAAAAAAAAaoRKAAAAAAAAUCNUAgAAAAAAgBqhEgAAAAAAANQIlQAAAAAAAKBGqAQAAAAAAAA1QiUAAAAAAACoESoBAAAAAABAjVAJAAAAAAAAaoRKAAAAAAAAUCNUAgAAAAAAgBqhEgAAAAAAANQIlQAAAAAAAKBGqAQAAAAAAAA1QiUAAAAAAACoESoBAAAAAABAjVAJAAAAAAAAaoRKAAAAAAAAUCNUAgAAAAAAgBqhEgAAAAAAANQIlQAAAAAAAKBGqAQAAAAAAAA1QiUAAAAAAACoESoBAAAAAABAjVAJAAAAAAAAaoRKAAAAAAAAUCNUAgAAAAAAgBqhEgAAAAAAANQIlQAAAAAAAKBGqAQAAAAAAAA1QiUAAAAAAACoESoBAAAAAABAjVAJAAAAAAAAaoRKAAAAAAAAUCNUAgAA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" width="640" /> <br /></p><p style="text-align: left;"> If you're using Azure, you can also install a plug-in module that allows you to get Azure specific predictions, install it:</p><p style="text-align: left;"><span style="font-family: courier;">Install-module -name Az.Tools.Predictor -MinimumVersion 0.5.0</span></p><p style="text-align: left;"> Then you can enable it:<br /></p><pre><span style="font-family: courier;">Enable-AzPredictor -AllSession</span></pre><p style="text-align: left;"><br /></p>Wayne Hoggetthttp://www.blogger.com/profile/17357074935928764761noreply@blogger.comtag:blogger.com,1999:blog-8060337482637071049.post-1546916113042946132018-07-03T19:58:00.001+10:002018-07-03T20:10:56.124+10:00Testing Azure Automation Runbooks using PesterIf you’re using Azure Automation Runbooks for automation, you may find yourself writing code that is not testable. To test your code, it needs to be in functions. Sure, you should break out all of your repeatable, reusable code into functions and save them as separate Runbooks, or a collection of functions that you can “Dot source” into your other Runbooks.<br />
<br />
But, Runbooks really are functions, they are just not declared as functions. You have a single file, that accepts parameters, and executes code.<br />
<br />
That is a function! Let’s make it testable.<br />
<br />
Take this Runbook: Test-Script.ps1<br />
<br />
<script src="https://gist.github.com/waynehoggett/242c6fc3513f8b41691a3efe22a2e1eb.js"></script>
And this Pester Test Test-Script.tests.ps1<br />
<br />
<script src="https://gist.github.com/waynehoggett/bed813d9e69733fb837fecd5eac70703.js"></script>
The Pester Tests will generate this temporary file, which can be dot-sourced in as a function:<br />
<br />
<script src="https://gist.github.com/waynehoggett/5b1241f900f093a918683e82d3905fe5.js"></script><a href="https://www.blogger.com/blogger.g?blogID=8060337482637071049" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=8060337482637071049" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><br />
<img alt="" src="data:image/png;base64,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" />Wayne Hoggetthttp://www.blogger.com/profile/17357074935928764761noreply@blogger.comtag:blogger.com,1999:blog-8060337482637071049.post-82312419222551326342018-06-15T23:16:00.000+10:002018-06-15T23:17:24.935+10:00TechSnips: Your Chance to Become a More Successful Tech Professional<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_IoYgwg63tFPCytOo6TCukAgm5ksWin4DGbLXBvMScYaSdMjOsXe6b-PKHiMNssRjXCdfR51gQmw1b2aAXkt8PJ3HYdMXCN3Uu9ZXpJ8MTCUTVpbOxzng7BPx3SbisZkNwCSv8griCkrW/s1600/icon_transparen1t.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="166" data-original-width="166" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_IoYgwg63tFPCytOo6TCukAgm5ksWin4DGbLXBvMScYaSdMjOsXe6b-PKHiMNssRjXCdfR51gQmw1b2aAXkt8PJ3HYdMXCN3Uu9ZXpJ8MTCUTVpbOxzng7BPx3SbisZkNwCSv8griCkrW/s1600/icon_transparen1t.png" /></a></div>
We're geeks, right? We love tinkering with tech and figuring out better ways to solve problems. How cool would it be if lots of us could come together under one platform and share our hard-earned knowledge with everyone else via technical demo screencasts? I'm glad you asked!<br />
<br />
I've recently launched an IT career development platform called <a href="http://www.techsnips.io/">TechSnips</a>. First and foremost, <a href="http://www.techsnips.io/">TechSnips</a> is not a Pluralsight, Udemy or LinkedIn Learning. We don't do courses; we do snips. Snips are short (1-10) minute screencasts with absolutely no slides of any kind. Its purpose is to deliver exactly what IT pros, system administrators and other technology professionals need right now. We skip over all of the fluff.<br />
<br />
Because of this short format, it's a lot easier to get started contributing if you're new to putting yourself out there in a tech community. You will learn presentation skills through feedback from myself and your peers, you'll be a member of our growing community and get access to our Slack channel, you'll have some great content to put on your resume and you will get paid in monthly royalties!<br />
<br />
<a href="https://www.techsnips.io/contributor-signup">Joining</a> has a ton of upsides but you've got to be willing to put yourself out there.<br />
<br />
I'm looking for contributors that can help myself and the dozens of other contributors build the <a href="https://www.techsnips.io/available-screencasts">TechSnips content library</a>. As of now, we need to fill a lot of holes so the types of screencasts will most likely be up to you. As long the content fits in the snip format (which you'll get more info on the <a href="https://www.techsnips.io/contributor-signup">signup page</a>), the world is your oyster. FYI: We needs lots of DevOps stuff!<br />
<br />
If you're interested, please <a href="https://www.techsnips.io/contributor-signup">sign up</a>! You'll be asked to do a quick audition and once approved, you'll be part of the TechSnips Contributor community! I look forward to seeing what new content you can come up with and how teaching others can help yours and others' IT careers flourish!Unknownnoreply@blogger.comtag:blogger.com,1999:blog-8060337482637071049.post-36201715098343860462018-05-31T15:34:00.001+10:002018-05-31T15:34:36.602+10:00Writing Resuable, Modular DSC ConfigurationsA few weeks go I posted about writing better DSC Configurations with Configuration Data. Really, this was just the start of the journey. Ideally, you want to want to pull your Configuration Data from your CMDB, but often tools or processes are missing to get your configuration management up to this level of integration. So let's go with something 90% of the way there. Now this in-between state is nothing to scoff at. You can run with this if you need to. Let's take a look.<br /><br />
When you are building your configuration, you have two essential parts. Your Configuration, the .ps1 file that is compiled to generate MOFs and the Configuration Data, the .psd1 file that is used to provide data to the configuration. You want to modify the Configuration file as infrequently as possible, modifying this file is bound to cause errors and issues (People make mistakes). Also, you want the Configuration Data to be modular, so multiple people can work on it at the same time without any chance of conflicts.<br /><br />
So, let's build a succinct and reusable configuration. Take a look at the below example:<br /><br />
<script src="https://gist.github.com/waynehoggett/e90a36023f5d2a94082929f28ba5b251.js"></script>
<br />
The small block of code above installs all the features for any given node, based on its role. The node is defined like this:<br /><br />
<script src="https://gist.github.com/waynehoggett/598344c87cdbd5fd027b44eede11da86.js"></script>
<br />
As you can see, the Roles property is an array. This allows you to specify multiple roles for a given node, making it extremely powerful and allows your roles to be more modular.<br /><br />
Let's take a look at the role definition.<br /><br />
<script src="https://gist.github.com/waynehoggett/0299f69dfea5a02564f911528bd6683d.js"></script>
The role definition defines which features are associated with the role.<br /><br />
Now let's discuss how you can bring all this together. The Configuration Data is made of of two major parts. The AllNodes block and the other Configuration Data. This is sometimes called Non-node Data. Ignore that name, we going to use it to store all sorts of information. Take a look at the below code and file structure.
<br /> <br />
<script src="https://gist.github.com/waynehoggett/7cf00adcb5f26a4c418d829c7ca8b1e3.js"></script>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpmscPL3kEEG6inoTgi4XO_KSgxXWYXQNjJpfJ2odVWhho4Kp5NwuJhelI-uU5D27iCNB1k08VCvH-k817MC9QAf1_s3HDJ581EZumN8mSxrZ59cNGrTmxJzK6CbD17jVYJAZ39K3usMQ/s1600/Directories.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpmscPL3kEEG6inoTgi4XO_KSgxXWYXQNjJpfJ2odVWhho4Kp5NwuJhelI-uU5D27iCNB1k08VCvH-k817MC9QAf1_s3HDJ581EZumN8mSxrZ59cNGrTmxJzK6CbD17jVYJAZ39K3usMQ/s320/Directories.png" width="190" height="320" data-original-width="471" data-original-height="793" /></a></div>
<p>The script creates a hashtable for the configuration, then pulls in each of the Nodes that are represented in individual files. Then it pulls in all of the additional configuration data, such as domain and site information, finally the role information is imported, building a single configuration data file that can be used to compile your MOFs.</p>
<p>What are your thoughts on this type of modular DSC configuration?</p>
<p>Did you happen to notice the naming convention applied to resource names? That allows you to dynamically build DependsOn blocks.</p>
Wayne Hoggetthttp://www.blogger.com/profile/17357074935928764761noreply@blogger.comtag:blogger.com,1999:blog-8060337482637071049.post-47253012799320741722018-04-11T15:34:00.000+10:002018-04-11T15:35:31.121+10:00Writing better DSC Configurations with Configuration Data<p>Configuration Data in Windows PowerShell Desired State Configuration (DSC) allows you to
separate the what from the where. Configuration Data enables you to write
better DSC configuration. Configuration Data is defined as a Hash table and is
passed in when the configuration is compiled. If you're using Automation DSC on
Azure, that looks like this:</p>
<script src="https://gist.github.com/waynehoggett/09c542ba6d6a452124064a60a8d39dc0.js"></script>
<p>As you can see on the last line, the configuration data is imported as part of the Automation DSC compilation job.</p>
<p>The basic layout of a Configuration Data file is:</p>
<script src="https://gist.github.com/waynehoggett/a5f08a04ebbfb3a5cec366d37c04a12a.js"></script>
<p>Each Node entry must have a NodeName property as this property is used to generate a MOF file for each node in the AllNodes array.</p>
<p>When you import a Configuration Data file, new variables are available to you when defining your configuration. These variables allow you to define more sophisticated and succinct configurations. The variables are:</p>
<ul>
<li>$AllNodes - Refers to the AllNodes array, use this variable with .Where() and .Foreach()</li>
<li>$Node - Refers to the current node within the AllNodes array once the array has been filtered</li>
<li>$ConfigurationData - This refers to the entire configuration data file hash table</li>
</ul>
<p>You can use AllNodes.Where() to select specific nodes, for example, let's say we have a node that has a property of Role, and that role is defined as either DomainController or FileServer. Let's use the below configuration data as an example:
</p>
<script src="https://gist.github.com/waynehoggett/362ccc163922d62ff8bee9142a8d13f3.js"></script>
<script src="https://gist.github.com/waynehoggett/2d3a32784ccf410efa36f0c22769f321.js"></script>
<p>When you compile the above configuration, with the configuration data, you will get two MOF files, one for DC1 and one for FS1. The DC1 configuration file will only have settings for the DNS and NTDS services, the FS1 MOF file will only have settings for a File on D:\.</p>
<p>You can go one step further than this, by using the $ConfigurationData variable to access data outside of the $AllNodes block. Let's look at the below example:</p>
<script src="https://gist.github.com/waynehoggett/383a4839c6e8b5a279304e14517fed5d.js"></script>
<script src="https://gist.github.com/waynehoggett/da18f5003184ab0600e4fe3cbb2ea7c7.js"></script>
<p>In the above example, the configuration will loop through each of the services defined on a role and add them to the configuration. </p>
<p>Now let's assume that you have heaps of software, features, services and other settings you need to deploy to each of your nodes. You're going to start saving lines in your configuration, and eliminating code that would otherwise be repeated.</p>
Wayne Hoggetthttp://www.blogger.com/profile/17357074935928764761noreply@blogger.comtag:blogger.com,1999:blog-8060337482637071049.post-51490663832778309552017-06-11T07:01:00.001+10:002017-06-11T07:01:11.600+10:00Add-HybridRunbookWorker : Machine is already registered to differnt account<p> </p> <p>If you receive the error: Add-HybridRunbookWorker : Machine is already registered to differnt account</p> <p>Simply delete the key under: <strong>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HybridRunbookWorker</strong> and try the command again.</p>Wayne Hoggetthttp://www.blogger.com/profile/17357074935928764761noreply@blogger.comtag:blogger.com,1999:blog-8060337482637071049.post-38293519315816008642016-12-10T13:02:00.001+10:002016-12-10T13:02:46.685+10:00Procedure: Using a Responder to block access to a URL from a specific subnet<p><strong>Create the responder action</strong> <p>In the Expression below, I am creating a HTML response that will respond with the blocked URL, the CLIENT IP and the CLIENT subnet, which is based on a 24-bit mask. <p><a href="https://lh3.googleusercontent.com/-QjJe7c-ASPw/WEtwQCFPszI/AAAAAAAAGFQ/xIZyd4NLA5w/s1600-h/clip_image001%25255B8%25255D%25255B2%25255D.png"><img title="clip_image001[8]" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="clip_image001[8]" src="https://lh3.googleusercontent.com/-j3NX0fiDAwM/WEtwQpYkipI/AAAAAAAAGFU/-P2Img5KaKY/clip_image001%25255B8%25255D_thumb.png?imgmax=800" width="644" height="334"></a> <p><strong>Create a Responder policy</strong> <p>In the expression below, I am checking if the red URL is being accessed and if the subnet (again 24-bit mask) is in the subnet that is not permitted. <p><a href="https://lh3.googleusercontent.com/-Gqm2AL-GBkE/WEtwRDdbmHI/AAAAAAAAGFY/Bp89B85V4j8/s1600-h/clip_image002%25255B4%25255D%25255B2%25255D.png"><img title="clip_image002[4]" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="clip_image002[4]" src="https://lh3.googleusercontent.com/-vzG5Fx0YvJs/WEtwRndzX1I/AAAAAAAAGFc/RYoFpjLRvlU/clip_image002%25255B4%25255D_thumb.png?imgmax=800" width="427" height="484"></a> <p><strong>Bind the Policy to the vServer</strong> <p>This is a simple process, click the + symbol on Policies, select Responder and bind the responder policy that you’ve created. <p><a href="https://lh3.googleusercontent.com/-0Wzfhsl2FAU/WEtwSMCve7I/AAAAAAAAGFg/uP_ch08uXXU/s1600-h/clip_image003%25255B4%25255D%25255B2%25255D.png"><img title="clip_image003[4]" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="clip_image003[4]" src="https://lh3.googleusercontent.com/-P3im5Jv0wg8/WEtwSqyVcXI/AAAAAAAAGFk/vJm05qrd4fs/clip_image003%25255B4%25255D_thumb.png?imgmax=800" width="644" height="84"></a> <p><a href="https://lh3.googleusercontent.com/-7kxGmDUai58/WEtwTHFLtgI/AAAAAAAAGFo/OWqp_yE-g0w/s1600-h/clip_image004%25255B4%25255D%25255B2%25255D.png"><img title="clip_image004[4]" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="clip_image004[4]" src="https://lh3.googleusercontent.com/-03ULHGAXTsY/WEtwToWlZjI/AAAAAAAAGFs/TQv5R20EXH8/clip_image004%25255B4%25255D_thumb.png?imgmax=800" width="335" height="446"></a> <p><a href="https://lh3.googleusercontent.com/-lS8oohtUJE4/WEtwUNV7uXI/AAAAAAAAGFw/hqgnALnlAU4/s1600-h/clip_image005%25255B4%25255D%25255B2%25255D.png"><img title="clip_image005[4]" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="clip_image005[4]" src="https://lh3.googleusercontent.com/-ytsOshCE1C0/WEtwUdDvXPI/AAAAAAAAGF0/1h4Ge86jptw/clip_image005%25255B4%25255D_thumb.png?imgmax=800" width="644" height="70"></a> <p><strong>Result</strong> <p>From a blocked client <p><a href="https://lh3.googleusercontent.com/-AooUBy-hnKU/WEtwUw7PUvI/AAAAAAAAGF4/E3bWjm0_4x0/s1600-h/clip_image006%25255B4%25255D%25255B2%25255D.png"><img title="clip_image006[4]" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="clip_image006[4]" src="https://lh3.googleusercontent.com/-pv8hf035ENo/WEtwVTlhlsI/AAAAAAAAGF8/1sa58pM_cQQ/clip_image006%25255B4%25255D_thumb.png?imgmax=800" width="644" height="104"></a> <p>Check the reverse to ensure permitted clients are not blocked. The naming conventions for the NetScaler entities used in this blog post are not recommended in a production environment.</p>Wayne Hoggetthttp://www.blogger.com/profile/17357074935928764761noreply@blogger.comtag:blogger.com,1999:blog-8060337482637071049.post-26219245370070382562016-10-05T19:28:00.001+10:002016-10-05T19:28:11.433+10:00Citrix NetScaler - How to generate a CSR and Install Signed Certificate<p> </p> <p><strong>Enable SSL Offload</strong></p> <p>1. Navigate to System –> Settings and click Configure Basic Features</p> <p><a href="https://lh3.googleusercontent.com/-HFm6tbi3COI/V_THZih1pFI/AAAAAAAAGBo/Eae9v0Iyjzo/s1600-h/image2.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin: 0px auto; display: block; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-yw7FjYxFSwo/V_THaIWx7UI/AAAAAAAAGBs/ceRxNvDxMqc/image_thumb.png?imgmax=800" width="404" height="228"></a></p> <p>2. Select SSL Offloading and click OK</p> <p><a href="https://lh3.googleusercontent.com/-fedVv8WhADg/V_THauUw48I/AAAAAAAAGBw/eeZ-5njnoX0/s1600-h/image5.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin: 0px auto; display: block; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-eUarPSG-0Sk/V_THbOKyQoI/AAAAAAAAGB0/vfBJDwqLAWI/image_thumb1.png?imgmax=800" width="404" height="210"></a></p> <p><strong>Create the RSA Key</strong></p> <p>1. Navigate to Traffic Management –> SSL –> SSL Files</p> <p><a href="https://lh3.googleusercontent.com/-BQqCoM_8bBU/V_THbUe1OTI/AAAAAAAAGB4/PY_RWkXNr9E/s1600-h/image11.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin: 0px auto; display: block; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-KMZqz-ADpME/V_THb8g4q2I/AAAAAAAAGB8/GZUivHd6cAY/image_thumb3.png?imgmax=800" width="331" height="97"></a></p> <p>2. Click Create RSA Key</p> <p><a href="https://lh3.googleusercontent.com/-mljY_Iv9QhE/V_THcV_Oc3I/AAAAAAAAGCA/PpBTDthPjzw/s1600-h/image14.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin: 0px auto; display: block; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUGWHk3uQyWgzeDU1h37WeVkUtn27VKEzkL9j7WYSySTLge-5MWQbZzpYiNcfJt5Ji2_8HzCLyc20tpEYCsn7B8nw5NZ7hWZMTUbWX4kYg9HA3kQb4xGt8cDD0T_cY-uumDQjYFYedjCc/?imgmax=800" width="404" height="206"></a></p> <p>3. Enter in the following details (Only the fields marked * are required, but I recommend filling in more details) and click Create</p> <ul> <li>A file name, you will need this later, so make note <li>A key size (2048 is OK – The higher the number, the longer it will take to generate) <li>The PEM format and PEM encoding algorithm <li>The passphrase</li></ul> <p><a href="https://lh3.googleusercontent.com/-JZSpfpLd5qM/V_THdQuCgGI/AAAAAAAAGCI/soYhn7a9KTw/s1600-h/image17.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin: 0px auto; display: block; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-gxjDZuUtpng/V_THd-m_8tI/AAAAAAAAGCM/46uEcsOwlxc/image_thumb5.png?imgmax=800" width="334" height="404"></a></p> <p><a href="https://lh3.googleusercontent.com/-gnpE6-nDDtA/V_THecsyNvI/AAAAAAAAGCQ/A9Jk6Ez2sUc/s1600-h/image23.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin: 0px auto; display: block; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-KPXbJbZGJNw/V_THeh1_h-I/AAAAAAAAGCU/1wI70kMGZbE/image_thumb7.png?imgmax=800" width="404" height="31"></a></p> <p><strong>Create the Certificate Signing Request (CSR)</strong></p> <p>1. Click CSRs in the menu (It’s located here: Traffic Management –> SSL –> SSL Files)</p> <p><a href="https://lh3.googleusercontent.com/-m7TNoR9uzTM/V_THfNU1BWI/AAAAAAAAGCY/52ZL5OYar3s/s1600-h/image26.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin: 0px auto; display: block; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-Q9lKS2-u2jQ/V_THfrC-QhI/AAAAAAAAGCc/ti6JFi2Vb2k/image_thumb8.png?imgmax=800" width="322" height="79"></a></p> <p>2. Click Create Certificate Signing Request (CSR)</p> <p><a href="https://lh3.googleusercontent.com/-XX6IWMsXXz8/V_THgEyOhjI/AAAAAAAAGCg/fCi__21Roj8/s1600-h/image29.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin: 0px auto; display: block; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-SpEi6pcyPa0/V_THggZ2B-I/AAAAAAAAGCk/AyF0LPN7Skc/image_thumb9.png?imgmax=800" width="404" height="140"></a></p> <p>3. Enter in the following details:</p> <ul> <li>Request file name <li>Key file name (Created in the previous step) <li>Format <li>Passphrase for the key <li>The Digest Method <li>The other required files</li></ul> <p>And click Create</p> <p><a href="https://lh3.googleusercontent.com/-5oaDrOiQoIo/V_THhIwGocI/AAAAAAAAGCo/v6PDk0a0JCY/s1600-h/image32.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin: 0px auto; display: block; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-xGjWJ2Tebqs/V_THh370QXI/AAAAAAAAGCs/eyKC0FZwzCo/image_thumb10.png?imgmax=800" width="270" height="404"></a></p> <p><strong>Provide the CSR to the Certificate Authority (CA)<br><br></strong>I’m using StartSSL in the example below.</p> <p>1. Select the CSR and click Download</p> <p><a href="https://lh3.googleusercontent.com/-S6c4imVA9cc/V_THiWHIetI/AAAAAAAAGCw/EoT4IEUY2XU/s1600-h/image35.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin: 0px auto; display: block; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-fvarEZhyrwg/V_THi0mHnzI/AAAAAAAAGC0/l4chrQrjRkw/image_thumb11.png?imgmax=800" width="404" height="346"></a></p> <p>2. Open the Certificate in a text editor and copy the text</p> <p>3. Paste the text into the CSR request form</p> <p><a href="https://lh3.googleusercontent.com/-M9lDbIzDkBM/V_THjbUQVqI/AAAAAAAAGC4/k5zhXi4eJBQ/s1600-h/image41.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin: 0px auto; display: block; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-GzT8fXMYxf4/V_THjxhroBI/AAAAAAAAGC8/CbxNPcJhrcs/image_thumb13.png?imgmax=800" width="320" height="404"></a></p> <p>4. Download your certificate</p> <p><a href="https://lh3.googleusercontent.com/-hCS63M23JfU/V_THksnkE0I/AAAAAAAAGDA/6rFIrLUbDsg/s1600-h/image44.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin: 0px auto; display: block; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-UIUs9oeSsLI/V_THlLNiJmI/AAAAAAAAGDE/XBfQqk2DFb4/image_thumb14.png?imgmax=800" width="404" height="77"></a></p> <p>Install the certificate</p> <p>1. In the top menu, click Certificate</p> <p><a href="https://lh3.googleusercontent.com/-PA0bTvAtPTc/V_THlcjgc4I/AAAAAAAAGDI/qM_ewAG1Lss/s1600-h/image47.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin: 0px auto; display: block; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-GFEgrOJsPdw/V_THl0SiQFI/AAAAAAAAGDM/oPsKXjsthcI/image_thumb15.png?imgmax=800" width="337" height="135"></a></p> <p>2. Click Upload</p> <p><a href="https://lh3.googleusercontent.com/-S2HnwU4iWMY/V_THmQ9RP3I/AAAAAAAAGDQ/UAKZgKS8kig/s1600-h/image50.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin: 0px auto; display: block; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-DBEHQtHx0po/V_THm8brtvI/AAAAAAAAGDU/ih2EufYF2DM/image_thumb16.png?imgmax=800" width="404" height="163"></a></p> <p>3. Browse for the file that you downloaded (You can use the Apache files) and click OK</p> <p><a href="https://lh3.googleusercontent.com/-arEtE8JS-Eo/V_THnUc-ppI/AAAAAAAAGDY/g1t0BV75ZVI/s1600-h/image57.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin: 0px auto; display: block; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-f6EBDW67QWY/V_THn1F6weI/AAAAAAAAGDc/X_yCCC8STeQ/image_thumb18.png?imgmax=800" width="404" height="149"></a></p> <p>4. Navigate to Traffic Management –> SSL –> SSL Certificate –> Server Certificates</p> <p><a href="https://lh3.googleusercontent.com/-DNeRBj7KrHc/V_THoNvrudI/AAAAAAAAGDg/Ex0OsEnvfs4/s1600-h/image60.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin: 0px auto; display: block; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-jaQdKRQ5czA/V_THoz4YU5I/AAAAAAAAGDk/D1C-utvm2X8/image_thumb19.png?imgmax=800" width="404" height="265"></a></p> <p>5. Click Install</p> <p><a href="https://lh3.googleusercontent.com/-cWOJd6w0K2M/V_THpARzY6I/AAAAAAAAGDo/LmCdpzv0ac0/s1600-h/image63.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin: 0px auto; display: block; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-3lWMpyZDcr0/V_THpi-yaYI/AAAAAAAAGDs/CXivM31fxYw/image_thumb20.png?imgmax=800" width="404" height="155"></a></p> <p>6. Enter in a name for the Certificate-Key Pair, choose the certificate file (you just uploaded), the Key File and enter the password for the Key file</p> <p><a href="https://lh3.googleusercontent.com/-50xSyqw2e1w/V_THqGlhydI/AAAAAAAAGDw/zVSZy2fwTvg/s1600-h/image66.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin: 0px auto; display: block; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-ea8_wgINRkY/V_THqs6jysI/AAAAAAAAGD0/rfoSlJi_LuI/image_thumb21.png?imgmax=800" width="404" height="403"></a></p> <p>7. Click Install</p>Wayne Hoggetthttp://www.blogger.com/profile/17357074935928764761noreply@blogger.comtag:blogger.com,1999:blog-8060337482637071049.post-50041961444354483412016-08-29T20:39:00.001+10:002016-08-29T20:39:05.148+10:00Citrix Unified Gateway - It is all that!<p> </p> <p>Citrix Unified Gateway, the evolution of Citrix NetScaler Gateway. It really is all it’s cracked up to be. Sure it might not be feature complete just yet, but it’s a powerful solution that provides access to all your apps, desktops, email, and remote desktop from a single URL, with no client to install. Basically, NetScaler Gateway provides:</p> <ul> <li>Any App (Internal, SaaS, Virtual)</li> <li>Any Desktop (XenApp, XenDesktop, RDP)</li> <li>Any Device (Windows, iOS, Android)</li> <li>Any time</li> <li>From one URL</li> <li>With one sign-on (Single sign-on, access every app)</li></ul> <p>In the next series of blog posts, I will show you how to configure your very own NetScaler Unified Gateway.</p> <p><a href="https://lh3.googleusercontent.com/-LzrpAM0v90s/V8QQxBl7ExI/AAAAAAAAGAM/7ZvhWqaXU04/s1600-h/image%25255B2%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/--PNhVGG91BM/V8QQx-xdLeI/AAAAAAAAGAQ/jG988Um7BNU/image_thumb.png?imgmax=800" width="404" height="311"></a></p>Wayne Hoggetthttp://www.blogger.com/profile/17357074935928764761noreply@blogger.comtag:blogger.com,1999:blog-8060337482637071049.post-68885747821985751042016-08-07T11:30:00.000+10:002016-08-07T11:30:11.415+10:00Citrix NetScaler–Configuring High Availability<p> </p> <p>If you haven’t already checked out my previous posts, you can start there and get a pair of NetScalers ready to configure as a HA pair.</p> <ol> <li>Installing NetScaler VPX on Client Hyper-V (Windows 10) </li> <li><a href="http://www.waynehoggett.com/2016/07/netscaler-vpx-initial-configuration.html">NetScaler VPX - Initial Configuration</a></li></ol> <p><strong>High Availability Configuration</strong></p> <p>1. Logon to your NetScaler (Either will do), no need to logon to both</p> <p>2. Click System –> High Availability</p> <p><a href="https://lh3.googleusercontent.com/-jPTg3Y4bUKA/V51U4ZucrNI/AAAAAAAAF-o/8PDT5kFp0HM/s1600-h/image%25255B2%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-kErKaqgFQ_w/V51U48H5GPI/AAAAAAAAF-s/5o6boemKH0U/image_thumb.png?imgmax=800" width="404" height="330"></a></p> <p>You will notice that the NetScaler you are logged on to is already listed, that’s because it is part of a single-node high availability group.</p> <p>3. Click Add</p> <p><a href="https://lh3.googleusercontent.com/-VMz26FW1zsw/V51U5eXIShI/AAAAAAAAF-w/yhmCsIn0c5o/s1600-h/image%25255B5%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-64EasKJTA9c/V51U6KPnOkI/AAAAAAAAF-0/Hx-H48muUNg/image_thumb%25255B1%25255D.png?imgmax=800" width="404" height="291"></a></p> <p>4. Enter the IP Address (NSIP) and the remote system login credential and click Create</p> <p><a href="https://lh3.googleusercontent.com/-IQRIA_gVwIQ/V51U6lZgfuI/AAAAAAAAF-4/Lp_KowmswPg/s1600-h/image%25255B8%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-Zl1Fdc2Gn1c/V51U7BdIY5I/AAAAAAAAF-8/60a_4MZ5NxY/image_thumb%25255B2%25255D.png?imgmax=800" width="393" height="404"></a></p> <p>5. Initially the node status will show as UNKOWN, click Refresh to check for an updated status</p> <p><a href="https://lh3.googleusercontent.com/-5LQZ4cTjvNI/V51U7mWxUPI/AAAAAAAAF_A/WjZX20YhwPg/s1600-h/image%25255B11%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-8Jv3uQdwXYk/V51U8KKoj4I/AAAAAAAAF_E/FDNlJTpnUMg/image_thumb%25255B3%25255D.png?imgmax=800" width="404" height="142"></a></p> <p><a href="https://lh3.googleusercontent.com/-nlNRBE8fu7c/V51U8vhdFKI/AAAAAAAAF_I/N_zUhprHRHs/s1600-h/image%25255B14%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-rf-ryW0yCe8/V51U9GoyRZI/AAAAAAAAF_M/UCJEnZch-Bs/image_thumb%25255B4%25255D.png?imgmax=800" width="404" height="149"></a></p> <p>6. Save the configuration</p> <p>7. The top right corner will show the current HA status.</p> <p>IMPORTANT: Always make configuration changes on the PRIMARY node.</p> <p><a href="https://lh3.googleusercontent.com/-ZpAw5YB6xAA/V51U969YfOI/AAAAAAAAF_Q/ito5iPUQn0U/s1600-h/image%25255B17%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-JCiodl9k9QU/V51U-ZiBpOI/AAAAAAAAF_U/ppwtS33FV_8/image_thumb%25255B5%25255D.png?imgmax=800" width="258" height="123"></a></p>Wayne Hoggetthttp://www.blogger.com/profile/17357074935928764761noreply@blogger.comtag:blogger.com,1999:blog-8060337482637071049.post-16716126729796461532016-08-06T11:13:00.000+10:002016-08-06T11:13:00.291+10:00Licensing Citrix NetScaler 11 VPX (Trial)<p> </p> <p>1. Configure a static MAC address on your NetScaler VPX VM to ensure it does not change, and make note of the MAC Address, you will need it in step 6</p> <p><a href="https://lh3.googleusercontent.com/-65urg_NnvMM/V51QyjCbk8I/AAAAAAAAF9Q/3PXcTHvE18g/s1600-h/image%25255B8%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-iXrY-TgtkO8/V51QzUhsA9I/AAAAAAAAF9U/OarUomDRETY/image_thumb%25255B2%25255D.png?imgmax=800" width="404" height="330"></a></p> <p>2. Login to Citrix.com</p> <p>3. Navigate to the following URL:<a title="https://www.citrix.com/account/toolbox/manage-licenses/single-allocation.html" href="https://www.citrix.com/account/toolbox/manage-licenses/single-allocation.html">https://www.citrix.com/account/toolbox/manage-licenses/single-allocation.html</a></p> <p>4. Enter the License Key you were emailed when you signed up for the trial and click Continue</p> <p><a href="https://lh3.googleusercontent.com/-392VSUC_PuQ/V51Qzj-_MvI/AAAAAAAAF9Y/pzSuhdlaF9Y/s1600-h/image%25255B2%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-pEYTpKheXCQ/V51Q0CWJ8JI/AAAAAAAAF9c/KY0LDlTdnQk/image_thumb.png?imgmax=800" width="404" height="61"></a></p> <p>5. Select the checkbox next to your license key and click Continue</p> <p><a href="https://lh3.googleusercontent.com/-iAgMRRMOjGY/V51Q04bRGjI/AAAAAAAAF9g/WYh2RZ2tPxA/s1600-h/image%25255B5%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-0dUWRoQ_Gdg/V51Q1S0jPsI/AAAAAAAAF9k/s2zCz912IkE/image_thumb%25255B1%25255D.png?imgmax=800" width="404" height="118"></a></p> <p>6. Enter the MAC Address and click Continue</p> <p><a href="https://lh3.googleusercontent.com/-cbzFsSGypaM/V51Q190jQ4I/AAAAAAAAF9o/vyJYWouihTs/s1600-h/image%25255B17%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-AlxRnkY9nnI/V51Q2e3OFaI/AAAAAAAAF9s/9MHFdLJ9z5Q/image_thumb%25255B5%25255D.png?imgmax=800" width="404" height="107"></a></p> <p>7. Click Confirm</p> <p><a href="https://lh3.googleusercontent.com/-u6LVv5s8sN4/V51Q21Zll-I/AAAAAAAAF9w/633HLObsTpo/s1600-h/image%25255B14%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-TbHIYzipWJs/V51Q3XtA8MI/AAAAAAAAF90/O-zUj9pZM14/image_thumb%25255B4%25255D.png?imgmax=800" width="404" height="118"></a></p> <p>8. Click OK to download your license file</p> <p><a href="https://lh3.googleusercontent.com/-1FVOOCadgAo/V51Q3y9mLyI/AAAAAAAAF94/_5c6oAX1n0o/s1600-h/image%25255B20%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-nQLIgDy-AjM/V51Q5BcwPNI/AAAAAAAAF98/zxi_iFX53no/image_thumb%25255B6%25255D.png?imgmax=800" width="404" height="178"></a></p> <p>9. Logon to your NetScaler and select System –> Licenses</p> <p><a href="https://lh3.googleusercontent.com/-Tw6py3Gycrw/V51Q5vyJu_I/AAAAAAAAF-A/291pWIWEBBg/s1600-h/image%25255B23%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-OCFJGLd7CPU/V51Q6OnsePI/AAAAAAAAF-E/Ku0yo4d4JrI/image_thumb%25255B7%25255D.png?imgmax=800" width="404" height="154"></a></p> <p>10. Click Add New License</p> <p><a href="https://lh3.googleusercontent.com/-eLsgZ-XVI5w/V51Q6sv9MsI/AAAAAAAAF-I/Iashtrv64fo/s1600-h/image%25255B26%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-hT0MD9bKJ8c/V51Q7YoVuXI/AAAAAAAAF-M/b-IyK8Jovp4/image_thumb%25255B8%25255D.png?imgmax=800" width="323" height="208"></a></p> <p>11. Click Browse, browse for your license file and click OK</p> <p><a href="https://lh3.googleusercontent.com/-m8BvOpj0suA/V51Q73BTA4I/AAAAAAAAF-Q/mQRh7mCa79E/s1600-h/image%25255B29%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-Mm5mmcn7IAk/V51Q8RiN7LI/AAAAAAAAF-U/8aFARLO5I3Q/image_thumb%25255B9%25255D.png?imgmax=800" width="404" height="349"></a></p> <p>12. Click Reboot</p> <p><a href="https://lh3.googleusercontent.com/-CjcKzFuNS1k/V51Q8_laKBI/AAAAAAAAF-Y/5aTiMH31-S8/s1600-h/image%25255B32%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-RadQCjKfaBE/V51Q9ZAzTmI/AAAAAAAAF-c/fBtmo4Fv4zY/image_thumb%25255B10%25255D.png?imgmax=800" width="404" height="72"></a></p>Wayne Hoggetthttp://www.blogger.com/profile/17357074935928764761noreply@blogger.comtag:blogger.com,1999:blog-8060337482637071049.post-77560022675498617722016-07-30T20:51:00.001+10:002016-07-30T20:51:45.050+10:00NetScaler VPX - Initial Configuration<p>If you haven’t already read my <a href="http://www.waynehoggett.com/2016/06/installing-netscaler-vpx-on-client.html">Installing NetScaler VPX on Client Hyper-V (Windows 10)</a> post, start there and come back here when you’re good to go.</p> <p>What I have done since that post is:</p> <ul> <li>I have downloaded an updated version of the NetScaler 11.1, 10.5 was used in that post</li> <li>I have repeated the steps in that post for a second NetScaler so I can configure a HA pair</li></ul> <h2>Initial Configuration</h2> <p>Initially you will want to configure the following:</p> <ul> <li>At least one Subnet IP Address (SNIP)</li> <li>The Hostname and DNS Server/s</li> <li>Install the license</li> <li>Configure NTP</li> <li>Change the NSROOT password and optionally add another user to administer the device with</li></ul> <p>The Welcome wizard makes many of these steps a little easier, I will use the wizard for the steps below but also show you where the configuration is saved by the wizard.</p> <p><a href="https://lh3.googleusercontent.com/-38pzz2Q4y6I/V5yGWNeXtrI/AAAAAAAAF5o/JPaCZmsJwX8/s1600-h/image%25255B2%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-wIE-gov4AIs/V5yGWwkN2FI/AAAAAAAAF5s/GtouHscxqwM/image_thumb.png?imgmax=800" width="404" height="179"></a></p> <p><strong>Add a SNIP</strong></p> <p>1. Click the Subnet IP Address option in the wizard</p> <p><a href="https://lh3.googleusercontent.com/-LMf6s0_4Sbo/V5yGXWpd7kI/AAAAAAAAF5w/zthmVIqf7IM/s1600-h/image%25255B5%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-WSobADjzYvU/V5yGX9EcsEI/AAAAAAAAF50/NODrmSzKVr8/image_thumb%25255B1%25255D.png?imgmax=800" width="404" height="41"></a></p> <p>2. Enter in a SNIP mask combination and click Done<br><br><a href="https://lh3.googleusercontent.com/-JUJuPMhHSN0/V5yGYCfrlFI/AAAAAAAAF54/8nmegBhwH2w/s1600-h/image%25255B8%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-98bUQilehlk/V5yGYqGYqpI/AAAAAAAAF58/jFHxaGtF8Sw/image_thumb%25255B2%25255D.png?imgmax=800" width="327" height="221"></a></p> <p>You can check it out later, the above information is saved in System –> Network –> IPs –> IPV4s (shown below)</p> <p><a href="https://lh3.googleusercontent.com/-Ln8vOuIlVIQ/V5yGZIzWoTI/AAAAAAAAF6A/Sb_CZf4AOMM/s1600-h/image%25255B75%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-IaadRKftgy8/V5yGZpofFoI/AAAAAAAAF6E/zj0NWe83iU4/image_thumb%25255B24%25255D.png?imgmax=800" width="404" height="144"></a></p> <p><strong>Configure the Hostname, DNS Servers and Time Zone</strong></p> <p>1. Click The Host Name, DNS IP Address, and Time Zone step in the wizard<br><br><a href="https://lh3.googleusercontent.com/-IlntuG8dQLk/V5yGaNZ2GSI/AAAAAAAAF6I/6uHZ8QA4ebs/s1600-h/image%25255B11%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-j7oQmmvQlcY/V5yGanzSB1I/AAAAAAAAF6M/4udL03zv3hQ/image_thumb%25255B3%25255D.png?imgmax=800" width="404" height="41"></a></p> <p>2. Enter a hostname for the NetScaler, Enter at least one DNS Server, select the Time Zone and click Done</p> <p><a href="https://lh3.googleusercontent.com/-OPo1vwJwab4/V5yGbBG1QLI/AAAAAAAAF6Q/O9IebVWqHtg/s1600-h/image%25255B14%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-EJvUAC3Sf68/V5yGbtq9nAI/AAAAAAAAF6U/b8peBvePhTs/image_thumb%25255B4%25255D.png?imgmax=800" width="404" height="287"></a></p> <p>3. You will likely be asked to reboot, go ahead and do that<br><br><a href="https://lh3.googleusercontent.com/-oc9ppPp6pho/V5yGcKZiHlI/AAAAAAAAF6Y/AbRw9har-Hw/s1600-h/image%25255B17%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-4tfo9c5Ztf4/V5yGcr_XL9I/AAAAAAAAF6c/apj3nzJpjd0/image_thumb%25255B5%25255D.png?imgmax=800" width="359" height="194"></a></p> <p>You can check it out later, the Time Zone is saved in System –> Settings (Shown below)</p> <p><a href="https://lh3.googleusercontent.com/-FRPx5EnYWxs/V5yGdBuURXI/AAAAAAAAF6g/fW2WjLr7gCk/s1600-h/image%25255B78%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-J1VpjF4eODU/V5yGdrSrOzI/AAAAAAAAF6k/0hRGrkcTeO4/image_thumb%25255B25%25255D.png?imgmax=800" width="404" height="191"></a></p> <p>The DNS Server/s are saved in Traffic Management –> DNS -> Name Servers (Shown below)</p> <p><a href="https://lh3.googleusercontent.com/-BuIrFcn9HQc/V5yGeLRK-HI/AAAAAAAAF6o/JY-rQcf1Nk8/s1600-h/image%25255B81%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-vtghioOX0Gg/V5yGej5tK1I/AAAAAAAAF6s/ihC53eo7i40/image_thumb%25255B26%25255D.png?imgmax=800" width="404" height="105"></a></p> <p>The Hostname can be changed at any time by re-entering the welcome wizard or by using the CLI</p> <p>To quickly view the Hostname, click your username in the top right<br></p><a href="https://lh3.googleusercontent.com/-af_9hmLXFUk/V5yGfHoiNqI/AAAAAAAAF6w/pKUpVwofJH0/s1600-h/image%25255B84%25255D.png"><strong><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-GWG9AgIaEIk/V5yGfvGZY1I/AAAAAAAAF60/huu2a-NhG78/image_thumb%25255B27%25255D.png?imgmax=800" width="254" height="201"></strong></a> <p><strong>License the NetScaler</strong></p> <p>1. Click the Licenses step in the wizard</p> <p><a href="https://lh3.googleusercontent.com/-sg44O17YI0Y/V5yGgAl-rVI/AAAAAAAAF64/KVdLGVm_OZ8/s1600-h/image%25255B20%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-ZUEo4lB4nvg/V5yGgSamtCI/AAAAAAAAF68/Fcma3YWJ0ck/image_thumb%25255B6%25255D.png?imgmax=800" width="404" height="40"></a></p> <p>2. You have a few options for adding a license. I’m going to use a License Access Code<br><br><a href="https://lh3.googleusercontent.com/-i3QhOP_QiXc/V5yGgxkuHqI/AAAAAAAAF7A/nf-QU7n9nrI/s1600-h/image%25255B23%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-2yOX4zKm3rQ/V5yGhqga3aI/AAAAAAAAF7E/VIji1BsjuFE/image_thumb%25255B7%25255D.png?imgmax=800" width="404" height="373"></a></p> <p>3. No matter how you add the licenses, you will need to reboot after adding them, so go ahead and do that</p> <p><a href="https://lh3.googleusercontent.com/-UkHQBKOx8PE/V5yGiFTt2JI/AAAAAAAAF7I/wK7muC97-oM/s1600-h/image%25255B26%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-7-WOvWLDo3s/V5yGiqb8JGI/AAAAAAAAF7M/-DIsEw5VFGY/image_thumb%25255B8%25255D.png?imgmax=800" width="389" height="381"></a></p> <p>4. After restarting, you will be told what you have been licensed for, and the wizard should disappear</p> <p><a href="https://lh3.googleusercontent.com/-CWkIXuj3CcM/V5yGjA6H0hI/AAAAAAAAF7Q/6HsA1E3Hc5M/s1600-h/image%25255B29%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-XYKrPh3zjno/V5yGjvMVteI/AAAAAAAAF7U/t8EiI0NyWrs/image_thumb%25255B9%25255D.png?imgmax=800" width="404" height="310"></a></p> <p><strong>Returning to the Wizard</strong></p> <p>If you want to return to the wizard at any time, select the “Cog” in the top right corner of the menu</p> <p><a href="https://lh3.googleusercontent.com/-HOySK317Py4/V5yGkA_Yz3I/AAAAAAAAF7Y/m8tFnZ8gIhY/s1600-h/image%25255B32%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-F1Otj_VC5Sk/V5yGkgcw_DI/AAAAAAAAF7c/gfnH-8wYamU/image_thumb%25255B10%25255D.png?imgmax=800" width="404" height="23"></a></p> <p><strong>Configure NTP</strong></p> <p>It’s important for your NetScaler to have a reliable time source, so it’s best to configure an NTP server</p> <p>1. Select Configuration in the top menu</p> <p><a href="https://lh3.googleusercontent.com/-4UTQBLziT0A/V5yGk1FoERI/AAAAAAAAF7g/L7weBU7dnNs/s1600-h/image%25255B35%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-xqziOZIQHP4/V5yGlTyjo3I/AAAAAAAAF7k/zAsIB_GCxtE/image_thumb%25255B11%25255D.png?imgmax=800" width="404" height="32"></a></p> <p>2. Select System and then NTP Servers in the left menu</p> <p><a href="https://lh3.googleusercontent.com/-k_KnxLAxmRI/V5yGl77qTzI/AAAAAAAAF7o/QShb762_gio/s1600-h/image%25255B38%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-4GR5M7-Oljw/V5yGmWePbmI/AAAAAAAAF7s/GR7Fc99Sys4/image_thumb%25255B12%25255D.png?imgmax=800" width="262" height="219"></a></p> <p>3. Click Add</p> <p><a href="https://lh3.googleusercontent.com/-tCSvTXsoyMY/V5yGmy3E3vI/AAAAAAAAF7w/4-b14N3oV5w/s1600-h/image%25255B41%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-uIlXYlF0ors/V5yGnXwCzBI/AAAAAAAAF70/QQZ5FOoO9QU/image_thumb%25255B13%25255D.png?imgmax=800" width="404" height="98"></a></p> <p>4. Enter an NTP server address and click Create</p> <p><a href="https://lh3.googleusercontent.com/-dO3pVliEoNc/V5yGn4spwtI/AAAAAAAAF74/8Mi934RtVEE/s1600-h/image%25255B44%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-ll0LzGLBW68/V5yGoaY_CbI/AAAAAAAAF78/hndTbbVEFW8/image_thumb%25255B14%25255D.png?imgmax=800" width="404" height="338"></a></p> <p>5. Repeat the process for any additional NTP Servers</p> <p><a href="https://lh3.googleusercontent.com/-10RlyGU7w9I/V5yGo2c1sjI/AAAAAAAAF8A/N3n_KTH-hbk/s1600-h/image%25255B47%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-toOBTEQ4oLU/V5yGpA7UVfI/AAAAAAAAF8E/hhHlzXH8gkE/image_thumb%25255B15%25255D.png?imgmax=800" width="404" height="113"></a></p> <p>You may need to enable NTP synchronisation, to do this follow the steps below:</p> <p>6. Click the Select Action drop down menu</p> <p><a href="https://lh3.googleusercontent.com/--cforR5B01M/V5yGpgZbNJI/AAAAAAAAF8I/J-28pcy4zbU/s1600-h/image%25255B50%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-y0AHdaZknL8/V5yGqNX87PI/AAAAAAAAF8M/bv6PJj2bNKs/image_thumb%25255B16%25255D.png?imgmax=800" width="404" height="227"></a></p> <p>7. Select NTP Synchronisation</p> <p><a href="https://lh3.googleusercontent.com/-6nIx62_QgH4/V5yGqrVYJNI/AAAAAAAAF8Q/j2F_vqh57x0/s1600-h/image%25255B56%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-uwXZleAeyM0/V5yGrAQEKQI/AAAAAAAAF8U/1V080-41CRk/image_thumb%25255B18%25255D.png?imgmax=800" width="163" height="78"></a></p> <p>8. Select ENABLED and click OK</p> <p><a href="https://lh3.googleusercontent.com/-rfih8eV7NMc/V5yGrlgzz5I/AAAAAAAAF8Y/-kTDg7jgD3k/s1600-h/image%25255B53%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-MuoVWzK0oyM/V5yGsDvXIYI/AAAAAAAAF8c/6ZyMr4k416c/image_thumb%25255B17%25255D.png?imgmax=800" width="404" height="193"></a></p> <p>9. Save your configuration by clicking the Save Configuration icon in the top right</p> <p><a href="https://lh3.googleusercontent.com/-oYlmDBsVVaE/V5yGscoD2FI/AAAAAAAAF8g/HNgmI-ukgR4/s1600-h/image%25255B59%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-y35ZWBHhnS8/V5yGsybs_VI/AAAAAAAAF8k/VewLOJHomuY/image_thumb%25255B19%25255D.png?imgmax=800" width="156" height="47"></a></p> <p><strong>Change the default password</strong></p> <p>1. Click Configuration in the top menu</p> <p><a href="https://lh3.googleusercontent.com/-uQOkpls-5TQ/V5yGteogE9I/AAAAAAAAF8o/cMlTXbfWvGc/s1600-h/image%25255B66%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-AbazGDlzGfk/V5yGtxw--YI/AAAAAAAAF8s/ekYtRsny5_I/image_thumb%25255B21%25255D.png?imgmax=800" width="404" height="32"></a></p> <p>2. In the left menu, select System –> User Administration –> Users<br></p> <p><a href="https://lh3.googleusercontent.com/-W8ucyHSM_ts/V5yGuQ7vd8I/AAAAAAAAF8w/UIJoVslgxTQ/s1600-h/image%25255B62%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-3mig8uFL0KI/V5yGuw4wM8I/AAAAAAAAF80/rRc8sYlhSDw/image_thumb%25255B20%25255D.png?imgmax=800" width="263" height="387"></a></p> <p>3. Select the checkbox next to the nsroot user and click Change Password<br><br>IMPORTANT: The nsroot passwords on a HA pair of NetScaler devices must match</p> <p><a href="https://lh3.googleusercontent.com/-8t6gzU2mS50/V5yGvQFE8WI/AAAAAAAAF84/qgUgk830AvA/s1600-h/image%25255B72%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-1JizbfcUzOI/V5yGv7MsVsI/AAAAAAAAF88/ktg3z5e4sJA/image_thumb%25255B23%25255D.png?imgmax=800" width="391" height="201"></a></p> <p>You now have a One-Arm NetScaler deployment. In the next post, we will configure High Availability</p>Wayne Hoggetthttp://www.blogger.com/profile/17357074935928764761noreply@blogger.comtag:blogger.com,1999:blog-8060337482637071049.post-90836252492890448442016-06-23T20:36:00.001+10:002016-06-23T20:41:11.685+10:00Unable to update Desktop Catalog - No Hosts Available<p> <p><a href="https://lh3.googleusercontent.com/-2vCiPVKjRsg/V2u7iYrWC_I/AAAAAAAAF5A/wNqtg7eX6nk/s1600-h/clip_image001%25255B6%25255D.png"><img title="clip_image001" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="clip_image001" src="https://lh3.googleusercontent.com/-XEprhI-1UuE/V2u7jD80wLI/AAAAAAAAF5I/qdZ3YRO8av4/clip_image001_thumb%25255B1%25255D.png?imgmax=800" width="404" height="15"></a> <p>Error Message</p> <table cellspacing="0" cellpadding="2" width="262" border="1"> <tbody> <tr> <td valign="top" width="260"> <p>Provisioning scheme master image update workflow operation failed : System.InvalidOperationException: Creation of Image Preparation VM Failed, message No hosts available. <p>at Citrix.MachineCreation.NewProvisioningSchemeSupport.NewProvisioningSchemeLogic.HandleImagePreparationVmCreatedInvoked(IImageReplicatingWorkflow context, ImagePreparationVmCreatedEventArgs e) <p>at System.Workflow.ComponentModel.Activity.RaiseGenericEvent[T](DependencyProperty dependencyEvent, Object sender, T e) <p>at System.Workflow.Activities.HandleExternalEventActivity.RaiseEvent(Object[] args) <p>at System.Workflow.Activities.HandleExternalEventActivity.Execute(ActivityExecutionContext executionContext) <p>at System.Workflow.ComponentModel.ActivityExecutor`1.Execute(T activity, ActivityExecutionContext executionContext) <p>at System.Workflow.ComponentModel.ActivityExecutorOperation.Run(IWorkflowCoreRuntime workflowCoreRuntime) <p>at System.Workflow.Runtime.Scheduler.Run()</p></td></tr></tbody></table> <p>Check your hosts in VMM to see if they need attention, if they do, resolve the issues using VMM and the above error will go away:Citr <p><a href="https://lh3.googleusercontent.com/-TR6fyWyu-Uw/V2u7jiKTE_I/AAAAAAAAF5Q/iuA6JcWWcQM/s1600-h/clip_image002%25255B3%25255D.png"><img title="clip_image002" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="clip_image002" src="https://lh3.googleusercontent.com/-wIUQBOuu73k/V2u7kY0yA7I/AAAAAAAAF5Y/p8_Vst1Zsa0/clip_image002_thumb.png?imgmax=800" width="141" height="48"></a>Wayne Hoggetthttp://www.blogger.com/profile/17357074935928764761noreply@blogger.comtag:blogger.com,1999:blog-8060337482637071049.post-486239927510366922016-06-23T20:31:00.001+10:002016-06-23T20:31:34.427+10:00Installing NetScaler VPX on Client Hyper-V (Windows 10)<ol> <li>Head over here and grab yourself a free 90-day trial:<br><br><a title="https://www.citrix.com/products/netscaler-adc/get-started.html" href="https://www.citrix.com/products/netscaler-adc/get-started.html">https://www.citrix.com/products/netscaler-adc/get-started.html</a><br></li> <li>Download the Hyper-V edition<br><br><a href="https://lh3.googleusercontent.com/-vLrBjp1UoCI/V2u6PI6tKvI/AAAAAAAAF1I/k07o0UHmYAQ/s1600-h/image%25255B2%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-TW9nhI20lO4/V2u6P3oxwQI/AAAAAAAAF1Q/_7jRQF0PIBg/image_thumb.png?imgmax=800" width="404" height="140"></a><br></li> <li>Extract the zip file</li> <li>Importing the Virtual Machine didn’t work for me</li> <li>Let’s create the VM manually. Open Hyper-V Manager, New –> Virtual Machine<br><br><a href="https://lh3.googleusercontent.com/-9r-AQozQuhg/V2u6QbEeSgI/AAAAAAAAF1Y/kcbYXKrDkxA/s1600-h/image%25255B5%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-Emhwadew9u0/V2u6Q-RpdVI/AAAAAAAAF1g/_3CTDN3Xczo/image_thumb%25255B1%25255D.png?imgmax=800" width="404" height="75"></a><br></li> <li>Click Next on the “Before you begin” window if it displays</li> <li>Give your VM a name and a location<br><br><a href="https://lh3.googleusercontent.com/-_9EkVPLbp60/V2u6R0YqRVI/AAAAAAAAF1o/8O1v6UmLFaA/s1600-h/image%25255B8%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-HOlNJQKf4KE/V2u6SWEIUtI/AAAAAAAAF1w/wkVJmaU7ZhE/image_thumb%25255B2%25255D.png?imgmax=800" width="404" height="307"></a><br></li> <li>Select Generation 1 and click Next<br><br><a href="https://lh3.googleusercontent.com/-mg-1JAzFEyQ/V2u6TAIGQQI/AAAAAAAAF14/2vRM7dfyPqw/s1600-h/image%25255B14%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-7C1zVgPrDXs/V2u6Tw53ZrI/AAAAAAAAF2A/a_oW8-OrUxE/image_thumb%25255B4%25255D.png?imgmax=800" width="404" height="307"></a></li> <li>Provide at least 2GB of memory, disable dynamic memory and click Next<br><br><a href="https://lh3.googleusercontent.com/-C9ZyL-wjRj4/V2u6US8jqRI/AAAAAAAAF2I/J0xvJyEfOVg/s1600-h/image%25255B17%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-C0FQ1OngSNE/V2u6VGI34HI/AAAAAAAAF2Q/x5uJBtcu_ww/image_thumb%25255B5%25255D.png?imgmax=800" width="404" height="307"></a><br></li> <li>Connect it to a network and click Next<br><br><a href="https://lh3.googleusercontent.com/-uBZIHkFAL7U/V2u6VkrF5KI/AAAAAAAAF2Y/A4dG9C4hbwk/s1600-h/image%25255B20%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-qCOGf44Uy6c/V2u6WfoIi2I/AAAAAAAAF2g/_osvrzYa06Q/image_thumb%25255B6%25255D.png?imgmax=800" width="404" height="307"></a><br></li> <li>Select “Attach a virtual hard disk later” and click Next<br><br><a href="https://lh3.googleusercontent.com/-rZ14NGGESOw/V2u6XMuwBEI/AAAAAAAAF2o/ctG2GvN9ZRY/s1600-h/image%25255B26%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-HUTaTAAi7RU/V2u6XyadU-I/AAAAAAAAF2w/WFQ4xuJrnRY/image_thumb%25255B8%25255D.png?imgmax=800" width="404" height="307"></a><br></li> <li>Click Finish</li> <li>In the root directory of the newly-create VM, create a Virtual Hard Disks folder<br><br><a href="https://lh3.googleusercontent.com/-AC2ktUrrRyk/V2u6YO4C0MI/AAAAAAAAF24/hMald6pnp5Y/s1600-h/image%25255B44%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-PSFpRdN7Vs0/V2u6Y4HUs8I/AAAAAAAAF3A/q0WBHcjCLyc/image_thumb%25255B14%25255D.png?imgmax=800" width="216" height="47"></a><br></li> <li>Copy the Dynamic.vhd file from the extracted source to the Virtual Hard Disks folder for the newly created VM<br><br><a href="https://lh3.googleusercontent.com/-FrY6HmjnEiE/V2u6ZV0CFMI/AAAAAAAAF3I/5BlYJxhuq_s/s1600-h/image%25255B35%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-bcTCXqVHzlI/V2u6Z0EJ-UI/AAAAAAAAF3Q/owIEl7-EWQ8/image_thumb%25255B11%25255D.png?imgmax=800" width="404" height="166"></a><br><a href="https://lh3.googleusercontent.com/-x69_9Lj7x7E/V2u6avAk0mI/AAAAAAAAF3Y/Zpi5S9lvn88/s1600-h/image%25255B38%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-TVjQEAEkEe8/V2u6bAebTCI/AAAAAAAAF3g/Q4Qj7BYK8D8/image_thumb%25255B12%25255D.png?imgmax=800" width="301" height="142"></a><br></li> <li>Edit the Virtual Machine settings<br><br><a href="https://lh3.googleusercontent.com/-HX4dTh3O-Nc/V2u6bk4QsOI/AAAAAAAAF3o/k098iHy7Qs4/s1600-h/image%25255B32%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-a-W92dc40lI/V2u6cK2fZ_I/AAAAAAAAF3w/n4rBC3im1BI/image_thumb%25255B10%25255D.png?imgmax=800" width="319" height="142"></a><br></li> <li>Change the number of virtual CPUs to 2<br><br><a href="https://lh3.googleusercontent.com/-3RiL1gUQ7js/V2u6c2yKPqI/AAAAAAAAF34/qT1S_vPXmqE/s1600-h/image%25255B41%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-OOlTCkTpymo/V2u6dkmEKFI/AAAAAAAAF4A/TEH4QUr_h0I/image_thumb%25255B13%25255D.png?imgmax=800" width="404" height="169"></a><br></li> <li>Attach the Dynamic.VHD file that you copied over<br><br><a href="https://lh3.googleusercontent.com/-Hux5rNq1gtM/V2u6eC9o-lI/AAAAAAAAF4I/-_ls5NIJiVQ/s1600-h/image%25255B53%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-8dK4GivedP4/V2u6eo-mSSI/AAAAAAAAF4Q/m4-gXaFP44A/image_thumb%25255B17%25255D.png?imgmax=800" width="404" height="94"></a><br></li> <li>Click OK</li> <li>Start the VM</li> <li>Wait for it to boot up</li> <li>Enter an IP Address, Subnet Mask and Gateway<br><br><a href="https://lh3.googleusercontent.com/-lgQs6IIxdCQ/V2u6fN_n_oI/AAAAAAAAF4Y/qwpe2qTWedo/s1600-h/image%25255B56%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-JxTp22lcC1Q/V2u6fz2VQiI/AAAAAAAAF4g/gFbv8jG5TqY/image_thumb%25255B18%25255D.png?imgmax=800" width="404" height="254"></a><br></li> <li>If you are happy with the settings select 4 to save and quit</li> <li>Wait a while for the NetScaler to become ready, restart it if required</li> <li>Access it via the browser, using HTTP initially, and a supported browser</li> <li>The default login details are nsroot/nsroot<br><br><a href="https://lh3.googleusercontent.com/-ccpmwXX4o_8/V2u6gRcvvhI/AAAAAAAAF4o/Mnai-U59h28/s1600-h/image%25255B59%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-DNfDoKVvmmc/V2u6hJS0CtI/AAAAAAAAF4w/lrpEQ6R7phI/image_thumb%25255B19%25255D.png?imgmax=800" width="404" height="198"></a><br></li> <li>Next, you’ll need to finish configuring your NetScaler, but I’ll save that for another post</li></ol>Wayne Hoggetthttp://www.blogger.com/profile/17357074935928764761noreply@blogger.comtag:blogger.com,1999:blog-8060337482637071049.post-76406506529326457652016-05-08T19:12:00.001+10:002016-05-08T19:12:48.101+10:00Procedure: Prepare a master image<h2>Introduction</h2> <p>A master image contains the operating system, non-virtualised applications, VDA and any other software. VMs are created from a master image.</p> <p>A few important notes:</p> <ul> <li>Cloud deployments use templates rather than master images</li> <li>Remote PC Access machine catalogs do not use master images, instead an OU (Organisational Unit) is used</li> <li>Do not run Sysprep on the master image</li> <li>Create the master images on the hypervisor host where the machines will be created</li></ul> <h2>Procedure</h2> <ol> <li>Using your hypervisor management tool (In my case Hyper-V) create a virtual machine, install all the updates and service packs. Ensure you have selected an appropriate virtual hard disk size. Make sure the hard disk is at device location 0<br><br>The below screenshot shows the virtual hard disk configuration, which is crucial for this step.<br><br><a href="https://lh3.googleusercontent.com/-Uk2aEm4_Opk/Vy8C_0rhrQI/AAAAAAAAF0Y/v1R-AvaYGPw/s1600-h/image%25255B59%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-GSMCP5uKfro/Vy8DAkmO8oI/AAAAAAAAF0c/HN9OapLf8JM/image_thumb%25255B19%25255D.png?imgmax=800" width="404" height="358"></a><br><br></li> <li>Install and configure the following in the base image:</li> <ul> <li>Integration tools for the Hypervisor (To do this using VMM, shutdown the VM and select Install Virtual Guest Services)<br><br><a href="https://lh3.googleusercontent.com/-13Pn9WGv26A/Vy8DAzA4cDI/AAAAAAAAF0g/c-En6Y6UY0w/s1600-h/image%25255B65%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-uDdO4zLJkgA/Vy8DBdGZmjI/AAAAAAAAF0k/eRi2kmX5Y6w/image_thumb%25255B21%25255D.png?imgmax=800" width="404" height="84"></a></li> <li>The VDA<br><br><a href="https://lh3.googleusercontent.com/-3PZ0EJDCtzw/Vy8DB7t6nJI/AAAAAAAAF0o/RgpY4mkhoUw/s1600-h/image%25255B68%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-GFyY2ytjTgg/Vy8DCucAABI/AAAAAAAAF0s/mPIc25VM4zc/image_thumb%25255B22%25255D.png?imgmax=800" width="280" height="150"></a><br><a href="https://lh3.googleusercontent.com/-0LLlsr8Nmjw/Vy8DDAPFCwI/AAAAAAAAF0w/C1jBFL7sTpo/s1600-h/image%25255B71%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-_5YXtvojZIk/Vy8DDgr2MLI/AAAAAAAAF00/RHtMmjNUafQ/image_thumb%25255B23%25255D.png?imgmax=800" width="404" height="166"></a></li> <li>Third-party tools (e.g. AV or software distribution)</li> <ul> <li>Anti-virus exclusions: <a title="http://support.citrix.com/article/CTX127030" href="http://support.citrix.com/article/CTX127030">http://support.citrix.com/article/CTX127030</a><br><a title="https://www.citrix.com/blogs/2013/09/22/citrix-consolidated-list-of-antivirus-exclusions/" href="https://www.citrix.com/blogs/2013/09/22/citrix-consolidated-list-of-antivirus-exclusions/">https://www.citrix.com/blogs/2013/09/22/citrix-consolidated-list-of-antivirus-exclusions/</a></li></ul> <li>Install any non-virtualised applications, you might choose to install Microsoft Office or Acrobat Reader for example, if they are used by a majority of the users who will be utilising the master image. Minimise the number of non-virtualised applications</li> <li>App-V if required</li> <li>Any localisation (language packs and locales)</li></ul> <li>Join the master image to the domain</li> <li>Create a snapshot for your master image and name it appropriately</li> <li>Create a machine catalog from the snapshot</li></ol>Wayne Hoggetthttp://www.blogger.com/profile/17357074935928764761noreply@blogger.comtag:blogger.com,1999:blog-8060337482637071049.post-57648088805772160592016-05-04T20:18:00.001+10:002016-05-04T20:18:03.441+10:00Procedure: Add machines to a Machine Catalog<p><strong></strong> </p> <h2>Using Citrix Studio</h2> <ol> <li>Open Citrix Studio and navigate to Citrix Studio –> Machine Catalogs <li>Right-click the machine catalogue and select Add Machines<br><br><a href="https://lh3.googleusercontent.com/-6nmibtFuP_w/VynMQMtGXlI/AAAAAAAAFzQ/mHpB0PFefOE/s1600-h/image_thumb8%25255B2%25255D.png"><img title="image_thumb8" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px; display: inline; padding-right: 0px" border="0" alt="image_thumb8" src="https://lh3.googleusercontent.com/-L1JGuQ_gvD8/VynMQvUiZ1I/AAAAAAAAFzU/gZ3fraS1GI0/image_thumb8_thumb.png?imgmax=800" width="244" height="75"></a><br> <li>Select the number of machines you want to add and click Next<br><br><a href="https://lh3.googleusercontent.com/-r7IdMtUTqkI/VynMROpHnMI/AAAAAAAAFzY/dhXb37BhBfs/s1600-h/image_thumb10%25255B2%25255D.png"><img title="image_thumb10" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px; display: inline; padding-right: 0px" border="0" alt="image_thumb10" src="https://lh3.googleusercontent.com/-MANUYk_VxoU/VynMRtPHTEI/AAAAAAAAFzc/8FcE5RtELAI/image_thumb10_thumb.png?imgmax=800" width="244" height="178"></a><br> <li>You can create new accounts or use existing accounts<br><br>If you are creating new accounts:</li></ol> <blockquote> <p>Select the locaiton for the accounts, and provide a naming convention, hashes # are used to provide dynamic names using either numbers or letters.<br><br><a href="https://lh3.googleusercontent.com/-0dkbe20Vydc/VynMSPU6rsI/AAAAAAAAFzg/ERLtGPF6p3o/s1600-h/image26_thumb1%25255B2%25255D.png"><img title="image26_thumb1" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px; display: inline; padding-right: 0px" border="0" alt="image26_thumb1" src="https://lh3.googleusercontent.com/-Gj-lO7VoX6s/VynMSmPxlmI/AAAAAAAAFzk/e8-jyvfv0ME/image26_thumb1_thumb.png?imgmax=800" width="240" height="175"></a><br><br><br>If you are using existing accounts:</p> <p>Browse for the existing accounts or import the accounts from a CSV file and select the appropriate password management option. If using a CSV file, the column title must be ‘[ADComputerAccount]’. You need to include the square brackets, but not the quotes in the column heading. In both cases the computer accounts must be prestaged.</p> <p>Once complete, click Next and then Finish.<br><br><a href="https://lh3.googleusercontent.com/-r0o_FNlk5b0/VynMTOd6y8I/AAAAAAAAFzo/EpvYRmtTms8/s1600-h/image_thumb12%25255B2%25255D.png"><img title="image_thumb12" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px; display: inline; padding-right: 0px" border="0" alt="image_thumb12" src="https://lh3.googleusercontent.com/-tyWlJaEsokU/VynMTl6m2NI/AAAAAAAAFzs/du4WHBYSs_Q/image_thumb12_thumb.png?imgmax=800" width="244" height="179"></a></p></blockquote> <h2>Using PowerShell</h2> <p>The below commands are being run from the XenDesktop Controller with an account that has permissions to create computer accounts.</p> <p>Add the PowerShell snap-in for Citrix</p> <ol> <li>Create a computer account in Active Directory for the new machine using New-AcctADAccount<br><br><a href="https://lh3.googleusercontent.com/-ceJia7IAH30/VynMUGB-sbI/AAAAAAAAFzw/GyuPjFc5PFY/s1600-h/image%25255B27%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-rRUUR9yOzio/VynMUt0QC8I/AAAAAAAAFz0/qBHRYSl8MMg/image_thumb%25255B8%25255D.png?imgmax=800" width="182" height="26"></a><br></li> <li>Create a Virtual Machine using New-ProvMachine<br><br><a href="https://lh3.googleusercontent.com/-hlFK_4iFof4/VynMVJ9IJ3I/AAAAAAAAFz4/wh9Kqgl8Tww/s1600-h/image%25255B31%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-oayeGgYnw-w/VynMVvOvjMI/AAAAAAAAFz8/_rsFIo7smRU/image_thumb%25255B9%25255D.png?imgmax=800" width="244" height="158"></a><br></li> <li>Add the machine using New-BrokerMachine<br><br><a href="https://lh3.googleusercontent.com/-KvpHvTdPivA/VynMWNaVDXI/AAAAAAAAF0A/Z2ksmPTwowE/s1600-h/image%25255B35%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px auto; display: block; padding-right: 0px" border="0" alt="image" src="https://lh3.googleusercontent.com/-u-2ZTMpj-sI/VynMWtiaanI/AAAAAAAAF0E/TWfyNuXqLTA/image_thumb%25255B10%25255D.png?imgmax=800" width="243" height="244"></a></li></ol>Wayne Hoggetthttp://www.blogger.com/profile/17357074935928764761noreply@blogger.comtag:blogger.com,1999:blog-8060337482637071049.post-25354750383225538042016-05-02T13:14:00.001+10:002016-05-02T13:15:14.991+10:00Citrix Certification – Here I come!Oh, back to blogging. It feels good to be posting again. I will be posting study material as I prepare for my Citrix Certification. In my Citrix Certification journey, I will be preparing for the following exams, in the order listed below:<br />
<ol>
<li>1Y0-201 - <a href="http://training.citrix.com/mod/ctxcatalog/course.php?id=1184" title="http://training.citrix.com/mod/ctxcatalog/course.php?id=1184">http://training.citrix.com/mod/ctxcatalog/course.php?id=1184</a></li>
<li>1Y0-301 - <a href="http://training.citrix.com/mod/ctxcatalog/course.php?id=1185" title="http://training.citrix.com/mod/ctxcatalog/course.php?id=1185">http://training.citrix.com/mod/ctxcatalog/course.php?id=1185</a></li>
<li>1Y0-351 - <a href="http://training.citrix.com/mod/ctxcatalog/course.php?id=958" title="http://training.citrix.com/mod/ctxcatalog/course.php?id=958">http://training.citrix.com/mod/ctxcatalog/course.php?id=958</a></li>
</ol>
Having worked with NetScaler and XenDesktop for many years, It will be good to see what has changed in the latest versions.Wayne Hoggetthttp://www.blogger.com/profile/17357074935928764761noreply@blogger.comtag:blogger.com,1999:blog-8060337482637071049.post-80631584705181158502015-10-22T20:33:00.001+10:002015-10-22T20:33:48.075+10:0070-411 Exam Cram - Configure network services and access<h2>Configure virtual private network (VPN) and routing</h2> <h3>Install and configure the Remote Access role</h3> <ul> <li>The Routing Windows Feature which is a Role Service of the RemoteAccess Role provides NAT routing functionality <li>A Virtual Private Network (VPN) Server must have at least 2 network adapters, one connected to the private network and one connected to the Internet</li></ul> <h3>Implement Network Address Translation (NAT)</h3> <ul> <li>Network address translation (NAT) allows you to share a connection to the public Internet through a single interface with a single public IP address</li></ul> <h3>Configure VPN settings</h3> <ul> <li>EAP is required to support smart cards. You can use this protocol only if you are using RADIUS authentication or if the Remote Access Server performing authentication is domain-joined <li>IKEv2 is the latest VPN tunneling protocol supported by Windows. It is the most secure and includes support for IPv6 and fast VPN reconnect <li>SSTP includes support for Windows Vista and uses port 443 making it ideal for networks that block regular VPN traffic <li>L2TP/IPSec supports smart cards and is the most secure method supported by Windows XP</li></ul> <h3>Configure remote dial-in settings for users</h3> <ul> <li>You can control access through Network Policy Server (NPS) policies or through Active Directory. NPS provides greater control. To grant access without using NPS, set the User's dial-in properties to Allow access. The default setting in Windows Server 2012 R2 is to control access through NPS</li></ul> <h3>Configure routing</h3> <ul> <li>route add <destination> mask <mask> <gateway> metric <cost metric, or default to 1></li></ul> <h3>Configure Web Application Proxy in pass-through mode</h3> <ul> <li>Web Application Proxy can be used to provide clientless (no special software required on the client) access to internal web applications <li>To enable authentication on Web Application Proxy (not pass-through), you will need to deploy an Active Directory Federation Services (AD FS) server</li></ul> Wayne Hoggetthttp://www.blogger.com/profile/17357074935928764761noreply@blogger.comtag:blogger.com,1999:blog-8060337482637071049.post-66078332300776165442015-10-22T20:28:00.001+10:002015-10-22T20:28:34.853+10:0070-411 Exam Cram - Configure network services and access<h2>Configure DNS records</h2> <h3><font size="2">Configure DNS Records including A, AAAA, PTR, SOA, NS, SRV, CNAME and MX Records</font></h3> <ul> <li>A records map host names to IPv4 addresses <li>AAAA records map host names to IPv6 addresses <li>PTR records are used for reverse DNS lookups <li>SOA records host authoritative zone information <li>SRV records specific service locations. Many newer software applications use SRV records. Such as Exchange ActiveSync and Citrix Receiver <li>CNAME records are used for aliases <li>MX records are used to specify mail servers for a domain <li>A lower preference on MX records ensures that those servers are used first <li>SRV records have a priority associated with them, records with a lower priority are used first</li></ul> <h3><font size="2">Configure zone scavenging</font></h3> <ul> <li>Use the Set-DnsServerZoneAging cmdlet to configure scavenging on a DNS zone. The -NoRefreshInterval parameter is used to configure, after how much time, a record can be removed. The -RefreshInterval is the allowed time between updates</li></ul> <h3><font size="2">Configure record options, including Time to Live (TTL) and weight</font></h3> <ul> <li>The SOA Record contains the authoritative name server for a zone and the general zone properties, including:</li> <ul> <li>Serial number - Used by secondary servers to determine if a zone has changed <li>Refresh interval - Used to determine at which interval a secondary server checks for updates <li>Retry interval - Used to determine how long a secondary server waits to retry after a failed zone transfer <li>Expires After - Determines how long a secondary server will respond to DNS queries if it is unable to update from the primary server <li>Minimum (default) TTL - The amount of time a secondary server uses a record before it is expired and discarded <li>TTL for this record - The TTL for the SOA record itself</li></ul> <li>Dnscmd can be used to modify these values</li></ul> <h3><font size="2">Configure round robin</font></h3> <ul> <li>Round-Robin DNS allows for load balancing by pointing the same FQDN to different IP addresses <li>DNS Round-Robin can only be used with A Records</li></ul> <h3><font size="2">Configure secure dynamic updates</font></h3> <ul> <li>When Dynamic Updates is configured to 'Secure only', only the computers that are members of the DNS domain can register themselves with the DNS server. The DNS server automatically rejects the requests from the computers that do not belong to the domain <li>When Dynamic Updates are configured, clients can register and dynamically update their resource records with a DNS server whenever changes occur</li></ul> Wayne Hoggetthttp://www.blogger.com/profile/17357074935928764761noreply@blogger.comtag:blogger.com,1999:blog-8060337482637071049.post-79159190389096140322015-10-22T20:24:00.001+10:002015-10-22T20:24:55.759+10:0070-411 Exam Cram - Configure network services and access<h2><font size="3">Configure DNS Zones</font></h2> <h3><font size="2">Configure primary and secondary zones</font></h3> <ul> <li>Secondary Zones are not writable, but do include a full copy of the zone database <li>Active Directory integrated zones can be updated on all Domain Controllers except Read-Only Domain Controllers <li>Secondary servers can be a replica of an Active Directory integrated zone if they are permitted to on the Zone Transfers tab</li></ul> <h3><font size="2">Configure stub zones</font></h3> <ul> <li>Stub Zones speed up name resolution and limit zone transfers <li>Stub zones provide a dynamic list of name servers for a zone</li></ul> <h3><font size="2">Configure conditional forwards</font></h3> <ul> <li>Conditional Forwarders and Stub Zones can be replicated but with domain controllers in the forest or domain but forwarders cannot <li>Conditional forwarders forward requests for a specific domain to specific DNS servers <li>The conditional forwarder cmdlet is Add-DNSServerConditionalForwarderZone</li></ul> <h3><font size="2">Configure zone and conditional forward storage in Active Directory</font></h3> <ul> <li>Conditional Forwarders can be stored in Active Directory using the -ReplicationScope parameter of the Add-DNSConditionalForwarder cmdlet</li></ul> <h3><font size="2">Configure zone delegation</font></h3> <ul> <li>Create a DNS zone delegation using the Add-DnsServerZoneDelegation cmdlet. You need to specify the Name of the parent zone, the ChildZoneName, the NameServer and the IPAddress of the name server/s <li>Delegating a Zone allows the resolution of that zone to be handled by an alternate DNS server</li></ul> <h3><font size="2">Configure zone transfer settings</font></h3> <ul> <li>The Set-DnsServerPrimaryZone cmdlet can be used with the -SecureSecondaries parameter to configure zone transfer settings</li></ul> <h3><font size="2">Configure notify settings</font></h3> <ul> <li>The Primary DNS server can notify a secondary server when changes are made to the zone database to improve the accuracy of records in the secondary database, by default the secondary DNS server queries the set refresh interval <li>Configure DNS Notify for a zone by opening the properties of the zone and clicking Notify on the Zone Transfers tab</li></ul> Wayne Hoggetthttp://www.blogger.com/profile/17357074935928764761noreply@blogger.comtag:blogger.com,1999:blog-8060337482637071049.post-18885066021944059832015-10-22T20:21:00.001+10:002015-10-22T20:21:02.980+10:0070-411 Exam Cram - Configure File and Print Services<h2><font size="3">Configure advanced audit policies</font></h2> <h3><font size="2">Implement auditing using Group Policy and AuditPol.exe</font></h3> <ul> <li>Auditpol.exe with the /get subcommand can be used to query audit policies, for example: Auditpol.exe /get /category:\"Object Access\" <li>Auditpol.exe with the /set subcommand can be used to query audit policies, for example: Auditpol.exe /set /Category:\"Object Access\" /Subcategory:\"File System\" /success:Enable <li>Auditpol.exe /backup can be used to backup audit settings and restore them to another server <li>Auditing can be enabled in the default domain policy if you wish to target domain and local accounts. Auditing is enabled under computer configuration. To audit both logons and logon attempts you need to enable both success and failure for 'Audit account logon attempts' <li>Auditing 'Object access' needs to be enabled in both Group Policy and on the security tab of the object you wish to audit <li>Audited events are recorded in the Security Event log <li>Auditing privilege use allows you to audit events when a user uses their special permissions, configure the setting on the server where the special permission is applied <li>You can ensure that simple auditing will not conflict with advanced audit policies by settings the "Audit: Force audit policy subcategory settings" group policy setting under "Security Settings\Local Policies\Security Options". Setting this value will cause the simple audit policies to be ignored</li></ul> <h3><font size="2">Create expression-based audit policies</font></h3> <ul> <li>Expression-based audit policies allow for the same conditions that are used for Dynamic Access Control, which includes user and device claims to be applied to auditing <li>You can configure Global auditing here: Computer Configuration/Policies/Windows Settings/Security Settings/Advanced Audit Policy Configuration/Audit Policies/Global Object Access Auditing. This setting is preferred over the old enable auditing and then turn it on per folder process that used to be required</li></ul> <h3><font size="2">Create removable device audit policies</font></h3> <ul> <li>You should edit the Advanced Audit Policy Configuration setting as it contains the new Audit Removable Storage setting. Only success should be enabled, as failure events will include audit events where the file was not successfully copied. You may also want to configure the Audit Handle Manipulation setting</li></ul> Wayne Hoggetthttp://www.blogger.com/profile/17357074935928764761noreply@blogger.comtag:blogger.com,1999:blog-8060337482637071049.post-46574254155936881812015-10-22T20:00:00.001+10:002015-10-22T20:00:16.876+10:0070-411 Exam Cram - Configure File and Print Services<h2><font size="3">Configure file and disk encryption</font></h2> <h3><font size="2">Configure BitLocker encryption</font></h3> <ul> <li>The BitLocker feature is named 'BitLocker'. To enable full disk encryption you must also install 'EnhancedStorage'. To manage BitLocker, you must install the management tools, which can be included with the '-IncludeManagementTools' parameter <li>To reset the Lockout on a TPM, run tpm.msc and from the action pane select Reset TPM Lockout, you will need a password saved in a .tpm file or the password itself <li>To reset the password on a TPM, you can either use the TPM Management MMC snap-in or run Set-TPMOwnerAuth, using either of these options will not result in data loss <li>Manage-Bde is not supported on Windows Server 2012 (it may work, but is deprecated)</li></ul> <h3><font size="2">Configure the Network Unlock feature</font></h3> <ul> <li>BitLocker Network Unlock requires DHCP, UEFI DHCP drivers on clients, Windows Deployment Services and at least Windows 8/Windows Server 2012. Windows Server 2012 R2 and Windows 8.1 are not required, but are supported <li>BitLocker Network Unlock requires various Group Policy settings. Configure use of passwords for operating system drives is not required to be configured</li></ul> <h3><font size="2">Configure BitLocker policies</font></h3> <ul> <li>To add the DRA to the Default Domain Policy - In versions of Windows prior to Windows Server 2003 the following policy setting was used: Computer Configuration\\Windows Settings\\Security Settings\\Public Key Policies\\Encrypted Data Recovery Agents. The correct policy setting for Windows Server 2012 R2 is Computer Configuration\\Windows Settings\\Security Settings\\Public Key Policies\\Encrypting File System</li></ul> <h3><font size="2">Configure the EFS recovery agent</font></h3> <ul> <li>Logon as the Data Recovery Agent and export the certificate including the private key. You must do this as the account that is the Data Recovery Agent (DRA), which will be the built-in Administrator account or another specified account <li>EFS uses certificates to authenticate users, the certificates can be issued by a single computer or by a CA</li></ul> <h3><font size="2">Manage EFS and BitLocker certificates, including backup and restore</font></h3> <ul> <li>Always export EFS recovery certificates with the private key</li></ul> Wayne Hoggetthttp://www.blogger.com/profile/17357074935928764761noreply@blogger.comtag:blogger.com,1999:blog-8060337482637071049.post-88241851407194812572015-10-22T19:52:00.001+10:002015-10-22T19:52:40.798+10:0070-411 Exam Cram - Configure File and Print Services<h2>Configure File Server Resource Manager</h2> <h3><font size="2">Install the FSRM role service</font></h3> <ul> <li>File Server Resource Manager provides advanced File Server functionality, including</li> <ul> <li>Quota management <li>File screening <li>Storage reports</li></ul></ul> <h3><font size="2">Configure quotas</font></h3> <ul> <li>There are two types of FSRM quotas:</li> <ul> <li>A hard quota prevents users from saving files after the space limit is reached and generates notifications when the volume of data reaches each configured threshold <li>A soft quota does not enforce the quota limit</li></ul> <li>You use New-FSRMAction to create actions that will be performed when a quota is exceeded, for example, send an email or log an event <li>You use New-FsrmQuotaThreshold to create a quota threshold and adding the action as a parameter <li>Then you combine it all into a template using New-FsrmQuotaTemplate. You can then apply the template to a share using New-FSRMQuota. The -Softlimit parameter must be used on the New-FSRMQuotaTemplate or New-FSRMQuota cmdlets to apply a soft limit that does not prevent users from saving files when the quota has been reached. Because the quota must apply to the parent folder and subfolders, the New-FSRMAutoQuota cmdlet must be used <li>New-FSRMQuota creates a quota directly on the folder specified. New-FSRMAutoQuota creates a quota on sub folders automatically <li>Dirquota.exe is deprecated in Windows Server 2012 R2, but it can still be used to create a new quota template. Server Manager cannot be used to perform this task</li></ul> <h3><font size="2">Configure File Screens</font></h3> <ul> <li>A file screen can be used to prevent users from saving unauthorised files to volumes or folders <li>A file screen exception is used to exempt a subfolder from a file screen <li>A file screen exception cannot be used on the same folder as a file screen <li>You can create custom file groups to block specific sets of files and use this file group when creating a file screen <li>A file screen template defines a set of file groups to screen, the type of screening to perform (active or passive), and (optionally) a set of notifications that will be generated when a user saves, or attempts to save, an unauthorized file <li>Use New-FSRMFileGroup to create a group of files to block, or use a default group <li>Use New-FSRMFileScreenTemplate to create a template, you will need to specify a FSRM Action (created using the New-FSRMAction cmdlet) -Active is used to make the file screen active or passive (-Active:$False) <li>Use the New-FSRMFileScreen to create a file screen <li>When configuring a File Screen, if you want to block all files except a few types, you need to put a wildcard in the "include" setting, e.g. *.*</li></ul> <h3><font size="2">Configure reports</font></h3> <ul> <li>The Set-FSRMSetting cmdlet can be used to configure FSRM Server settings including email settings for reports and notifications <li>The settings tab is used to configure which reports will be generated. The scope tab is used to configure which types of files and paths will be included in the report</li></ul> <h3><font size="2">Configure file management tasks</font></h3> <ul> <li>File management tasks can be used to automatically archive expired files. The condition tab is used to configure conditions, such as the number of days since a file was last modified. The action tab is used to set the expiration directory and the type of file management task</li></ul> Wayne Hoggetthttp://www.blogger.com/profile/17357074935928764761noreply@blogger.comtag:blogger.com,1999:blog-8060337482637071049.post-67153056604123517582015-10-22T19:48:00.001+10:002015-10-22T19:48:52.784+10:0070-411 Exam Cram - Configure File and Print Services<h2>Configure Distributed File System</h2> <h3><font size="2">Install and configure DFS namespaces</font></h3> <ul> <li>A standalone namespace is recommended if the namespace server is not a member of an Active Directory domain, or if the domain functional level is below Windows Server 2008</li></ul> <h3><font size="2">Configure DFS replication targets</font></h3> <ul> <li>Replication targets are not required to be namespace servers <li>You can create a custom topology to perform one-way replication between DFS replication targets <li>The 'Full mesh' replication topology will replicate data bi-directionally <li>Hub and spoke requires at least 3 servers <li>The 'Full mesh' replication topology is not recommended when you have a replication topology with more than 10 servers <li>EFS is not compatible with DFS replication</li></ul> <h3><font size="2">Configure Replication scheduling</font></h3> <ul> <li>The replication group schedule default is 24 hours a day 7 days a week. You can edit the replication group schedule to improve performance of other applications during business hours</li></ul> <h3><font size="2">Configure Remote Differential Compression settings</font></h3> <ul> <li>Remote Differential Compression is ideal in a Wide Area Network (WAN) scenario, because only the changes in files are replication. In a Local Area Network (LAN) environment or when there are large numbers of small files, Remote Differential Compression can decrease performance or cause high CPU utilisation</li></ul> <h3><font size="2">Configure staging</font></h3> <ul> <li>When configuring Distribution File System Replication (DFSR), you must size the conflict and deleted folder and staging folder appropriately. You can use the Set-DfsrMembership cmdlet to do this. If the folders are not sized appropriately, replication can be slow or stop. Cleaning up the staging folder will not resolve the issue permanently <li>Set-DFSRMembership is used to configure settings for a DFS replication member including the local content path, staging settings, and more <li>The staging folder should be configured as below:</li> <ul> <li>Read/Write - The staging folder should be as large as the largest 32 files <li>For Read Only - The staging folder should be as large as the largest 16 files</li></ul></ul> <h3><font size="2">Configure Fault Tolerance</font></h3> <ul> <li>To provide high availability for a DFS namespace, you can deploy the namespace server on a failover cluster using the DFS management snap-in</li></ul> <h3><font size="2">Clone a DFS Database</font></h3> <ul> <li>The export command and the creation of a replication group are run on the upstream server <li>The import command is run on the downstream server <li>The upstream and downstream servers do not need to be part of an existing replication group and replication does not need to be paused <li>Export-DFSRClone, Robocopy and Import-DFSRClone can be used to setup a new replica including the seeding of files <li>You can also use Windows Server Backup to preseed files</li></ul> <h3><font size="2">Recover DFS Databases</font></h3> <ul> <li>To manually recover a DFS database that has suffered an unexpeted shutdown, run the following command:</li> <ul> <li>wmic /namespace:\\root\microsoftdfs path dfsrVolumeConfig where volumeGuid="<volume-GUID>" call ResumeReplication</li></ul> <li>In the event of power failure resulting in corruption to the DFS database, you can clone a DFS database instead of waiting for automatic nonauthoritative recovery to complete, before importing a clone, remove the server from the replication group before starting recovery, use DFSRAdmin membership delete to complete this</li></ul> <h3><font size="2">Optimise DFS replication</font></h3> <ul> <li>The DFS Staging folder must be sized appropriately to optimise replication performance <li>If Event ID 4208 occurs many times in one hour, increase the size of the staging folder by 20%</li></ul> Wayne Hoggetthttp://www.blogger.com/profile/17357074935928764761noreply@blogger.comtag:blogger.com,1999:blog-8060337482637071049.post-87070871179362366212015-10-22T19:45:00.001+10:002015-10-22T19:45:10.741+10:0070-411 Exam Cram - Deploy, manage and maintain servers<h2><font size="3">Monitor servers</font></h2> <h3><font size="2">Configure Data Collector Sets</font></h3> <ul> <li>Data collector sets enable the collection of performance data, system configuration information and statistics into a single file <li>Data collector sets can include any of the following:</li> <ul> <li>Performance counter data - Data generated by performance counters <li>Event trace data - Track events and system activities, useful for troubleshooting issues with applications or services <li>System configuration information - Track the state of registry keys and record any modifications</li></ul> <li>Windows Server 2012+ includes the following built-in data collector sets:</li> <ul> <li>Active Directory diagnostics - Provides data on Active Directory health and reliability, only applies to DCs <li>System diagnostics - Enables you to troubleshoot problems with hardware, drivers and STOP errors <li>System performance - Enables you to diagnose problems with system performance</li></ul> <li>Data Collector Sets can have the following settings configured:</li> <ul> <li>Stop condition - Based on the file size of the log or the duration <li>Schedule - When to start collecting <li>Data Manager - How to collect data and limits on the required disk space before collection is allowed</li></ul></ul> <h3><font size="2">Configure Alerts</font></h3> <ul> <li>Performance counter alerts can be used to trigger an application or script to run when a performance counter reaches a threshold, either low or high. For example, low disk space or high CPU usage <li>A scheduled task can be triggered when an alert is triggered</li></ul> <h3><font size="2">Monitor Real-time performance</font></h3> <ul> <li>Real-time performance can be monitored using the Resource Monitor view of the Windows Performance Monitor <li>The command-line tool is: perfmon /res <li>When a problem process is found, the wait chain can be examined directly from Resource Monitor</li></ul> <h3><font size="2">Monitor Virtual Machines (VMs)</font></h3> <ul> <li>Requires a failover cluster <li>Resource pools can be monitored to monitor the aggregate usage of a resource by the guest VMs <li>The Get-VMResourcePool cmdlet can be used to view the resource pools <li>New resource pools can be created to monitor a subset of resources <li>The Enable-VMResourceMetering cmdlet is used to enable resource monitoring on pools <li>Only pools that have resources assigned are enabled when the Enable-VMResourceMetering is run <li>To create a new resource pool, run the New-VMResourcePool cmdlet and specify the parameters <li>The Measure-VM cmdlet can be use to return data collected by ResourceMetering, e.g. Get-VM | Measure-VM</li></ul> <h3><font size="2">Monitor events</font></h3> <ul> <li>VM Eventing keeps PowerShell objects updated without having to poll the virtual machine host, the cmdlet to enable VM Eventing is Enable-VMEventing <li>You can use custom views in Event Viewer to filter and view events across multiple logs. A view cannot filter across multiple logs. A PowerShell script could be used, but it would require too much administrative effort. A custom MMC console is not required, views can be stored in Event Viewer <li>You can attach tasks to events in Event Viewer to automatically remediate issues <li>Event logs can be filtered based on any number of attributes <li>Event log views can be used to create a customised view of events across any event log stored on a server, including events in the forwarded event log <li>Views differ from filters in the following ways:</li> <ul> <li>Persistent <li>Include multiple logs <li>Exportable</li></ul></ul> <h3><font size="2">Configure event subscriptions</font></h3> <ul> <li>Pull or Collector initiated configuration is best for small environments and it is the only method supported by workgroup scenarios <li>Push or Source initiated configuration is best for large environments as the source computers can be configured using Group Policy <li>wecutil qc must be run on the collector computer to configure event subscriptions <li>Event log forwarding uses Windows Remote Management (WinRM) and the Windows Event Collector (wecsvc). You need to enable these services on computers that function as event forwarders and event collectors <li>You configure WinRM using the winrm quickconfig command on source computers <li>You configure wecsvc using the wecutil qc command <li>If you want to configure subscriptions from the security event log, you need to add the computer account of the collector computer to the local Administrators group on the source computer <li>If you want to configure a source computer-initiated subscription, you need to configure the following group policies on the computers that will act as the event forwarders:</li> <ul> <li>Configure Forwarder Resource Usage This policy determines the maximum event forwarding rate in events per second. If this policy is not configured, events will be transmitted as soon as they are recorded. <li>Configure Target Subscription Manager This policy enables you to set the location of the collector computer <li>Both of the above policies are located in: Configuration\Policies\Administrative Templates\Windows Components\Event Forwarding</li></ul> <li>Event Viewer is used to configure event subscriptions</li></ul> <h3><font size="2">Configure network monitoring</font></h3> <ul> <li>The two primary tools used for network monitoring are:</li> <ul> <li>Resource Monitor</li> <ul> <li>Provides real time information <li>Cannot perform traffic capture <li>Provides the following information:</li> <ul> <li>Processes with Network Activity <li>Network activity <li>TCP connections <li>Listening ports</li></ul></ul> <li>Message analyser</li> <ul> <li>Replaces both Network Monitor and LogParser <li>Filters can be applied to traffic</li></ul></ul></ul> <h3><font size="2">Schedule performance monitoring</font></h3> <ul> <li>Windows Performance Monitor uses a consistent scheduling method for all data collection:</li> <ul> <li>During Data Collector Set creation , you can configure the schedule by selecting Open properties for this data collector set at the end of the Create New Data Collector Set Wizard <li>After a Data Collector Set has been created , you can access the schedule options by right-clicking the Data Collector Set name in the Microsoft Management Console (MMC) navigation pane and selecting Properties</li></ul></ul> Wayne Hoggetthttp://www.blogger.com/profile/17357074935928764761noreply@blogger.com