<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Scripting on Janik von Rotz</title>
    <link>https://janikvonrotz.ch/categories/scripting/</link>
    <description>Recent content in Scripting on Janik von Rotz</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Tue, 09 Mar 2021 16:06:27 +0100</lastBuildDate>
    <atom:link href="https://janikvonrotz.ch/categories/scripting/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Parse URL in shell script</title>
      <link>https://janikvonrotz.ch/2021/03/09/parse-url-in-shell-script/</link>
      <pubDate>Tue, 09 Mar 2021 16:06:27 +0100</pubDate>
      <guid>https://janikvonrotz.ch/2021/03/09/parse-url-in-shell-script/</guid>
      <description>&lt;p&gt;Use the bash script below to extract any segment of an URL. For example you can use it like this &lt;code&gt;parse-url https://www.example.com subdomain,proto&lt;/code&gt;  and get the subdomain and protocol of the url as reponse.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Simple task runner with bash/zsh scripts</title>
      <link>https://janikvonrotz.ch/2020/09/23/simple-task-runner-with-bash-zsh-scripts/</link>
      <pubDate>Wed, 23 Sep 2020 12:03:24 +0200</pubDate>
      <guid>https://janikvonrotz.ch/2020/09/23/simple-task-runner-with-bash-zsh-scripts/</guid>
      <description>&lt;p&gt;When you work on multiple projects with different tech (Docker, npm, python, ..), a common interface to build, start, install or clean the state of the project is a powerful tool. There are various task runners for this job, however, every one of them requires you to install at least one dependency and so must everybody else who wants to use the project. What if we can use a task runner that is preinstalled on every computer? What about bash/zsh?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Backup Docker volumes with this script</title>
      <link>https://janikvonrotz.ch/2020/08/18/backup-docker-volumes-with-this-script/</link>
      <pubDate>Tue, 18 Aug 2020 21:38:34 +0200</pubDate>
      <guid>https://janikvonrotz.ch/2020/08/18/backup-docker-volumes-with-this-script/</guid>
      <description>&lt;p&gt;The official Docker documentation has &lt;a href=&#34;https://docs.docker.com/storage/volumes/#backup-restore-or-migrate-data-volumes&#34;&gt;section about container backup&lt;/a&gt;. This section tells you how to backup an attached volume and the command to do so is pretty elaborate. For automating backups you don&amp;rsquo;t want to script parametrized commands such as this one. A simple script will do the job.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bulk export OneNote notebooks to markdown and other formats</title>
      <link>https://janikvonrotz.ch/2020/07/01/01-bulk-export-onenote-notebooks-to-markdown-and-other-formats/</link>
      <pubDate>Wed, 01 Jul 2020 20:17:34 +0200</pubDate>
      <guid>https://janikvonrotz.ch/2020/07/01/01-bulk-export-onenote-notebooks-to-markdown-and-other-formats/</guid>
      <description>&lt;p&gt;I have decided to ditch corporate software and replace everything with open source software. It is an ongoing process that takes some time. Open source alternatives took some strides in recent years. One of the rising stars is &lt;a href=&#34;https://nextcloud.com/&#34;&gt;Nextcloud&lt;/a&gt;. It is a self-hosted data platform that lets you keep control. Featurewise we do not have to start a discussion. Everything runs in your browser, there is a mobile app and client for all desktops.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bulk download papers from scihub for text mining</title>
      <link>https://janikvonrotz.ch/2020/05/07/bulk-download-papers-from-scihub-for-text-mining/</link>
      <pubDate>Thu, 07 May 2020 18:09:55 +0200</pubDate>
      <guid>https://janikvonrotz.ch/2020/05/07/bulk-download-papers-from-scihub-for-text-mining/</guid>
      <description>&lt;p&gt;Last evening I wanted to play some games with my brother. Instead we ended up writing a simple script to bulk download papers from scihub. He studies bioinformatics and is currently doing some meta research in his field. By crawling a publication database by specific keywords he got list of papers which need to be analyzed. However, most of the paper are hidden behind pay walls. Luckily there&amp;rsquo;s scihub. The most hated and beloved platform to get your hands on almost any scientific paper. He asked me wether I could help him building script that downloads papers from scihub based on a list of dois.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Github Action for validating markdown links</title>
      <link>https://janikvonrotz.ch/2020/04/07/github-action-for-validating-markdown-links/</link>
      <pubDate>Tue, 07 Apr 2020 14:18:35 +0200</pubDate>
      <guid>https://janikvonrotz.ch/2020/04/07/github-action-for-validating-markdown-links/</guid>
      <description>&lt;p&gt;GitHub Action are free computing resources to run CI/CD jobs that build, lint, test or deploy a software project. On the &lt;a href=&#34;https://codeberg.org/janikvonrotz/awesome-powershell&#34;&gt;Awesome PowerShell&lt;/a&gt; I asked contributors to submit a PR for a quality check job. Not much later &lt;a href=&#34;https://github.com/hjorslev&#34;&gt;Frederik Hjorslev&lt;/a&gt; submitted a nice solution.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Find dead links in your markdown files</title>
      <link>https://janikvonrotz.ch/2019/11/11/find-dead-links-in-your-markdown-files/</link>
      <pubDate>Mon, 11 Nov 2019 22:24:02 +0100</pubDate>
      <guid>https://janikvonrotz.ch/2019/11/11/find-dead-links-in-your-markdown-files/</guid>
      <description>&lt;p&gt;The markdown ecosystem is growing. Markdown has become an universal standard with various extensions. Software repositories, websites, documentation systems, all store their content in markdown. This blog is written in markdown as well.&lt;/p&gt;&#xA;&lt;p&gt;Of course there are downsides to markdown. Portability comes at the cost of missing features. Thus you have to built them on your own. If you run a blog you probably reference tons of other stuff on the internet. Links that point to usefult resources or nowhere. I wanted to find out which links in my markdown documents are dead.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Find certificate files that will expire soon and create a csr</title>
      <link>https://janikvonrotz.ch/2018/11/29/find-certificate-files-that-will-expire-soon-and-create-a-csr/</link>
      <pubDate>Thu, 29 Nov 2018 13:44:51 +0100</pubDate>
      <guid>https://janikvonrotz.ch/2018/11/29/find-certificate-files-that-will-expire-soon-and-create-a-csr/</guid>
      <description>&lt;p&gt;The certificate expiration period should be kept as short as possible in a public key infrastructure. But the cost of resigning certificates must not be too high. This trade off causes a lot of problems. Every now and then a certificate expires without anybody noticing it or the same certificate is used for 10 years, which is obviously a security risk. In order to avoid this problem you either use &lt;a href=&#34;https://letsencrypt.org/&#34;&gt;Let’s Encrypt&lt;/a&gt; or another fully automated certificate management system. If this is not available you must know at least which certificates are going to expire soon.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Forward Windows event log entries to syslog server</title>
      <link>https://janikvonrotz.ch/2017/11/02/forward-windows-event-log-entries-to-syslog-server/</link>
      <pubDate>Thu, 02 Nov 2017 12:41:37 +0000</pubDate>
      <guid>https://janikvonrotz.ch/2017/11/02/forward-windows-event-log-entries-to-syslog-server/</guid>
      <description>&lt;p&gt;Syslog is the defacto standard for sending log messages in an IP network. Instead of pulling log messages from a remote computer as you would do it in a windows environment, the log files are sent by remote computers to a central log repository. This way of managing log files has become the standard for Linux / Unix environments. As our IT systems tends to become hybrids, the questions arises how it possible to send syslog messages from a windows computer. In this post I will present you a simple approach.&lt;/p&gt;</description>
    </item>
    <item>
      <title>PowerShell - Logging in CMTrace format</title>
      <link>https://janikvonrotz.ch/2017/10/26/powershell-logging-in-cmtrace-format/</link>
      <pubDate>Thu, 26 Oct 2017 07:15:24 +0000</pubDate>
      <guid>https://janikvonrotz.ch/2017/10/26/powershell-logging-in-cmtrace-format/</guid>
      <description>&lt;p&gt;CMTrace is probably the first choice for a log viewer in a Microsoft environment. When working with System Center Configuration Manager there aren&amp;rsquo;t any alternatives available. In a recent scenario I had to write log files in the CMtrace format. There are already many cmdlets available to do so, however, most of them did not work well or were overengineered. There I&amp;rsquo;ve taken a look at the CMTrace format specs and wrote a PowerShell function to create compatible log files.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Get unlinked GPOs with PowerShell</title>
      <link>https://janikvonrotz.ch/2017/10/06/get-unlinked-gpos-with-powershell/</link>
      <pubDate>Fri, 06 Oct 2017 10:06:49 +0000</pubDate>
      <guid>https://janikvonrotz.ch/2017/10/06/get-unlinked-gpos-with-powershell/</guid>
      <description>&lt;p&gt;In terms of IT compliance having valid GPOs is essential. They must be update to date and the GPO directory should be free of any unlinked GPOs. Retrieving a list of unlinked GPOs in the management console is impossible. With PowerShell it is quite easy.&lt;/p&gt;</description>
    </item>
    <item>
      <title>XKCD PowerShell password generator</title>
      <link>https://janikvonrotz.ch/2017/08/11/xkcd-powershell-password-generator/</link>
      <pubDate>Fri, 11 Aug 2017 13:04:45 +0000</pubDate>
      <guid>https://janikvonrotz.ch/2017/08/11/xkcd-powershell-password-generator/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Through 20 ears of effort, we&amp;rsquo;ve successfully trained everyone to use passwords that are hard for humans to remember, but easy for computers to guess.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;If you are a &lt;a href=&#34;https://news.ycombinator.com/&#34;&gt;Hacker News&lt;/a&gt; binge reader such as me, you might have read this article: &lt;a href=&#34;http://gizmodo.com/the-guy-who-invented-those-annoying-password-rules-now-1797643987&#34;&gt;The Guy Who Invented Those Annoying Password Rules Now Regrets Wasting Your Time&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;This article reminded my of how stupid current password guidelines are and that we need to change that. A few months ago I wrote a random &lt;a href=&#34;https://janikvonrotz.ch/2015/09/07/password-generator-with-powershell/&#34;&gt;password generator function&lt;/a&gt; and decided that it needs an update to make the generated passwords more memorable.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Create a PowerShell module and publish it to the Gallery in under 1 minute</title>
      <link>https://janikvonrotz.ch/2017/08/09/create-a-powershell-module-and-publish-it-to-the-gallery-in-under-1-minute/</link>
      <pubDate>Wed, 09 Aug 2017 11:26:58 +0000</pubDate>
      <guid>https://janikvonrotz.ch/2017/08/09/create-a-powershell-module-and-publish-it-to-the-gallery-in-under-1-minute/</guid>
      <description>&lt;p&gt;This tutorial is basically a script that creates a PowerShell module and publishes it to the PowerShell Gallery. Another scripts tells you how to install the published module and make us of it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Deploy PowerShell ActiveDirectory Module without installing the remote server tools</title>
      <link>https://janikvonrotz.ch/2015/09/09/deploy-powershell-activedirectory-module-without-installing-the-remote-server-tools/</link>
      <pubDate>Wed, 09 Sep 2015 16:23:17 +0000</pubDate>
      <guid>https://janikvonrotz.ch/2015/09/09/deploy-powershell-activedirectory-module-without-installing-the-remote-server-tools/</guid>
      <description>&lt;p&gt;Make use of the PowerShell ActiveDirectory module always required to install the &lt;a href=&#34;http://www.microsoft.com/en-us/download/details.aspx?id=7887&#34;&gt;Remote Server Administration Tools&lt;/a&gt;.&#xA;That sucks! We want it as simple as executing a script.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Password Generator with PowerShell</title>
      <link>https://janikvonrotz.ch/2015/09/07/password-generator-with-powershell/</link>
      <pubDate>Mon, 07 Sep 2015 15:03:41 +0000</pubDate>
      <guid>https://janikvonrotz.ch/2015/09/07/password-generator-with-powershell/</guid>
      <description>&lt;p&gt;Whenever I had to think of a secure password I followed these steps:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The right order of vocals and consonants makes it more easy to remember a password.&lt;/li&gt;&#xA;&lt;li&gt;And so do three digits of a number.&lt;/li&gt;&#xA;&lt;li&gt;Add one uppercase Letter. Likely as the first character.&lt;/li&gt;&#xA;&lt;li&gt;Add a dot or another sign to expand to vocabulary even more.&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Compare Active Directory group membership</title>
      <link>https://janikvonrotz.ch/2015/07/31/compare-active-directory-group-membership/</link>
      <pubDate>Fri, 31 Jul 2015 07:21:26 +0000</pubDate>
      <guid>https://janikvonrotz.ch/2015/07/31/compare-active-directory-group-membership/</guid>
      <description>&lt;p&gt;The following scripts allows you to compare the group membership of two users.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Convert Directory Tree to Json with PowerShell</title>
      <link>https://janikvonrotz.ch/2015/07/28/convert-directory-tree-to-json-with-powershell/</link>
      <pubDate>Tue, 28 Jul 2015 15:07:23 +0000</pubDate>
      <guid>https://janikvonrotz.ch/2015/07/28/convert-directory-tree-to-json-with-powershell/</guid>
      <description>&lt;p&gt;Today I wrote a simple script that converts a directory tree query with &lt;code&gt;get-childitem&lt;/code&gt; into a json formatted data tree.&lt;/p&gt;</description>
    </item>
    <item>
      <title>PowerShell awesome list introduction</title>
      <link>https://janikvonrotz.ch/2015/06/01/powershell-awesome-list-introduction/</link>
      <pubDate>Mon, 01 Jun 2015 06:47:40 +0000</pubDate>
      <guid>https://janikvonrotz.ch/2015/06/01/powershell-awesome-list-introduction/</guid>
      <description>&lt;p&gt;Awesome lists are a great thing on GitHub. It&amp;rsquo;s about collecting useful resources, packages and modules of a certain technology or subject. It&amp;rsquo;s the best way of introduction if you have to learn about a new technology.&#xA;Here&amp;rsquo;s a good example of a &lt;a href=&#34;https://github.com/sindresorhus/awesome-nodejs&#34;&gt;awesome Node.js list&lt;/a&gt; by &lt;a href=&#34;https://github.com/sindresorhus&#34;&gt;Sindre Sorhus&lt;/a&gt; aka the inventor of bower, grunt and many other web tech.&lt;/p&gt;&#xA;&lt;p&gt;I thought it would be a good idea to do the same for PowerShell. Maybe you&amp;rsquo;ve got some inputs for me, simply post them in the comment section or make fork of the &lt;a href=&#34;https://codeberg.org/janikvonrotz/awesome-powershell&#34;&gt;Awesome PowerShell repository&lt;/a&gt; and commit your inputs directly.&lt;/p&gt;&#xA;&lt;p&gt;So here&amp;rsquo;s what I&amp;rsquo;ve got so far:&lt;/p&gt;</description>
    </item>
    <item>
      <title>ILIAS Synchronising Tool</title>
      <link>https://janikvonrotz.ch/2014/10/17/ilias-synchronising-tool/</link>
      <pubDate>Fri, 17 Oct 2014 18:27:19 +0000</pubDate>
      <guid>https://janikvonrotz.ch/2014/10/17/ilias-synchronising-tool/</guid>
      <description>&lt;p&gt;My university &lt;a href=&#34;http://hslu.ch/&#34;&gt;Hochschule Luzern&lt;/a&gt; uses &lt;a href=&#34;http://www.ilias.de/docu/goto.php?target=root_1&#34;&gt;ILIAS&lt;/a&gt; as an open source e-learning and content management platform.&lt;/p&gt;&#xA;&lt;p&gt;The main part of the publishing process for ILIAS looks like this: The lectureres publish their content (presentations, scripts, software, ..) to ILIAS and the students download it afterwards. It is possible to set up a notification for related changes. However the students still have to copy the files to the local computer manually.&lt;/p&gt;&#xA;&lt;p&gt;To make this a bit easier, I&amp;rsquo;ve developed a synchronisation tool with PowerShell. It consists of four script files:&lt;/p&gt;</description>
    </item>
    <item>
      <title>PowerShell PowerUp Package Manager</title>
      <link>https://janikvonrotz.ch/2014/05/16/powershell-powerup-package-manager/</link>
      <pubDate>Fri, 16 May 2014 15:04:37 +0000</pubDate>
      <guid>https://janikvonrotz.ch/2014/05/16/powershell-powerup-package-manager/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://janikvonrotz.github.io/PowerShell-PowerUp/&#34;&gt;PowerShell PowerUp&lt;/a&gt; has now a built-in package manager.&lt;/p&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s a short example for a Notepad++ installation:&lt;/p&gt;</description>
    </item>
    <item>
      <title>SharePoint PowerShell remoting double hop scenario</title>
      <link>https://janikvonrotz.ch/2014/04/30/sharepoint-powershell-remoting-double-hop-scenario/</link>
      <pubDate>Wed, 30 Apr 2014 08:34:14 +0000</pubDate>
      <guid>https://janikvonrotz.ch/2014/04/30/sharepoint-powershell-remoting-double-hop-scenario/</guid>
      <description>&lt;p&gt;PowerShell remoting can be difficult to understand. There are many things to configure and unknown limitations. With multiple server to access from one remoting session it gets even more difficult.&lt;/p&gt;&#xA;&lt;p&gt;For example my latest issue with a three tier SharePoint environment. I thought I configured everything correctly:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Backup Active Directory Group Policies with PowerShell</title>
      <link>https://janikvonrotz.ch/2014/04/22/backup-active-directory-group-policies-with-powershell/</link>
      <pubDate>Tue, 22 Apr 2014 08:02:13 +0000</pubDate>
      <guid>https://janikvonrotz.ch/2014/04/22/backup-active-directory-group-policies-with-powershell/</guid>
      <description>&lt;p&gt;Based on my last &lt;a href=&#34;https://janikvonrotz.ch/2014/04/15/backup-active-directory-with-powershell/&#34;&gt;Active Directory backup script&lt;/a&gt; I&amp;rsquo;ve developed a similar script to backup all group policies.&lt;/p&gt;&#xA;&lt;p&gt;What it does:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Create a daily full snapshot of all group policy objects&lt;/li&gt;&#xA;&lt;li&gt;Keep a daily, weekly and monthly snapshot&lt;/li&gt;&#xA;&lt;li&gt;Notify me if something failed (requires PowerShell PowerUp)&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Backup Active Directory with PowerShell</title>
      <link>https://janikvonrotz.ch/2014/04/15/backup-active-directory-with-powershell/</link>
      <pubDate>Tue, 15 Apr 2014 13:57:06 +0000</pubDate>
      <guid>https://janikvonrotz.ch/2014/04/15/backup-active-directory-with-powershell/</guid>
      <description>&lt;p&gt;Based on this &lt;a href=&#34;http://technet.microsoft.com/en-us/library/dd581644(WS.10).aspx&#34;&gt;Technet article&lt;/a&gt; I&amp;rsquo;ve developed a simple Active Directory backup tool with PowerShell.&lt;/p&gt;&#xA;&lt;p&gt;What it does:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Create a full snapshot from Active Directory&lt;/li&gt;&#xA;&lt;li&gt;Keep a daily, weekly and monthly snapshot&lt;/li&gt;&#xA;&lt;li&gt;Notify me if something failed (requires &lt;a href=&#34;http://janikvonrotz.github.io/PowerShell-PowerUp/&#34;&gt;PowerShell PowerUp&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>manage SharePoint list alerts for multiple users on multiple lists</title>
      <link>https://janikvonrotz.ch/2014/01/02/manage-sharepoint-list-alerts-for-multiple-users-on-multiple-lists/</link>
      <pubDate>Thu, 02 Jan 2014 14:38:25 +0000</pubDate>
      <guid>https://janikvonrotz.ch/2014/01/02/manage-sharepoint-list-alerts-for-multiple-users-on-multiple-lists/</guid>
      <description>&lt;p&gt;In certain cases SharePoint alerts are more useful than workflows, f.e. having the possibility to let users manager their alerts is not possible with workflows.&lt;/p&gt;&#xA;&lt;p&gt;To manager alerts for a couple of users on specific lists I&amp;rsquo;ve written a script that handles the whole cycle of alerts. It let me delete, update and create alerts based on predefined configuration.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Assign Temporary Administrator Rights for ActiveDirectory Users via SharePoint list</title>
      <link>https://janikvonrotz.ch/2013/11/18/assign-temporary-administrator-rights-for-activedirectory-users-via-sharepoint-list/</link>
      <pubDate>Mon, 18 Nov 2013 16:55:32 +0000</pubDate>
      <guid>https://janikvonrotz.ch/2013/11/18/assign-temporary-administrator-rights-for-activedirectory-users-via-sharepoint-list/</guid>
      <description>&lt;p&gt;In my company the user only have user rights on their computers. As you should know you&amp;rsquo;ll face many problems with this restriction.&lt;/p&gt;&#xA;&lt;p&gt;Many users want to install third party software on their computers or add a printer at home. To reduce argues and make the user happy, I&amp;rsquo;ll assign administrator rights for a temporary time.&lt;/p&gt;&#xA;&lt;p&gt;Based on a predefined GPO and based on a list showing which user has administrator rights in a specified time period, my PowerShell script creates new temporary GPO to assign local administrator rights.&lt;/p&gt;</description>
    </item>
    <item>
      <title>PowerShell Function Template</title>
      <link>https://janikvonrotz.ch/2013/11/11/powershell-function-template/</link>
      <pubDate>Mon, 11 Nov 2013 16:04:39 +0000</pubDate>
      <guid>https://janikvonrotz.ch/2013/11/11/powershell-function-template/</guid>
      <description>&lt;p&gt;A good way to start writing a custom function in PowerShell is an advanced template like this.&#xA;This is my custom PowerShell function template, whenever I&amp;rsquo;m writing a new script I&amp;rsquo;ll start with one of my templates. Having consistency in structure and naming of code is an important part in collaboration.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Manage Security Groups in a organizational Strcture</title>
      <link>https://janikvonrotz.ch/2013/10/28/manage-security-groups-in-a-organizational-strcture/</link>
      <pubDate>Mon, 28 Oct 2013 16:22:20 +0000</pubDate>
      <guid>https://janikvonrotz.ch/2013/10/28/manage-security-groups-in-a-organizational-strcture/</guid>
      <description>&lt;p&gt;As in on of my last &lt;a title=&#34;Manage ActiveDirectory Distribution Groups&#34; href=&#34;https://janikvonrotz.ch/2013/08/27/manage-activedirectory-distribution-groups/&#34;&gt;post&lt;/a&gt; I&amp;rsquo;ve showed you my approach to manage distribution groups in the hierarchical structure of an ActiveDirectory installation. In the mean time I&amp;rsquo;ve adapted a similiar approach for the security groups.&lt;/p&gt;&#xA;&lt;p&gt;Here is an example of the structure:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Archive ActiveDirectory Users and their Mailbox</title>
      <link>https://janikvonrotz.ch/2013/10/14/archive-activedirectory-users-and-their-mailbox/</link>
      <pubDate>Mon, 14 Oct 2013 17:04:19 +0000</pubDate>
      <guid>https://janikvonrotz.ch/2013/10/14/archive-activedirectory-users-and-their-mailbox/</guid>
      <description>&lt;p&gt;One of my company&amp;rsquo;s requirements is the retention time of 10 years for user accounts and their mailbox data, I have to admit, this might not be common or even recommended.&#xA;However I have to deal with it.&lt;/p&gt;&#xA;&lt;p&gt;One problem to face is the availabilty of user account names, by the number of about 500 employees there&amp;rsquo;s a hight change that two or even more people are having the same name.&lt;/p&gt;&#xA;&lt;p&gt;To clean up the available names in the system I&amp;rsquo;ve written a script that renames a users identity and the mailboxes address.&#xA;So let&amp;rsquo;s see what this script does:&lt;/p&gt;</description>
    </item>
    <item>
      <title>SharePoint File Reporting Done Right</title>
      <link>https://janikvonrotz.ch/2013/10/10/sharepoint-file-reporting-done-right/</link>
      <pubDate>Thu, 10 Oct 2013 16:33:01 +0000</pubDate>
      <guid>https://janikvonrotz.ch/2013/10/10/sharepoint-file-reporting-done-right/</guid>
      <description>&lt;p&gt;To know what type of information a SharePoint Installation is holding could get more difficult as the platform grows.&lt;/p&gt;&#xA;&lt;p&gt;To set quota templates on the site collection is a good way to keep an eye on the SharePoint storage, but it doesn&amp;rsquo;t&amp;rsquo; show the real used storage.&lt;/p&gt;&#xA;&lt;p&gt;In case versioning for files is enabled and/or the users don&amp;rsquo;t check in their files properly these files using space without let you know.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Find dead SharePoint ActiveDirectory Groups</title>
      <link>https://janikvonrotz.ch/2013/09/25/find-dead-sharepoint-activedirectory-groups/</link>
      <pubDate>Wed, 25 Sep 2013 15:33:07 +0000</pubDate>
      <guid>https://janikvonrotz.ch/2013/09/25/find-dead-sharepoint-activedirectory-groups/</guid>
      <description>&lt;p&gt;The are three ways to handle access rights in SharePoint.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;    &lt;li&gt;Using ActiveDirectory Groups&lt;/li&gt;&#xA;    &lt;li&gt;Using SharePoint Groups&lt;/li&gt;&#xA;    &lt;li&gt;Using both of them&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;I personally recommend to use the first suggestion. Managing the access rights in one system is much easier to administrate, no switching or log off for administration work.&lt;/p&gt;&#xA;&lt;p&gt;In our SharePoint installation I create for each securable resource and rights type a ActiveDirectory group and assign them organization groups.&lt;/p&gt;&#xA;&lt;p&gt;A huge disadvantage of this strategy is that after a period of adding ActiveDirectory groups it&amp;rsquo;s hard to know which of those groups are really required.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Backup Public GitHub Gists</title>
      <link>https://janikvonrotz.ch/2013/09/19/backup-public-github-gists/</link>
      <pubDate>Thu, 19 Sep 2013 12:52:32 +0000</pubDate>
      <guid>https://janikvonrotz.ch/2013/09/19/backup-public-github-gists/</guid>
      <description>&lt;p&gt;To manage my code snippets I&amp;rsquo;m using &lt;a href=&#34;https://gist.github.com/janikvonrotz&#34;&gt;GitHubGist &lt;/a&gt;connected with &lt;a href=&#34;https://app.gistboxapp.com&#34;&gt;Gistbox&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Sadly none of this services providing a backup nor a download function for the gist files. That&amp;rsquo;s why I came upwith the idea to download them with PowerShell script.&lt;/p&gt;&#xA;&lt;p&gt;For first my script only can download public gists, because I don&amp;rsquo;t know how to implement an authentication, luckily each of my gists is public. I recommend you to do the same, it&amp;rsquo;s the idea of OpenSource.&lt;/p&gt;&#xA;&lt;p&gt;So here&amp;rsquo;s the script:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Exchange Update Offline Address Book</title>
      <link>https://janikvonrotz.ch/2013/08/27/exchange-update-offline-adress-book/</link>
      <pubDate>Tue, 27 Aug 2013 10:54:43 +0000</pubDate>
      <guid>https://janikvonrotz.ch/2013/08/27/exchange-update-offline-adress-book/</guid>
      <description>&lt;p&gt;Since Exchange 2010 the graphical console doesn&amp;rsquo;t support the same functionality as the PowerShell Exchange console, it&amp;rsquo;s possible that there occur some exotic errors or a lack of functionality while working with the graphical console. I recommend to use only the Exchange PowerShell console for administrative work.&lt;/p&gt;&#xA;&lt;p&gt;For example: I had to update the offline address book, I&amp;rsquo;ve deleted some distribution groups, updated the address list and the offline book, all with the graphical console. Result the address book still wasn&amp;rsquo;t up to date in the Outlook client after downloading the offline address book.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Manage Users in ActiveDirectory with PowerShell</title>
      <link>https://janikvonrotz.ch/2013/08/09/manage-users-in-activedirectory-with-powershell/</link>
      <pubDate>Fri, 09 Aug 2013 10:18:06 +0000</pubDate>
      <guid>https://janikvonrotz.ch/2013/08/09/manage-users-in-activedirectory-with-powershell/</guid>
      <description>&lt;p&gt;The PowerShell ActiveDirectory modules from Microsoft are definitely a pain. That&amp;rsquo;s why Quest (Dell) has developed a bunch of &lt;a href=&#34;https://www.quest.com/powershell/activeroles-server.aspx&#34;&gt;CMDlets &lt;/a&gt;to make the user management through PowerShell a lot easier.&lt;/p&gt;&#xA;&lt;p&gt;I would like to show you how I create and update my AD users.&lt;/p&gt;&#xA;&lt;p&gt;As base there&amp;rsquo;s always a CSV file like this one: &lt;a href=&#34;https://janikvonrotz.ch/wp-content/uploads/2013/08/TemplateADUsers.csv&#34;&gt;TemplateADUsers&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Active Directory User Reporting</title>
      <link>https://janikvonrotz.ch/2013/07/25/active-directory-user-reporting/</link>
      <pubDate>Thu, 25 Jul 2013 10:49:32 +0000</pubDate>
      <guid>https://janikvonrotz.ch/2013/07/25/active-directory-user-reporting/</guid>
      <description>&lt;p&gt;This is a simple example of how to create a report of your Active Directory users.&#xA;The first command imports the PowerShell Active Directory module, which should be installed by default, otherwhise do this:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://janikvonrotz.ch/wp-content/uploads/2013/07/2013-07-25-11_43_24-Windows-Funktionen.png&#34; alt=&#34;Install PowerShell Active Directory Module&#34;&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Import-Module ActiveDirectory&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Get-ADUser -Filter {EmailAddress &lt;span style=&#34;color:#f92672&#34;&gt;-like&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;*&amp;#34;&lt;/span&gt;} -Properties * | select DisplayName, GivenName, Name, Surname, mail, SamAccountName, Department, Title, extensionAttribute1, extensionAttribute2 | Out-GridView&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;And the second command creates a simple report.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Manipulate the hosts file with PowerShell</title>
      <link>https://janikvonrotz.ch/2013/07/11/manipulate-the-hosts-file-with-powershell/</link>
      <pubDate>Thu, 11 Jul 2013 08:38:06 +0000</pubDate>
      <guid>https://janikvonrotz.ch/2013/07/11/manipulate-the-hosts-file-with-powershell/</guid>
      <description>&lt;p&gt;Recently I had to add a host to the hosts file. What made my angry about this was the fact that I had to do it manually, if you&amp;rsquo;ve ever used a unix/linux machine this feels so wrong.&lt;/p&gt;&#xA;&lt;p&gt;That&amp;rsquo;s why I&amp;rsquo;ve created several PowerShell functions to make the manipulation of the hosts file easier.&lt;/p&gt;</description>
    </item>
    <item>
      <title>SharePoint 2013 unable to unlock site collection</title>
      <link>https://janikvonrotz.ch/2013/07/09/sharepoint-2013-unable-to-unlock-site-collection/</link>
      <pubDate>Tue, 09 Jul 2013 10:22:01 +0000</pubDate>
      <guid>https://janikvonrotz.ch/2013/07/09/sharepoint-2013-unable-to-unlock-site-collection/</guid>
      <description>&lt;p&gt;In case you manage your SharePoint installation with PowerShell and your backup script failed, you might experience that the site collection is locked for any kind of access.&#xA;That&amp;rsquo;s because SharePoint locks the site collection for backups until the backup process has finished.&lt;/p&gt;&#xA;&lt;p&gt;And in another case like mine, it could happen that you&amp;rsquo;re unable to unlock the workspace, despite your logged in as administrator.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
