﻿<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://owl.unipharm.com/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Norwinu</id>
	<title>uniWIKI - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://owl.unipharm.com/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Norwinu"/>
	<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php/Special:Contributions/Norwinu"/>
	<updated>2026-09-01T07:44:08Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.4</generator>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Azure_for_Web_Orders&amp;diff=14733</id>
		<title>Information Systems:Azure for Web Orders</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Azure_for_Web_Orders&amp;diff=14733"/>
		<updated>2025-03-20T07:33:56Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: /* Databases */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
&lt;br /&gt;
The new Web Orders site is hosted on Azure. The resources are grouped in the Resource Group '''rg-weborders''', within the '''Azure PAYG Subscription 1''' subscription.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
&lt;br /&gt;
===Web Application===&lt;br /&gt;
The web application is hosted using Azure App Service, which is a serverless service that provides web runtimes e.g. PHP-CGI (PHP), WSGI (Python), to run web applications without having to maintain a server/VM.&lt;br /&gt;
&lt;br /&gt;
====Code deployment and administration====&lt;br /&gt;
While there is no actual server/VM to administer, App Service allows for shell-like access and FTP/SFTP to enable some administrative tasks (although deployment through CI/CD is the better practice). Shell access is available via Kudu SCM.&lt;br /&gt;
&lt;br /&gt;
====Deployment Slots====&lt;br /&gt;
Deployment slots allow for dev, test, and prod instances of the application. &lt;br /&gt;
&lt;br /&gt;
===Databases===&lt;br /&gt;
Azure SQL (SQL Server) is used for the database(s). Currently, there is a single instance '''uwdintdb''' of Azure SQL that hosts multiple databases that share an elastic pool (for compute).&lt;br /&gt;
&lt;br /&gt;
====Connectivity====&lt;br /&gt;
Direct connection (e.g. port 1433) to uwdintdb is allowed through firewall rules (IP whitelist) which can be administered in Azure. Connectivity from applications, such as Synapse and Web Orders itself, is done through Private Endpoint.&lt;br /&gt;
&lt;br /&gt;
====Administration====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Access====&lt;br /&gt;
Database access is available via direct connection (port 3306). Access is IP-restricted for security reasons. &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
===Source Control and DevOps===&lt;br /&gt;
Azure DevOps is used for both git / source control (using Azure Repos), and CI/CD (build pipelines).&lt;br /&gt;
&lt;br /&gt;
There are two repos in the project, one each for the back-end and front-end.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Integration with D365===&lt;br /&gt;
The integration between Web Orders and D365 occurs via 2 main patterns/methods:&lt;br /&gt;
# Through a dedicated integration/middleware database that is written to with D365 data and read by Web Orders. This database is found in the same MySQL instance as the one for the application (it is just a separate schema). &lt;br /&gt;
# Through REST API endpoints that allow Web Orders to POST data e.g. orders into D365. There are no Azure components for this on the Web Orders side, as API consumption is done in code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Web Orders]]&lt;br /&gt;
[[Category: Dynamics 365 Integrations]]&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Azure_for_Web_Orders&amp;diff=14732</id>
		<title>Information Systems:Azure for Web Orders</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Azure_for_Web_Orders&amp;diff=14732"/>
		<updated>2025-03-20T07:20:45Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
&lt;br /&gt;
The new Web Orders site is hosted on Azure. The resources are grouped in the Resource Group '''rg-weborders''', within the '''Azure PAYG Subscription 1''' subscription.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
&lt;br /&gt;
===Web Application===&lt;br /&gt;
The web application is hosted using Azure App Service, which is a serverless service that provides web runtimes e.g. PHP-CGI (PHP), WSGI (Python), to run web applications without having to maintain a server/VM.&lt;br /&gt;
&lt;br /&gt;
====Code deployment and administration====&lt;br /&gt;
While there is no actual server/VM to administer, App Service allows for shell-like access and FTP/SFTP to enable some administrative tasks (although deployment through CI/CD is the better practice). Shell access is available via Kudu SCM.&lt;br /&gt;
&lt;br /&gt;
====Deployment Slots====&lt;br /&gt;
Deployment slots allow for dev, test, and prod instances of the application. &lt;br /&gt;
&lt;br /&gt;
===Databases===&lt;br /&gt;
Azure SQL (SQL Server) is used for the database(s). Currently, there is a single instance '''uwdintdb''' of Azure SQL that hosts multiple databases that share an elastic pool (for compute).&lt;br /&gt;
&lt;br /&gt;
====Access====&lt;br /&gt;
Database access is available via direct connection (port 3306). Access is IP-restricted for security reasons. &lt;br /&gt;
 &lt;br /&gt;
===Source Control and DevOps===&lt;br /&gt;
Azure DevOps is used for both git / source control (using Azure Repos), and CI/CD (build pipelines).&lt;br /&gt;
&lt;br /&gt;
There are two repos in the project, one each for the back-end and front-end.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Integration with D365===&lt;br /&gt;
The integration between Web Orders and D365 occurs via 2 main patterns/methods:&lt;br /&gt;
# Through a dedicated integration/middleware database that is written to with D365 data and read by Web Orders. This database is found in the same MySQL instance as the one for the application (it is just a separate schema). &lt;br /&gt;
# Through REST API endpoints that allow Web Orders to POST data e.g. orders into D365. There are no Azure components for this on the Web Orders side, as API consumption is done in code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Web Orders]]&lt;br /&gt;
[[Category: Dynamics 365 Integrations]]&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Azure_Resources&amp;diff=14731</id>
		<title>Information Systems:Azure Resources</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Azure_Resources&amp;diff=14731"/>
		<updated>2025-03-20T07:16:55Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: Norwinu moved page Information Systems:Azure Resources to Information Systems:Azure for Web Orders over redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Information Systems:Azure for Web Orders]]&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Azure_for_Web_Orders&amp;diff=14730</id>
		<title>Information Systems:Azure for Web Orders</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Azure_for_Web_Orders&amp;diff=14730"/>
		<updated>2025-03-20T07:16:55Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: Norwinu moved page Information Systems:Azure Resources to Information Systems:Azure for Web Orders over redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
&lt;br /&gt;
The new Web Orders site is hosted on Azure. The resources are grouped in the Resource Group '''rg-weborders''', within the '''Azure PAYG Subscription 1''' subscription.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
&lt;br /&gt;
===Web Application===&lt;br /&gt;
The web application is hosted using Azure App Service, which is a serverless service that provides web runtimes e.g. PHP-CGI (PHP), WSGI (Python), to run web applications without having to maintain a server/VM.&lt;br /&gt;
&lt;br /&gt;
====Code deployment and administration====&lt;br /&gt;
While there is no actual server/VM to administer, App Service allows for shell-like access and FTP/SFTP to enable some administrative tasks (although deployment through CI/CD is the better practice). Shell access is available via Kudu SCM.&lt;br /&gt;
&lt;br /&gt;
====Deployment Slots====&lt;br /&gt;
Deployment slots allow for dev, test, and prod instances of the application. &lt;br /&gt;
&lt;br /&gt;
===Database===&lt;br /&gt;
The database uses Azure MySQL Flexible Server, which is a serverless database MySQL instance.&lt;br /&gt;
&lt;br /&gt;
====Access====&lt;br /&gt;
Database access is available via direct connection (port 3306). Access is IP-restricted for security reasons. &lt;br /&gt;
 &lt;br /&gt;
===Source Control and DevOps===&lt;br /&gt;
Azure DevOps is used for both git / source control (using Azure Repos), and CI/CD (build pipelines).&lt;br /&gt;
&lt;br /&gt;
There are two repos in the project, one each for the back-end and front-end.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Integration with D365===&lt;br /&gt;
The integration between Web Orders and D365 occurs via 2 main patterns/methods:&lt;br /&gt;
# Through a dedicated integration/middleware database that is written to with D365 data and read by Web Orders. This database is found in the same MySQL instance as the one for the application (it is just a separate schema). &lt;br /&gt;
# Through REST API endpoints that allow Web Orders to POST data e.g. orders into D365. There are no Azure components for this on the Web Orders side, as API consumption is done in code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Web Orders]]&lt;br /&gt;
[[Category: Dynamics 365 Integrations]]&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Azure_for_Web_Orders&amp;diff=14728</id>
		<title>Information Systems:Azure for Web Orders</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Azure_for_Web_Orders&amp;diff=14728"/>
		<updated>2025-03-20T07:16:17Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: Norwinu moved page Information Systems:Azure for Web Orders to Information Systems:Azure Resources&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
&lt;br /&gt;
The new Web Orders site is hosted on Azure. The resources are grouped in the Resource Group '''rg-weborders''', within the '''Azure PAYG Subscription 1''' subscription.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
&lt;br /&gt;
===Web Application===&lt;br /&gt;
The web application is hosted using Azure App Service, which is a serverless service that provides web runtimes e.g. PHP-CGI (PHP), WSGI (Python), to run web applications without having to maintain a server/VM.&lt;br /&gt;
&lt;br /&gt;
====Code deployment and administration====&lt;br /&gt;
While there is no actual server/VM to administer, App Service allows for shell-like access and FTP/SFTP to enable some administrative tasks (although deployment through CI/CD is the better practice). Shell access is available via Kudu SCM.&lt;br /&gt;
&lt;br /&gt;
====Deployment Slots====&lt;br /&gt;
Deployment slots allow for dev, test, and prod instances of the application. &lt;br /&gt;
&lt;br /&gt;
===Database===&lt;br /&gt;
The database uses Azure MySQL Flexible Server, which is a serverless database MySQL instance.&lt;br /&gt;
&lt;br /&gt;
====Access====&lt;br /&gt;
Database access is available via direct connection (port 3306). Access is IP-restricted for security reasons. &lt;br /&gt;
 &lt;br /&gt;
===Source Control and DevOps===&lt;br /&gt;
Azure DevOps is used for both git / source control (using Azure Repos), and CI/CD (build pipelines).&lt;br /&gt;
&lt;br /&gt;
There are two repos in the project, one each for the back-end and front-end.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Integration with D365===&lt;br /&gt;
The integration between Web Orders and D365 occurs via 2 main patterns/methods:&lt;br /&gt;
# Through a dedicated integration/middleware database that is written to with D365 data and read by Web Orders. This database is found in the same MySQL instance as the one for the application (it is just a separate schema). &lt;br /&gt;
# Through REST API endpoints that allow Web Orders to POST data e.g. orders into D365. There are no Azure components for this on the Web Orders side, as API consumption is done in code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Web Orders]]&lt;br /&gt;
[[Category: Dynamics 365 Integrations]]&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Azure_for_Web_Orders&amp;diff=14666</id>
		<title>Information Systems:Azure for Web Orders</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Azure_for_Web_Orders&amp;diff=14666"/>
		<updated>2024-03-24T07:44:49Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: Norwinu moved page Azure for Web Orders to Information Systems:Azure for Web Orders without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
&lt;br /&gt;
The new Web Orders site is hosted on Azure. The resources are grouped in the Resource Group '''rg-weborders''', within the '''Azure PAYG Subscription 1''' subscription.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
&lt;br /&gt;
===Web Application===&lt;br /&gt;
The web application is hosted using Azure App Service, which is a serverless service that provides web runtimes e.g. PHP-CGI (PHP), WSGI (Python), to run web applications without having to maintain a server/VM.&lt;br /&gt;
&lt;br /&gt;
====Code deployment and administration====&lt;br /&gt;
While there is no actual server/VM to administer, App Service allows for shell-like access and FTP/SFTP to enable some administrative tasks (although deployment through CI/CD is the better practice). Shell access is available via Kudu SCM.&lt;br /&gt;
&lt;br /&gt;
====Deployment Slots====&lt;br /&gt;
Deployment slots allow for dev, test, and prod instances of the application. &lt;br /&gt;
&lt;br /&gt;
===Database===&lt;br /&gt;
The database uses Azure MySQL Flexible Server, which is a serverless database MySQL instance.&lt;br /&gt;
&lt;br /&gt;
====Access====&lt;br /&gt;
Database access is available via direct connection (port 3306). Access is IP-restricted for security reasons. &lt;br /&gt;
 &lt;br /&gt;
===Source Control and DevOps===&lt;br /&gt;
Azure DevOps is used for both git / source control (using Azure Repos), and CI/CD (build pipelines).&lt;br /&gt;
&lt;br /&gt;
There are two repos in the project, one each for the back-end and front-end.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Integration with D365===&lt;br /&gt;
The integration between Web Orders and D365 occurs via 2 main patterns/methods:&lt;br /&gt;
# Through a dedicated integration/middleware database that is written to with D365 data and read by Web Orders. This database is found in the same MySQL instance as the one for the application (it is just a separate schema). &lt;br /&gt;
# Through REST API endpoints that allow Web Orders to POST data e.g. orders into D365. There are no Azure components for this on the Web Orders side, as API consumption is done in code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Web Orders]]&lt;br /&gt;
[[Category: Dynamics 365 Integrations]]&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Azure_for_Web_Orders&amp;diff=14665</id>
		<title>Information Systems:Azure for Web Orders</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Azure_for_Web_Orders&amp;diff=14665"/>
		<updated>2024-03-24T07:43:31Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: Created page with &amp;quot;==Summary==  The new Web Orders site is hosted on Azure. The resources are grouped in the Resource Group '''rg-weborders''', within the '''Azure PAYG Subscription 1''' subscri...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
&lt;br /&gt;
The new Web Orders site is hosted on Azure. The resources are grouped in the Resource Group '''rg-weborders''', within the '''Azure PAYG Subscription 1''' subscription.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
&lt;br /&gt;
===Web Application===&lt;br /&gt;
The web application is hosted using Azure App Service, which is a serverless service that provides web runtimes e.g. PHP-CGI (PHP), WSGI (Python), to run web applications without having to maintain a server/VM.&lt;br /&gt;
&lt;br /&gt;
====Code deployment and administration====&lt;br /&gt;
While there is no actual server/VM to administer, App Service allows for shell-like access and FTP/SFTP to enable some administrative tasks (although deployment through CI/CD is the better practice). Shell access is available via Kudu SCM.&lt;br /&gt;
&lt;br /&gt;
====Deployment Slots====&lt;br /&gt;
Deployment slots allow for dev, test, and prod instances of the application. &lt;br /&gt;
&lt;br /&gt;
===Database===&lt;br /&gt;
The database uses Azure MySQL Flexible Server, which is a serverless database MySQL instance.&lt;br /&gt;
&lt;br /&gt;
====Access====&lt;br /&gt;
Database access is available via direct connection (port 3306). Access is IP-restricted for security reasons. &lt;br /&gt;
 &lt;br /&gt;
===Source Control and DevOps===&lt;br /&gt;
Azure DevOps is used for both git / source control (using Azure Repos), and CI/CD (build pipelines).&lt;br /&gt;
&lt;br /&gt;
There are two repos in the project, one each for the back-end and front-end.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Integration with D365===&lt;br /&gt;
The integration between Web Orders and D365 occurs via 2 main patterns/methods:&lt;br /&gt;
# Through a dedicated integration/middleware database that is written to with D365 data and read by Web Orders. This database is found in the same MySQL instance as the one for the application (it is just a separate schema). &lt;br /&gt;
# Through REST API endpoints that allow Web Orders to POST data e.g. orders into D365. There are no Azure components for this on the Web Orders side, as API consumption is done in code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Web Orders]]&lt;br /&gt;
[[Category: Dynamics 365 Integrations]]&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Adobe_Creative_Cloud_for_Teams&amp;diff=14105</id>
		<title>Information Systems:Adobe Creative Cloud for Teams</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Adobe_Creative_Cloud_for_Teams&amp;diff=14105"/>
		<updated>2021-09-21T00:04:08Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Configuration==&lt;br /&gt;
uniPHARM has an Adobe Creative Cloud for Teams monthly subscription (4 users). The current usernames/passwords are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Username !! Password !! Activation 1 !! Activation 2 || Notes&lt;br /&gt;
|-&lt;br /&gt;
| adobecc@unipharm.com || !NewVisionIT2051 || - || - || Used for billing only&lt;br /&gt;
|-&lt;br /&gt;
| ccmediauser1@unipharm.com || NewVisionIT2051|| teresab || - || Adobe Creative Cloud License&lt;br /&gt;
|-&lt;br /&gt;
| ccmediauser2@unipharm.com || NewVisionIT2051|| donnak|| norwinu || Adobe Creative Cloud License&lt;br /&gt;
|-&lt;br /&gt;
| ccmediauser3@unipharm.com || NewVisionIT2051! || anmolm || angelac || Adobe Acrobat Pro License only&lt;br /&gt;
|-&lt;br /&gt;
| ccmediauser4@unipharm.com || NewVisionIT2051 || || || No license. &lt;br /&gt;
|-&lt;br /&gt;
| ralphl@unipharm.com || same as windows login|| |||| Adobe Acrobat Pro License only&lt;br /&gt;
|-&lt;br /&gt;
| nancyn@unipharm.com || same as outlook login || |||| Adobe Acrobat Pro License only&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
* During exchange deployment, ccmediauser* emails are now aliased to it@unipahrm.com&lt;br /&gt;
* June 2021, Adobe individual IDs created and assigned for Nancy and Ralph. &lt;br /&gt;
* 11:27, 25 May 2020 (PDT) Adobe Sign is an Acrobat module for e-signatures. Because Nancy and Ralph use this feature under ccmediauser4, this email address is now being forwarded to nancyn@unipharm.com. There are many alerts generated as part of the audit trail during the esignature document lifecycle.&lt;br /&gt;
* (Dec. 13, 2018) When signing in to the 3rd computer, Adobe CC now lets you sign another user out directly from said computer in order to free up a license/seat. It's a neat feature, and all but an official confirmation that &lt;br /&gt;
they understand people will use their licenses in revolving manner.&lt;br /&gt;
* On November 26, 2018 Darren created a new Adobe account because we changed from a monthly-credit-card-paying subscription to a yearly-purchase-order subscription.  The new yearly purchase reduced the number of Creative Cloud licenses from 4 to 2 and added a quantity of 1 for Acrobat Pro.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Desktop Software]]&lt;br /&gt;
[[Category: Adobe]]&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Unitech_handheld_devices_for_Web_Orders&amp;diff=14104</id>
		<title>Information Systems:Unitech handheld devices for Web Orders</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Unitech_handheld_devices_for_Web_Orders&amp;diff=14104"/>
		<updated>2021-09-17T18:55:36Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: Fixed serial config screenshot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
&lt;br /&gt;
Some shareholder stores use handheld devices provisioned by uniPHARM to help build web orders. Essentially, staff at the store can scan UPC barcodes of front-store items to build a list. This list of items is uploaded as a file to [[:Category:Web Orders | Web Orders]], and is transferred into their cart. To date, there has been no development in this area, as the devices have proven to be fairly stable, while the task they perform is very basic (but offers a lot of value (convenience/ease of ordering) to the stores that use them). &lt;br /&gt;
&lt;br /&gt;
To date, the device used is the Unitec HT-580. However, natural wear and tear has led to depleting stock. At the time of writing, new HT-630 devices will be purchased in small batches as necessary, reprogrammed, and provisioned as replacement units for those that have fallen into disrepair.&lt;br /&gt;
&lt;br /&gt;
This page outlines the technical details of the operation and configuration of the HT-630.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Programming and Configuration=&lt;br /&gt;
&lt;br /&gt;
 IMPORTANT: This information applies to the HT-630. See [[#Deploying a device for store use|Deploying a device for store use]] for information on the legacy HT-580.&lt;br /&gt;
&lt;br /&gt;
The order-building program that runs on the Unitech is a simple application developed with the included Windows utility, JobGen Plus (can be downloaded from the Unitech US website). This utility allows you to develop programs via GUI (i.e. without having to code). The source {{unc | \\superserver.unipharm.local\tech\common\uniTECH Handheld\Program\version 1.1\Order | can be found here}} (must be opened with JobGen). The most recent program is called autoexec.jgp. The program logic is intuitive and can be followed fairly easily. Consult the JobGen and HT-630 manuals {{unc | \\superserver.unipharm.local\tech\common\uniTECH Handheld\Manual | here}} for more information.&lt;br /&gt;
&lt;br /&gt;
===Serial communication parameters===&lt;br /&gt;
To configure dock and/or supplied cable communicates with the computer via serial connection. Therefore, when configuring the program to communicate with the device (either EasyJob or JobGen Plus), go to Device Manager and find the COM port e.g. COM4, COM5 etc.&lt;br /&gt;
&lt;br /&gt;
In the program, go to the Communication section and configure as follows for the correct COM:&lt;br /&gt;
::[[File:2021-09-17 11_54_08-Window.png|200px]]&lt;br /&gt;
&lt;br /&gt;
===Setting the program to run automatically===&lt;br /&gt;
The program must be called autoexec for it to auto-run on the handheld devices. Otherwise, the program will have to be manually launched, a process to which users are not accustomed.&lt;br /&gt;
&lt;br /&gt;
===Changing the power-off timeout===&lt;br /&gt;
&lt;br /&gt;
The HT-630 powers off automatically after a certain period of time. To change this:&lt;br /&gt;
&lt;br /&gt;
# Turn off the device.&lt;br /&gt;
# Hold CMD + left arrow + PWR.&lt;br /&gt;
# Press 1 to enter Supervisor mode. Password is '630'.&lt;br /&gt;
# Press 5 to enter PWR settings.&lt;br /&gt;
# Press 2 to enter AUTO OFF settings.&lt;br /&gt;
# Use the right arrow to select the desired time, or to disable auto power-off.&lt;br /&gt;
# Enter to save changes.&lt;br /&gt;
# Press ESC multiple times to exit.&lt;br /&gt;
&lt;br /&gt;
=Deploying a device for store use=&lt;br /&gt;
&lt;br /&gt;
==HT-580==&lt;br /&gt;
These devices are all pre-programmed with order.ejp. This program requires the older EasyJob program and cannot be opened with JobGen Plus. If a device needs to be re-flashed with order.ejp, obtain EasyJob {{unc | \\superserver.unipharm.local\common\uniTECH Handheld\HT580 20140114 downloads| here}}, open order.ejp, and click on 'Run Program' with the device connected (counterintuitively, this effectively installs the program to the device).&lt;br /&gt;
&lt;br /&gt;
The following comprises a complete kit for a store: unit, battery, AC adapter, dock, and USB-to-dock cable.&lt;br /&gt;
&lt;br /&gt;
==HT-630==&lt;br /&gt;
'''Note: '''These are the newer devices, which are much larger in size. Also note that these devices do not come with a dock, and thus can be deployed to the store with the USB-to-device cable and power adapter only.&lt;br /&gt;
&lt;br /&gt;
* Files required are located in the Tech/common/Unitech Handheld/Deploy HT-630 folder on superserver.&lt;br /&gt;
* With the device connected via USB, open JobGen Plus (install this program first if needed). Open the autoexec.jgp program and execute Build-&amp;gt;Make Job. This compiles the program and loads it to the device.&lt;br /&gt;
* Stores require a program called uTransfer to download the order files to their computer for uploading into Web Orders. The executable will need to be transferred and installed on their computer. Once installed, configure the program to download the order files to the desired folder and filename (usually ORDER.TXT).&lt;br /&gt;
&lt;br /&gt;
*for new deployment make sure that the comm port  is set so that the device will plug and play* check the comm port in the device manager&lt;br /&gt;
&lt;br /&gt;
==Deployment Tracking==&lt;br /&gt;
HT-630&lt;br /&gt;
&lt;br /&gt;
* Regency #2 - 1 unit&lt;br /&gt;
* Delta Prescription - 2 units&lt;br /&gt;
* Glover's - 1 unit&lt;br /&gt;
* Balkwill 1 unit&lt;br /&gt;
* IT cage - 1 units&lt;br /&gt;
&lt;br /&gt;
===Events===&lt;br /&gt;
* Aug. 2018: Purchased 2 additional units. Total of 6.&lt;br /&gt;
* Sept. 5, 2018: Exchanged 1 unit with Delta Rx.&lt;br /&gt;
* Sept. 19, 2018: Require batteries and extra charging cable for reserve.&lt;br /&gt;
* 2019: Purchased 2 more devices.&lt;br /&gt;
&lt;br /&gt;
HT-580 (old devices)&lt;br /&gt;
&lt;br /&gt;
* Cates - 1 unit&lt;br /&gt;
* Pender Island - 1 unit&lt;br /&gt;
&lt;br /&gt;
=To-dos for this topic= &lt;br /&gt;
&lt;br /&gt;
* Document Web Orders Upload instructions (uTransfer)&lt;br /&gt;
* Document standard protocol for provisioning devices to a shareholder store - done&lt;br /&gt;
* Maintain a list of stores actively using these devices&lt;br /&gt;
* More detailed instructions for provisioning to the store&lt;br /&gt;
* Compare order.ejp and autoexec.jgp&lt;br /&gt;
&lt;br /&gt;
[[Category:Unitech]]&lt;br /&gt;
[[Category:Web Orders]]&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Unitech_handheld_devices_for_Web_Orders&amp;diff=14103</id>
		<title>Information Systems:Unitech handheld devices for Web Orders</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Unitech_handheld_devices_for_Web_Orders&amp;diff=14103"/>
		<updated>2021-09-17T18:55:03Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: Added serial communication&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
&lt;br /&gt;
Some shareholder stores use handheld devices provisioned by uniPHARM to help build web orders. Essentially, staff at the store can scan UPC barcodes of front-store items to build a list. This list of items is uploaded as a file to [[:Category:Web Orders | Web Orders]], and is transferred into their cart. To date, there has been no development in this area, as the devices have proven to be fairly stable, while the task they perform is very basic (but offers a lot of value (convenience/ease of ordering) to the stores that use them). &lt;br /&gt;
&lt;br /&gt;
To date, the device used is the Unitec HT-580. However, natural wear and tear has led to depleting stock. At the time of writing, new HT-630 devices will be purchased in small batches as necessary, reprogrammed, and provisioned as replacement units for those that have fallen into disrepair.&lt;br /&gt;
&lt;br /&gt;
This page outlines the technical details of the operation and configuration of the HT-630.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Programming and Configuration=&lt;br /&gt;
&lt;br /&gt;
 IMPORTANT: This information applies to the HT-630. See [[#Deploying a device for store use|Deploying a device for store use]] for information on the legacy HT-580.&lt;br /&gt;
&lt;br /&gt;
The order-building program that runs on the Unitech is a simple application developed with the included Windows utility, JobGen Plus (can be downloaded from the Unitech US website). This utility allows you to develop programs via GUI (i.e. without having to code). The source {{unc | \\superserver.unipharm.local\tech\common\uniTECH Handheld\Program\version 1.1\Order | can be found here}} (must be opened with JobGen). The most recent program is called autoexec.jgp. The program logic is intuitive and can be followed fairly easily. Consult the JobGen and HT-630 manuals {{unc | \\superserver.unipharm.local\tech\common\uniTECH Handheld\Manual | here}} for more information.&lt;br /&gt;
&lt;br /&gt;
===Serial communication parameters===&lt;br /&gt;
To configure dock and/or supplied cable communicates with the computer via serial connection. Therefore, when configuring the program to communicate with the device (either EasyJob or JobGen Plus), go to Device Manager and find the COM port e.g. COM4, COM5 etc.&lt;br /&gt;
&lt;br /&gt;
In the program, go to the Communication section and configure as follows for the correct COM:&lt;br /&gt;
[[File:2021-09-17 11_54_08-Window.png|200px]]&lt;br /&gt;
&lt;br /&gt;
===Setting the program to run automatically===&lt;br /&gt;
The program must be called autoexec for it to auto-run on the handheld devices. Otherwise, the program will have to be manually launched, a process to which users are not accustomed.&lt;br /&gt;
&lt;br /&gt;
===Changing the power-off timeout===&lt;br /&gt;
&lt;br /&gt;
The HT-630 powers off automatically after a certain period of time. To change this:&lt;br /&gt;
&lt;br /&gt;
# Turn off the device.&lt;br /&gt;
# Hold CMD + left arrow + PWR.&lt;br /&gt;
# Press 1 to enter Supervisor mode. Password is '630'.&lt;br /&gt;
# Press 5 to enter PWR settings.&lt;br /&gt;
# Press 2 to enter AUTO OFF settings.&lt;br /&gt;
# Use the right arrow to select the desired time, or to disable auto power-off.&lt;br /&gt;
# Enter to save changes.&lt;br /&gt;
# Press ESC multiple times to exit.&lt;br /&gt;
&lt;br /&gt;
=Deploying a device for store use=&lt;br /&gt;
&lt;br /&gt;
==HT-580==&lt;br /&gt;
These devices are all pre-programmed with order.ejp. This program requires the older EasyJob program and cannot be opened with JobGen Plus. If a device needs to be re-flashed with order.ejp, obtain EasyJob {{unc | \\superserver.unipharm.local\common\uniTECH Handheld\HT580 20140114 downloads| here}}, open order.ejp, and click on 'Run Program' with the device connected (counterintuitively, this effectively installs the program to the device).&lt;br /&gt;
&lt;br /&gt;
The following comprises a complete kit for a store: unit, battery, AC adapter, dock, and USB-to-dock cable.&lt;br /&gt;
&lt;br /&gt;
==HT-630==&lt;br /&gt;
'''Note: '''These are the newer devices, which are much larger in size. Also note that these devices do not come with a dock, and thus can be deployed to the store with the USB-to-device cable and power adapter only.&lt;br /&gt;
&lt;br /&gt;
* Files required are located in the Tech/common/Unitech Handheld/Deploy HT-630 folder on superserver.&lt;br /&gt;
* With the device connected via USB, open JobGen Plus (install this program first if needed). Open the autoexec.jgp program and execute Build-&amp;gt;Make Job. This compiles the program and loads it to the device.&lt;br /&gt;
* Stores require a program called uTransfer to download the order files to their computer for uploading into Web Orders. The executable will need to be transferred and installed on their computer. Once installed, configure the program to download the order files to the desired folder and filename (usually ORDER.TXT).&lt;br /&gt;
&lt;br /&gt;
*for new deployment make sure that the comm port  is set so that the device will plug and play* check the comm port in the device manager&lt;br /&gt;
&lt;br /&gt;
==Deployment Tracking==&lt;br /&gt;
HT-630&lt;br /&gt;
&lt;br /&gt;
* Regency #2 - 1 unit&lt;br /&gt;
* Delta Prescription - 2 units&lt;br /&gt;
* Glover's - 1 unit&lt;br /&gt;
* Balkwill 1 unit&lt;br /&gt;
* IT cage - 1 units&lt;br /&gt;
&lt;br /&gt;
===Events===&lt;br /&gt;
* Aug. 2018: Purchased 2 additional units. Total of 6.&lt;br /&gt;
* Sept. 5, 2018: Exchanged 1 unit with Delta Rx.&lt;br /&gt;
* Sept. 19, 2018: Require batteries and extra charging cable for reserve.&lt;br /&gt;
* 2019: Purchased 2 more devices.&lt;br /&gt;
&lt;br /&gt;
HT-580 (old devices)&lt;br /&gt;
&lt;br /&gt;
* Cates - 1 unit&lt;br /&gt;
* Pender Island - 1 unit&lt;br /&gt;
&lt;br /&gt;
=To-dos for this topic= &lt;br /&gt;
&lt;br /&gt;
* Document Web Orders Upload instructions (uTransfer)&lt;br /&gt;
* Document standard protocol for provisioning devices to a shareholder store - done&lt;br /&gt;
* Maintain a list of stores actively using these devices&lt;br /&gt;
* More detailed instructions for provisioning to the store&lt;br /&gt;
* Compare order.ejp and autoexec.jgp&lt;br /&gt;
&lt;br /&gt;
[[Category:Unitech]]&lt;br /&gt;
[[Category:Web Orders]]&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=File:2021-09-17_11_54_08-Window.png&amp;diff=14102</id>
		<title>File:2021-09-17 11 54 08-Window.png</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=File:2021-09-17_11_54_08-Window.png&amp;diff=14102"/>
		<updated>2021-09-17T18:54:30Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Distribution_Centre:How_to_Sign_Loss_or_Theft_Report_Form&amp;diff=14094</id>
		<title>Distribution Centre:How to Sign Loss or Theft Report Form</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Distribution_Centre:How_to_Sign_Loss_or_Theft_Report_Form&amp;diff=14094"/>
		<updated>2021-09-14T17:32:07Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Instructions==&lt;br /&gt;
&lt;br /&gt;
# Fill out form in browser Window.&lt;br /&gt;
# Download form using the down arrow at the top right of the window pane. Make sure to select &amp;quot;With changes&amp;quot;.&lt;br /&gt;
:[[File:2021-09-14 10_27_18-Window.png|100px]]&lt;br /&gt;
# Open file using Windows Explorer. It should open in Adobe Acrobat Reader.&lt;br /&gt;
:[[File:2021-09-14 10_29_01-.png|100px]]&lt;br /&gt;
# Click on the signature field. In the pop-up, select your signature. If one has not been created for you, call IT.&lt;br /&gt;
# Save signed file and send attach to email.&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Distribution_Centre:How_to_Sign_Loss_or_Theft_Report_Form&amp;diff=14093</id>
		<title>Distribution Centre:How to Sign Loss or Theft Report Form</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Distribution_Centre:How_to_Sign_Loss_or_Theft_Report_Form&amp;diff=14093"/>
		<updated>2021-09-14T17:31:12Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Instructions==&lt;br /&gt;
&lt;br /&gt;
# Fill out form in browser Window.&lt;br /&gt;
# Download form using the down arrow at the top right of the window pane. Make sure to select &amp;quot;With changes&amp;quot;.&lt;br /&gt;
:[[File:2021-09-14 10_27_18-Window.png|100px]]&lt;br /&gt;
# Open file using Windows Explorer. It should open in Adobe Acrobat Reader.&lt;br /&gt;
:[[File:2021-09-14 10_29_01-.png|100px]]&lt;br /&gt;
# Click on the signature field. In the pop-up, select your signature. If one has not been created for you, call IT.&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Distribution_Centre:How_to_Sign_Loss_or_Theft_Report_Form&amp;diff=14092</id>
		<title>Distribution Centre:How to Sign Loss or Theft Report Form</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Distribution_Centre:How_to_Sign_Loss_or_Theft_Report_Form&amp;diff=14092"/>
		<updated>2021-09-14T17:31:05Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Instructions==&lt;br /&gt;
&lt;br /&gt;
# Fill out form in browser Window.&lt;br /&gt;
# Download form using the down arrow at the top right of the window pane. Make sure to select &amp;quot;With changes&amp;quot;.&lt;br /&gt;
 [[File:2021-09-14 10_27_18-Window.png|100px]]&lt;br /&gt;
# Open file using Windows Explorer. It should open in Adobe Acrobat Reader.&lt;br /&gt;
 [[File:2021-09-14 10_29_01-.png|100px]]&lt;br /&gt;
# Click on the signature field. In the pop-up, select your signature. If one has not been created for you, call IT.&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Distribution_Centre:How_to_Sign_Loss_or_Theft_Report_Form&amp;diff=14091</id>
		<title>Distribution Centre:How to Sign Loss or Theft Report Form</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Distribution_Centre:How_to_Sign_Loss_or_Theft_Report_Form&amp;diff=14091"/>
		<updated>2021-09-14T17:30:58Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Instructions==&lt;br /&gt;
&lt;br /&gt;
# Fill out form in browser Window.&lt;br /&gt;
# Download form using the down arrow at the top right of the window pane. Make sure to select &amp;quot;With changes&amp;quot;.&lt;br /&gt;
 [[:File:2021-09-14 10_27_18-Window.png|100px]]&lt;br /&gt;
# Open file using Windows Explorer. It should open in Adobe Acrobat Reader.&lt;br /&gt;
 [[File:2021-09-14 10_29_01-.png|100px]]&lt;br /&gt;
# Click on the signature field. In the pop-up, select your signature. If one has not been created for you, call IT.&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Distribution_Centre:How_to_Sign_Loss_or_Theft_Report_Form&amp;diff=14090</id>
		<title>Distribution Centre:How to Sign Loss or Theft Report Form</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Distribution_Centre:How_to_Sign_Loss_or_Theft_Report_Form&amp;diff=14090"/>
		<updated>2021-09-14T17:30:44Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Instructions==&lt;br /&gt;
&lt;br /&gt;
# Fill out form in browser Window.&lt;br /&gt;
# Download form using the down arrow at the top right of the window pane. Make sure to select &amp;quot;With changes&amp;quot;.&lt;br /&gt;
 [[File:2021-09-14 10_27_18-Window.png|100]][[:File:2021-09-14 10_27_18-Window.png]]&lt;br /&gt;
# Open file using Windows Explorer. It should open in Adobe Acrobat Reader.&lt;br /&gt;
 [[File:2021-09-14 10_29_01-.png|100px]]&lt;br /&gt;
# Click on the signature field. In the pop-up, select your signature. If one has not been created for you, call IT.&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Distribution_Centre:How_to_Sign_Loss_or_Theft_Report_Form&amp;diff=14089</id>
		<title>Distribution Centre:How to Sign Loss or Theft Report Form</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Distribution_Centre:How_to_Sign_Loss_or_Theft_Report_Form&amp;diff=14089"/>
		<updated>2021-09-14T17:30:33Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: Created page with &amp;quot;==Instructions==  # Fill out form in browser Window. # Download form using the down arrow at the top right of the window pane. Make sure to select &amp;quot;With changes&amp;quot;.  File:2021...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Instructions==&lt;br /&gt;
&lt;br /&gt;
# Fill out form in browser Window.&lt;br /&gt;
# Download form using the down arrow at the top right of the window pane. Make sure to select &amp;quot;With changes&amp;quot;.&lt;br /&gt;
 [[File:2021-09-14 10_27_18-Window.png|400px]][[:File:2021-09-14 10_27_18-Window.png]]&lt;br /&gt;
# Open file using Windows Explorer. It should open in Adobe Acrobat Reader.&lt;br /&gt;
 [[File:2021-09-14 10_29_01-.png|400px]]&lt;br /&gt;
# Click on the signature field. In the pop-up, select your signature. If one has not been created for you, call IT.&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=File:2021-09-14_10_29_01-.png&amp;diff=14088</id>
		<title>File:2021-09-14 10 29 01-.png</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=File:2021-09-14_10_29_01-.png&amp;diff=14088"/>
		<updated>2021-09-14T17:29:31Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=File:2021-09-14_10_27_18-Window.png&amp;diff=14087</id>
		<title>File:2021-09-14 10 27 18-Window.png</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=File:2021-09-14_10_27_18-Window.png&amp;diff=14087"/>
		<updated>2021-09-14T17:27:33Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Box_label_program_(PLZIU400)_hangs_for_a_single_customer&amp;diff=14086</id>
		<title>Information Systems:Box label program (PLZIU400) hangs for a single customer</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Box_label_program_(PLZIU400)_hangs_for_a_single_customer&amp;diff=14086"/>
		<updated>2021-09-10T04:27:50Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: /* Explanation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is one of those crazy quirks of the system that leave you in awe.&lt;br /&gt;
&lt;br /&gt;
==Background== &lt;br /&gt;
The warehouse uses a program in the UNITY menus (25 - Special box labels) to manually print one-off box labels (e.g. for a mail run or a special shipment). It presents the user with a simple interface to enter the customer number (blank for all), number of labels, and the thermal printer to print to. &lt;br /&gt;
&lt;br /&gt;
==Problem==&lt;br /&gt;
A user prints x number of labels for a customer and then tries to print another x number of labels on the same day and notices that the program hangs. Anyone else that tries to print for the same customer using the same program experiences the hang as well. Once the program hangs, the user cannot force quit the sessions by closing the window; multiple attempts will therefore bog the CPU with hung sessions.&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
Since this program generates box labels and Atlas is the primary transportation partner, part of the logic is to generate a ''unique'' Atlas waybill (even if the box is not being sent out through Atlas) using metadata: the '''customer number''' + '''Julian date (days part)''' + '''2-digit counter from 01-99'''. &lt;br /&gt;
&lt;br /&gt;
Here is an example of how the problem can happen:&lt;br /&gt;
&lt;br /&gt;
# On Sep. 9 2021, the Julian day is 252. A user prints 50 box labels for 10478. Hence, the waybills 1047825201 - 1047825250 are used and logged to the file ATLEXTRAP.&lt;br /&gt;
# The following year, on the same day, the user prints another 50 labels for 10478. On the 50th label, the wayill generator wraps back to 1 after the 2-digit counter reaches 99.&lt;br /&gt;
# 1047825201 is now a duplicate, which the program prevents from being written to ATLEXTRAP, and it handles this by incrementing the counter, thus yielding an infinite loop. You can examine this via SQL on CVUSDAP (filter by CLCUVE), where CVNUMB loops through 0-99 endlessly during the time one of the sessions is still hung.&lt;br /&gt;
&lt;br /&gt;
If these were not legacy programs, a bug fix would've been attempted. The rarity of this problem also makes a patch not worthwhile.&lt;br /&gt;
&lt;br /&gt;
==Fix==&lt;br /&gt;
Find today's Julian day. Examine ATLEXTRAP where the waybill number (ATLSHIP) starts with the customer number + Julian day e.g. '''10478252'''''01''. Delete records where ATLSDAT is a previous year, or if many were printed on the current day by accident, delete these records.&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Box_label_program_(PLZIU400)_hangs_for_a_single_customer&amp;diff=14085</id>
		<title>Information Systems:Box label program (PLZIU400) hangs for a single customer</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Box_label_program_(PLZIU400)_hangs_for_a_single_customer&amp;diff=14085"/>
		<updated>2021-09-10T04:27:22Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: /* Explanation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is one of those crazy quirks of the system that leave you in awe.&lt;br /&gt;
&lt;br /&gt;
==Background== &lt;br /&gt;
The warehouse uses a program in the UNITY menus (25 - Special box labels) to manually print one-off box labels (e.g. for a mail run or a special shipment). It presents the user with a simple interface to enter the customer number (blank for all), number of labels, and the thermal printer to print to. &lt;br /&gt;
&lt;br /&gt;
==Problem==&lt;br /&gt;
A user prints x number of labels for a customer and then tries to print another x number of labels on the same day and notices that the program hangs. Anyone else that tries to print for the same customer using the same program experiences the hang as well. Once the program hangs, the user cannot force quit the sessions by closing the window; multiple attempts will therefore bog the CPU with hung sessions.&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
Since this program generates box labels and Atlas is the primary transportation partner, part of the logic is to generate a ''unique'' Atlas waybill (even if the box is not being sent out through Atlas) using metadata: the '''customer number''' + '''Julian date (days part)''' + ''2-digit counter from 01-99''. &lt;br /&gt;
&lt;br /&gt;
Here is an example of how the problem can happen:&lt;br /&gt;
&lt;br /&gt;
# On Sep. 9 2021, the Julian day is 252. A user prints 50 box labels for 10478. Hence, the waybills 1047825201 - 1047825250 are used and logged to the file ATLEXTRAP.&lt;br /&gt;
# The following year, on the same day, the user prints another 50 labels for 10478. On the 50th label, the wayill generator wraps back to 1 after the 2-digit counter reaches 99.&lt;br /&gt;
# 1047825201 is now a duplicate, which the program prevents from being written to ATLEXTRAP, and it handles this by incrementing the counter, thus yielding an infinite loop. You can examine this via SQL on CVUSDAP (filter by CLCUVE), where CVNUMB loops through 0-99 endlessly during the time one of the sessions is still hung.&lt;br /&gt;
&lt;br /&gt;
If these were not legacy programs, a bug fix would've been attempted. The rarity of this problem also makes a patch not worthwhile.&lt;br /&gt;
&lt;br /&gt;
==Fix==&lt;br /&gt;
Find today's Julian day. Examine ATLEXTRAP where the waybill number (ATLSHIP) starts with the customer number + Julian day e.g. '''10478252'''''01''. Delete records where ATLSDAT is a previous year, or if many were printed on the current day by accident, delete these records.&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Box_label_program_(PLZIU400)_hangs_for_a_single_customer&amp;diff=14084</id>
		<title>Information Systems:Box label program (PLZIU400) hangs for a single customer</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Box_label_program_(PLZIU400)_hangs_for_a_single_customer&amp;diff=14084"/>
		<updated>2021-09-10T04:22:17Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is one of those crazy quirks of the system that leave you in awe.&lt;br /&gt;
&lt;br /&gt;
==Background== &lt;br /&gt;
The warehouse uses a program in the UNITY menus (25 - Special box labels) to manually print one-off box labels (e.g. for a mail run or a special shipment). It presents the user with a simple interface to enter the customer number (blank for all), number of labels, and the thermal printer to print to. &lt;br /&gt;
&lt;br /&gt;
==Problem==&lt;br /&gt;
A user prints x number of labels for a customer and then tries to print another x number of labels on the same day and notices that the program hangs. Anyone else that tries to print for the same customer using the same program experiences the hang as well. Once the program hangs, the user cannot force quit the sessions by closing the window; multiple attempts will therefore bog the CPU with hung sessions.&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
Since this program generates box labels and Atlas is the primary transportation partner, part of the logic is to generate a ''unique'' waybill using &amp;quot;meaningful information&amp;quot; (as per the comments). This is the '''customer number''' + '''Julian date (days part)''' + ''2-digit counter from 01-99''. Here is an example of how the problem can happen:&lt;br /&gt;
&lt;br /&gt;
# On Sep. 9 2021, the Julian day is 252. A user prints 50 box labels for 10478. Hence, the waybills 1047825201 - 1047825250 are used and logged to the file ATLEXTRAP.&lt;br /&gt;
# The following year, on the same day, the user prints another 50 labels for 10478. On the 50th label, the wayill generator wraps back to 1 as all the 2-digit counter is incremented past 99.&lt;br /&gt;
# 1047825201 is now duplicated, and the program checks for uniqueness of the waybill number, incrementing the counter if the waybill already exists, thus yielding an infinite loop. You can examine this via SQL on CVUSDAP (filter by CLCUVE), where CVNUMB loops through 0-99 during the time one of the sessions is still hung.&lt;br /&gt;
&lt;br /&gt;
If these were not legacy programs, a bug fix would've been attempted. The rarity of this problem also makes a patch not worthwhile. &lt;br /&gt;
&lt;br /&gt;
==Fix==&lt;br /&gt;
Find today's Julian day. Examine ATLEXTRAP where the waybill number (ATLSHIP) starts with the customer number + Julian day e.g. '''10478252'''''01''. Delete records where ATLSDAT is a previous year, or if many were printed on the current day by accident, delete these records.&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Box_label_program_(PLZIU400)_hangs_for_a_single_customer&amp;diff=14083</id>
		<title>Information Systems:Box label program (PLZIU400) hangs for a single customer</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Box_label_program_(PLZIU400)_hangs_for_a_single_customer&amp;diff=14083"/>
		<updated>2021-09-10T04:21:48Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: Created page with &amp;quot;This is one of those crazy quirks of the system that leave you in awe.  ==Background==  The warehouse uses a program in the UNITY menus (25 - Special box labels) to manually p...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is one of those crazy quirks of the system that leave you in awe.&lt;br /&gt;
&lt;br /&gt;
==Background== &lt;br /&gt;
The warehouse uses a program in the UNITY menus (25 - Special box labels) to manually print one-off box labels (e.g. for a mail run or a special shipment). It presents the user with a simple interface to enter the customer number (blank for all), number of labels, and the thermal printer to print to. &lt;br /&gt;
&lt;br /&gt;
==Problem==&lt;br /&gt;
A user prints x number of labels for a customer and then tries to print another x number of labels on the same day and notices that the program hangs. Anyone else that tries to print for the same customer using the same program experiences the hang as well. Once the program hangs, the user cannot force quit the sessions by closing the window; multiple attempts will therefore bog the CPU with hung sessions.&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
Since this program generates box labels and Atlas is the primary transportation partner, part of the logic is to generate a ''unique'' waybill using &amp;quot;meaningful information&amp;quot; (as per the comments). This is the '''customer number''' + '''Julian date (days part)''' + ''2-digit counter from 01-99''. Here is an example of how the problem can happen:&lt;br /&gt;
&lt;br /&gt;
# On Sep. 9 2021, the Julian day is 252. A user prints 50 box labels for 10478. Hence, the waybills 1047825201 - 1047825250 are used and logged to the file ATLEXTRAP.&lt;br /&gt;
# The following year, on the same day, the user prints another 50 labels for 10478. On the 50th label, the wayill generator wraps back to 1 as all the 2-digit counter is incremented past 99.&lt;br /&gt;
# 1047825201 is now duplicated, and the program checks for uniqueness of the waybill number, incrementing the counter if the waybill already exists, thus yielding an infinite loop. You can examine this via SQL on CVUSDAP (filter by CLCUVE), where CVNUMB loops through 0-99 during the time one of the sessions is still hung.&lt;br /&gt;
&lt;br /&gt;
If these were not legacy programs, a bug fix would've been attempted. The rarity of this problem also makes a patch not worthwhile. &lt;br /&gt;
&lt;br /&gt;
==Fix==&lt;br /&gt;
Find today's Julian day. Examine ATLEXTRAP where the waybill number (ATLSHIP) starts with the customer number + Julian date e.g. ''10478'''''252'''''01''. Delete records where ATLSDAT is a previous year, or if many were printed on the current day by accident, delete these records.&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Pharmacy_Services:Medication_Returns_(from_Patients)&amp;diff=14044</id>
		<title>Pharmacy Services:Medication Returns (from Patients)</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Pharmacy_Services:Medication_Returns_(from_Patients)&amp;diff=14044"/>
		<updated>2021-08-06T23:14:46Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
abc&lt;br /&gt;
[[Category:Pharmacy Services]]&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Software_Repository&amp;diff=14031</id>
		<title>Information Systems:Software Repository</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Software_Repository&amp;diff=14031"/>
		<updated>2021-07-21T23:34:13Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: Started article&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Work-in-progress - we need a software repo that is publicly accessible. Needs to be curated/maintained so we don't overload it with admin software and drivers that will quickly become outdated. &lt;br /&gt;
&lt;br /&gt;
Currently, the folder is '''UWD Software''' on superserver. We used to have GPOs (ADSI) that referenced this path, but we're trying to transition into using PDQ Deploy for software provisioning (remote installation) rather than Active Directory. Still, be mindful of this if deleting software from this folder.&lt;br /&gt;
&lt;br /&gt;
[[Category: Systems Administration]]&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Office_Label_Printing&amp;diff=14030</id>
		<title>Information Systems:Office Label Printing</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Office_Label_Printing&amp;diff=14030"/>
		<updated>2021-07-21T23:31:04Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The company has 2 Brother desktop label printers (thermal) for office use e.g. asset stickers, mail address labels. Currently, only The IT department and Angela use these printers, so they each have a printer.&lt;br /&gt;
&lt;br /&gt;
==Inventory==&lt;br /&gt;
The two printers are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Model !! Location !! Usage !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| QL-570 || Angela's office || Mail labels, asset stickers, personnel file folder labels || Connected to Angela's PC via USB&lt;br /&gt;
|-&lt;br /&gt;
| QL-720NW || IT Dept. common area || Tape labels, misc. || Reachable via network (WiFi). IP: 172.30.17.28 DNS: it-label-prt.unipharm.local&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Administration==&lt;br /&gt;
===Label templates===&lt;br /&gt;
We do not have many, but these (lbx files) should be centrally stored on Superserver (check the Tech folder). It is possible to transfer templates to the printer directly but this has proven to be cumbersome (for example, templates made with P-touch editor for PC and transferred to a printer were not visible in the iPrint&amp;amp;Label app).&lt;br /&gt;
&lt;br /&gt;
===Software===&lt;br /&gt;
The software to generate and print labels is called P-touch Editor, and can be downloaded from the Brother website. There are other utilities for more advanced usage (mail-merges and database input), but we likely won't be needing these. A copy is located in the [[Information Systems: Software Repository|software repo]].&lt;br /&gt;
&lt;br /&gt;
There is also the iPrint&amp;amp;Label app, which can generate and print to networked label printers (of which we have 1).&lt;br /&gt;
&lt;br /&gt;
===Film vs paper labels===&lt;br /&gt;
There are two types of labels, film and paper. Paper labels are cheap and common (i.e. lots of 3rd party makers). They are suitable for use on paper i.e. Manila envelopes. However, for things like asset stickers, the more expensive and more durable film label is a better choice. &lt;br /&gt;
&lt;br /&gt;
* '''DK-2212''' - 2.4&amp;quot; film, continuous&lt;br /&gt;
&lt;br /&gt;
[[Category: Printing]]&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Office_Label_Printing&amp;diff=14029</id>
		<title>Information Systems:Office Label Printing</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Office_Label_Printing&amp;diff=14029"/>
		<updated>2021-07-21T23:30:49Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The company has 2 Brother desktop label printers (thermal) for office use e.g. asset stickers, mail address labels. Currently, only The IT department and Angela use these printers, so they each have a printer.&lt;br /&gt;
&lt;br /&gt;
==Inventory==&lt;br /&gt;
The two printers are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Model !! Location !! Usage !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| QL-570 || Angela's office || Mail labels, asset stickers, personnel file folder labels || Connected to Angela's PC via USB&lt;br /&gt;
|-&lt;br /&gt;
| QL-720NW || IT Dept. common area || Tape labels, misc. || Reachable via network (WiFi). IP: 172.30.17.28 DNS: it-label-prt.unipharm.local&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Administration==&lt;br /&gt;
===Label templates===&lt;br /&gt;
We do not have many, but these (lbx files) should be centrally stored on Superserver (check the Tech folder). It is possible to transfer templates to the printer directly but this has proven to be cumbersome (for example, templates made with P-touch editor for PC and transferred to a printer were not visible in the iPrint&amp;amp;Label app).&lt;br /&gt;
&lt;br /&gt;
===Software===&lt;br /&gt;
The software to generate and print labels is called P-touch Editor, and can be downloaded from the Brother website. There are other utilities for more advanced usage (mail-merges and database input), but we likely won't be needing these. A copy is located in the [[Information Systems: Softwaare Repository|software repo]].&lt;br /&gt;
&lt;br /&gt;
There is also the iPrint&amp;amp;Label app, which can generate and print to networked label printers (of which we have 1).&lt;br /&gt;
&lt;br /&gt;
===Film vs paper labels===&lt;br /&gt;
There are two types of labels, film and paper. Paper labels are cheap and common (i.e. lots of 3rd party makers). They are suitable for use on paper i.e. Manila envelopes. However, for things like asset stickers, the more expensive and more durable film label is a better choice. &lt;br /&gt;
&lt;br /&gt;
* '''DK-2212''' - 2.4&amp;quot; film, continuous&lt;br /&gt;
&lt;br /&gt;
[[Category: Printing]]&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Office_Label_Printing&amp;diff=14028</id>
		<title>Information Systems:Office Label Printing</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Office_Label_Printing&amp;diff=14028"/>
		<updated>2021-07-21T23:29:48Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The company has 2 Brother desktop label printers (thermal) for office use e.g. asset stickers, mail address labels. Currently, only The IT department and Angela use these printers, so they each have a printer.&lt;br /&gt;
&lt;br /&gt;
==Inventory==&lt;br /&gt;
The two printers are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Model !! Location !! Usage !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| QL-570 || Angela's office || Mail labels, asset stickers, personnel file folder labels || Connected to Angela's PC via USB&lt;br /&gt;
|-&lt;br /&gt;
| QL-720NW || IT Dept. common area || Tape labels, misc. || Reachable via network (WiFi). IP: 172.30.17.28 DNS: it-label-prt.unipharm.local&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Administration==&lt;br /&gt;
===Label templates===&lt;br /&gt;
We do not have many, but these (lbx files) should be centrally stored on Superserver (check the Tech folder). It is possible to transfer templates to the printer directly but this has proven to be cumbersome (for example, templates made with P-touch editor for PC and transferred to a printer were not visible in the iPrint&amp;amp;Label app).&lt;br /&gt;
&lt;br /&gt;
===Software===&lt;br /&gt;
The software to generate and print labels is called P-touch Editor, and can be downloaded from the Brother website. There are other utilities for more advanced usage (mail-merges and database input), but we likely won't be needing these. A copy is located on superserver.&lt;br /&gt;
&lt;br /&gt;
There is also the iPrint&amp;amp;Label app, which can generate and print to networked label printers (of which we have 1).&lt;br /&gt;
&lt;br /&gt;
===Film vs paper labels===&lt;br /&gt;
There are two types of labels, film and paper. Paper labels are cheap and common (i.e. lots of 3rd party makers). They are suitable for use on paper i.e. Manila envelopes. However, for things like asset stickers, the more expensive and more durable film label is a better choice. &lt;br /&gt;
&lt;br /&gt;
* '''DK-2212''' - 2.4&amp;quot; film, continuous&lt;br /&gt;
&lt;br /&gt;
[[Category: Printing]]&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Mail_flow&amp;diff=14027</id>
		<title>Information Systems:Mail flow</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Mail_flow&amp;diff=14027"/>
		<updated>2021-07-20T07:56:08Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: Add connector info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page discusses the flow of email (mail flow), including Exchange connectors, MDaemon smart host configuration, and mail rules. &lt;br /&gt;
&lt;br /&gt;
A mechanism to set up &amp;quot;rules&amp;quot; specifying actions when certain criteria are met (i.e. matching certain message properties) is central to most mail server systems. In MDaemon, this is known as the Content Filter. In Exchange, there is a ''Rules'' section within ''Mail flow''. &lt;br /&gt;
&lt;br /&gt;
==Connectors==&lt;br /&gt;
 Understanding connectors is crucial to understanding the overall mail flow.&lt;br /&gt;
A connector in Exchange is defined when special is routing is needed between Exchange and another mail server. It is required for our environment because email hosting for the domains unipharm.com and medicinecentre.com is split between Exchange and MDaemon i.e. there are mailboxes for both domains on Exchange and MDaemon. It is worthwhile to first state that all inbound mail goes through Exchange (MX records point to EOP). For addresses that correlate to Exchange mailboxes, the routing of inbound mail is straightforward. When Exchange receives an email that is destined for an MDaemon mailbox, it sends it to MDaemon ''through a connector'', which must be properly configured. ''Although the name may suggest it, a connector isn't a stateful connection between 2 servers. It's more just a route.''&lt;br /&gt;
&lt;br /&gt;
A connector can be from Exchange to another mail server or vice versa. This is called Send and Receive connectors in on-prem Exchange, but these labels are not applicable to connectors in Exchange Online. There are 2 connectors defined in our configuration, one for each direction:&lt;br /&gt;
&lt;br /&gt;
* '''MDaemon to Exchange by Hostname''' - This connector accepts mail from MDaemon and is needed for email from MDaemon mailboxes to Exchange mailboxes. For example, when a shareholder (one that uses a unipharm.com email) sends to a staff member, the message goes through this connector. &lt;br /&gt;
* ''Exchange to MDaemon '' - This connector sends mail destined for MDaemon mailboxes to MDaemon.&lt;br /&gt;
&lt;br /&gt;
'''Now for the fun part.''' The latter connector (Exchange to MDaemon) is rule-based. TBC...&lt;br /&gt;
&lt;br /&gt;
==Mail Rules==&lt;br /&gt;
This section discusses mail rules (server-side rules) and their business impact e.g. their desired function and the rationale behind their implementation.&lt;br /&gt;
===Substitute Reply-to header for document distribution emails===&lt;br /&gt;
'''Implemented in:''' MDaemon&lt;br /&gt;
&lt;br /&gt;
Document distribution emails describe emails such as remittance advices, A/R statements, invoices (PDF copy), purchase orders etc. These originate from JetForm (ultimately ASW), or custom mailer scripts on Bart, and are therefore sent using their assigned email accounts - unipharm@unipharm.com and uphadmin@unipharm.com. Recipients that reply by (naturally) hitting the reply button and accepting the suggested To address unknowingly send these emails back to these addresses, which are then forwarded to IT and require manual forwarding to get to their &amp;quot;true&amp;quot; intended recipient.&lt;br /&gt;
&lt;br /&gt;
The MDaemon Content Filter rule (many rules, but based on the same template) that pertain to this policy works by looking for properties specific to these emails and then changing the Reply-To header. For example, in A/R statement emails, the subject always contains &amp;quot;AR STATEMENT&amp;quot; and contains a From: header with the value unipharm@unipharm.com. Replies to these emails should always go to accountsreceivable@unipharm.com, and so the rule specifies this as the Reply-To. The rule actually deletes this and 2 other headers as well, as these pertain to replies. For example, the Return-Path header is so that mail servers know where to send bounces in scenarios where the message cannot even be delivered to the intended recipient.&lt;br /&gt;
&lt;br /&gt;
Note that the rules avoid changing the From: header. This should not be modified (i.e. it should remain as unipharm@unipharm.com or uphadmin@unipharm.com), because recipients may have email rules in place to detect this, or more importantly, machine recipients (servers that accept PO emails) may already be set to only accept messages from these addresses. The Reply-To header is more appropriate as it is only implicated when replying to the message.&lt;br /&gt;
&lt;br /&gt;
Proof of the rule taking effect:&lt;br /&gt;
[[File:2021-03-15 12_45_02-Window.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===Include staff in shareholder correspondence===&lt;br /&gt;
'''Implemented in:''' Exchange&lt;br /&gt;
&lt;br /&gt;
When emails are sent to shareholder distribution lists, it is currently a &amp;quot;business rule&amp;quot; to BCC select staff members, with the intent being so that staff remain informed of any mass correspondence in the case they receive calls and questions regarding said correspondence. Rather than implement this business rule by including staff members in the distribution lists themselves (which simply, is bad design), it is more apprporiate to institute a mail flow rule to achieve this same outcome. By doing this, you can also specify the senders to which this rule applies, because some senders that use distribution lists in a more conventional fashion may intend to send only to recipients suggested by the list name (i.e. sending to shareholders should only go to shareholders, because the name of the list is...Shareholders!).&lt;br /&gt;
&lt;br /&gt;
The implementation of this rule is straightforward - if an email is sent to any of the specified lists, then place these users (individual users specified) in the Bcc field.&lt;br /&gt;
&lt;br /&gt;
===Exempt messages to email order catch-all addresses from most scanning===&lt;br /&gt;
'''Implemented in:''' Exchange, MDaemon&lt;br /&gt;
&lt;br /&gt;
There are still numerous shareholder stores (big ones at that) that use POS systems or versions of POS systems which transmit orders via email. These orders go to certain email addresses. Rules are set in both Exchange and MDaemon to relax/bypass the regular spam/threat scanning for messages intended for these addresses. The premise is that the priority of having these messages delivered trumps the low risk of impact from any email threats that are accepted. This is because the IBM i, where these messages eventually arrive, can't execute these threats anyway, and the i has demonstrated an admirably unwavering patience in dealing with unsolicited spam/bulk email.&lt;br /&gt;
&lt;br /&gt;
[[Category: Microsoft Exchange/365]]&lt;br /&gt;
[[Category: Email]]&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Mail_flow_rules&amp;diff=14026</id>
		<title>Information Systems:Mail flow rules</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Mail_flow_rules&amp;diff=14026"/>
		<updated>2021-07-20T07:29:56Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: Norwinu moved page Information Systems:Mail flow rules to Information Systems:Mail flow: Better title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Information Systems:Mail flow]]&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Mail_flow&amp;diff=14025</id>
		<title>Information Systems:Mail flow</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Mail_flow&amp;diff=14025"/>
		<updated>2021-07-20T07:29:56Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: Norwinu moved page Information Systems:Mail flow rules to Information Systems:Mail flow: Better title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page attempts to discuss mail flow rules and their business impact e.g. their desired function and the rationale behind their implementation.&lt;br /&gt;
&lt;br /&gt;
A mechanism to set up &amp;quot;rules&amp;quot; specifying actions when certain criteria are met (i.e. matching certain message properties) is central to most mail server systems. In MDaemon, this is known as the Content Filter. In Exchange, there is a ''Rules'' section within ''Mail flow''. &lt;br /&gt;
&lt;br /&gt;
==Noteworthy Mail Rules==&lt;br /&gt;
===Substitute Reply-to header for document distribution emails===&lt;br /&gt;
'''Implemented in:''' MDaemon&lt;br /&gt;
&lt;br /&gt;
Document distribution emails describe emails such as remittance advices, A/R statements, invoices (PDF copy), purchase orders etc. These originate from JetForm (ultimately ASW), or custom mailer scripts on Bart, and are therefore sent using their assigned email accounts - unipharm@unipharm.com and uphadmin@unipharm.com. Recipients that reply by (naturally) hitting the reply button and accepting the suggested To address unknowingly send these emails back to these addresses, which are then forwarded to IT and require manual forwarding to get to their &amp;quot;true&amp;quot; intended recipient.&lt;br /&gt;
&lt;br /&gt;
The MDaemon Content Filter rule (many rules, but based on the same template) that pertain to this policy works by looking for properties specific to these emails and then changing the Reply-To header. For example, in A/R statement emails, the subject always contains &amp;quot;AR STATEMENT&amp;quot; and contains a From: header with the value unipharm@unipharm.com. Replies to these emails should always go to accountsreceivable@unipharm.com, and so the rule specifies this as the Reply-To. The rule actually deletes this and 2 other headers as well, as these pertain to replies. For example, the Return-Path header is so that mail servers know where to send bounces in scenarios where the message cannot even be delivered to the intended recipient.&lt;br /&gt;
&lt;br /&gt;
Note that the rules avoid changing the From: header. This should not be modified (i.e. it should remain as unipharm@unipharm.com or uphadmin@unipharm.com), because recipients may have email rules in place to detect this, or more importantly, machine recipients (servers that accept PO emails) may already be set to only accept messages from these addresses. The Reply-To header is more appropriate as it is only implicated when replying to the message.&lt;br /&gt;
&lt;br /&gt;
Proof of the rule taking effect:&lt;br /&gt;
[[File:2021-03-15 12_45_02-Window.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===Include staff in shareholder correspondence===&lt;br /&gt;
'''Implemented in:''' Exchange&lt;br /&gt;
&lt;br /&gt;
When emails are sent to shareholder distribution lists, it is currently a &amp;quot;business rule&amp;quot; to BCC select staff members, with the intent being so that staff remain informed of any mass correspondence in the case they receive calls and questions regarding said correspondence. Rather than implement this business rule by including staff members in the distribution lists themselves (which simply, is bad design), it is more apprporiate to institute a mail flow rule to achieve this same outcome. By doing this, you can also specify the senders to which this rule applies, because some senders that use distribution lists in a more conventional fashion may intend to send only to recipients suggested by the list name (i.e. sending to shareholders should only go to shareholders, because the name of the list is...Shareholders!).&lt;br /&gt;
&lt;br /&gt;
The implementation of this rule is straightforward - if an email is sent to any of the specified lists, then place these users (individual users specified) in the Bcc field.&lt;br /&gt;
&lt;br /&gt;
===Exempt messages to email order catch-all addresses from most scanning===&lt;br /&gt;
'''Implemented in:''' Exchange, MDaemon&lt;br /&gt;
&lt;br /&gt;
There are still numerous shareholder stores (big ones at that) that use POS systems or versions of POS systems which transmit orders via email. These orders go to certain email addresses. Rules are set in both Exchange and MDaemon to relax/bypass the regular spam/threat scanning for messages intended for these addresses. The premise is that the priority of having these messages delivered trumps the low risk of impact from any email threats that are accepted. This is because the IBM i, where these messages eventually arrive, can't execute these threats anyway, and the i has demonstrated an admirably unwavering patience in dealing with unsolicited spam/bulk email.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Email]]&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Microsoft_365_Exchange_Online_-_Setup_and_Configuration&amp;diff=14024</id>
		<title>Information Systems:Microsoft 365 Exchange Online - Setup and Configuration</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Microsoft_365_Exchange_Online_-_Setup_and_Configuration&amp;diff=14024"/>
		<updated>2021-07-20T07:28:10Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: /* Dynamic Distribution List= */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
This wiki page attempts to document and discuss major topics of Exchange setup and configuration. This will be a mix of design/strategy talk and some how-tos for technical administration. Ultimately, another page should be made to adapt the information discussed here into more concise technical instructions for specific administration tasks.&lt;br /&gt;
&lt;br /&gt;
Check [[Information Systems: Exchange and Outlook Administration|this page]] for how-tos. Any instructions below should eventually be migrated to that page as well.&lt;br /&gt;
&lt;br /&gt;
==Mailboxes==&lt;br /&gt;
Users are essentially mailboxes in Exchange i.e. there is no Users section. In Exchange Online, a mailbox shows up when a user is created in 365 Admin Center.&lt;br /&gt;
&lt;br /&gt;
===Shared Mailboxes===&lt;br /&gt;
Like groups/lists, shared mailboxes are communal to a group of users. But unlike groups/lists, they are actual mailboxes that accumulate mail. The company requires a few of these:&lt;br /&gt;
* Accounts Payable: accountspayable@unipharm.com&lt;br /&gt;
* Accounts Receivable: accountsreceivable@unipharm.com&lt;br /&gt;
* EDI Support: edisupport@unipharm.com&lt;br /&gt;
* Customer Service Voicemail: csvm@unipharm.com&lt;br /&gt;
&lt;br /&gt;
====Adding a shared mailbox====&lt;br /&gt;
 Given the limited number of shared mailboxes, and the company's particular use of them as mailbox &amp;quot;identities&amp;quot; rather than a communal email &amp;quot;sink&amp;quot;, it has been decided to add shared mailboxes as separate accounts as opposed to opening them as additional mailboxes.&lt;br /&gt;
&lt;br /&gt;
To add a shared mailbox:&lt;br /&gt;
* Remove any shared mailboxes previously opened as additional mailboxes (and not added as accounts).&lt;br /&gt;
* Perform the steps to add another email account (Office 365).&lt;br /&gt;
* Enter in the shared mailbox email.&lt;br /&gt;
* Instead of entering a password, click ''Sign in as another account''.&lt;br /&gt;
* Enter in the user's credentials. This will only work if the user has Full Access permissions to the shared mailbox (do this in EAC).&lt;br /&gt;
&lt;br /&gt;
====Other methods====&lt;br /&gt;
The other ways of adding shared mailboxes are discussed here just for reference:&lt;br /&gt;
&lt;br /&gt;
'''''Manually opening a shared mailbox'''''&lt;br /&gt;
:* In Outlook 2019, File -&amp;gt; Account Settings -&amp;gt; double-click account -&amp;gt; More Settings -&amp;gt; Advanced&lt;br /&gt;
:* In the Mailboxes section -&amp;gt; Add -&amp;gt; Enter exact Display Name of shared mailbox&lt;br /&gt;
:* Save/Apply&lt;br /&gt;
&lt;br /&gt;
'''''Automapping'''''&lt;br /&gt;
:'''Note: Automapping has been disabled for all shared mailboxes.'''&lt;br /&gt;
&lt;br /&gt;
:* Automapping is a feature that makes the shared mailboxes which a user has access to automatically visible in Outlook i.e. the shared mailboxes are automatically mapped to the user. This is enabled by default. There are implications:&lt;br /&gt;
::* Automapping lumps the data of shared mailboxes in the same OST file as the user's own mailbox. This is one of the reasons there is official documentation on how to disable automapping and [https://docs.microsoft.com/en-us/outlook/troubleshoot/profiles-and-accounts/remove-automapping-for-shared-mailbox how to reset an automapped Outlook configuration]. Considering the company's user base and computer/desktop assignments, this isn't expected to be a problem. But it's something to keep aware of. Imagine a case of 3 users that access 2 shared mailboxes ecah including their own, all logging in to the same computer with a 120GB SSD, with Outlook set to sync all mail. It is feasible for this to grow massively.&lt;br /&gt;
::* Automapping appears to be very finicky when mailbox delegation (permissions) are set to security groups instead of users. Discussion on the internet refers to having to reset permissions.&lt;br /&gt;
&lt;br /&gt;
===Granting a user access to another mailbox===&lt;br /&gt;
The preferred method of granting a user access to another mailbox is to have them access to read (and send from, if necessary) using Outlook for web (OWA). This is especially true when access is only needed on a temporary basis. [[Information Systems:Exchange Online administration with PowerShell|The commands can be found here.]]&lt;br /&gt;
&lt;br /&gt;
==Contacts and Groups==&lt;br /&gt;
===Contacts===&lt;br /&gt;
Contacts (or more accurately, Mail Contacts) in Exchange are analogous to address book entries: they're simply names with email addressses (and other attributes like address and phone numbers). This is in contrast with full Exchange &amp;quot;Users&amp;quot; that have mailboxes. Currently, the primary use of contacts is to maintain distribution lists (we don't maintain a company directory outside CNS, oddly enough). &lt;br /&gt;
&lt;br /&gt;
====Shareholder email addresses====&lt;br /&gt;
In an attempt to maintain clean and consistent entries, several conventions for creating contacts have already been adopted, best depicted in the following example entry for the personal email associated with Marks Marine Pharmacy (the one that would go in the private/sensitive list). The Classic Exchange Admin Center is shown, as it exposes more fields:&lt;br /&gt;
::[[File:2021-03-06 22_15_29-Edit Mail Contact.png|400px|border]]&lt;br /&gt;
&lt;br /&gt;
Recommendations when creating new entries:&lt;br /&gt;
* If this contact/email will be used in private/confidential list only, prefix the Display Name with [Private]. Also, check the 'Hide contacts from the address list'. You may need to do this in Classic EAC.&lt;br /&gt;
* If this contact will be a member of both private and general/publicly-visible distribution lists, do not prefix the name.&lt;br /&gt;
&lt;br /&gt;
===Groups===&lt;br /&gt;
The term &amp;quot;groups&amp;quot; in Exchange can mean 1 of 4 things: Microsoft 365 Groups, Distribution Lists, Dynamic Distribution Lists, and Mail-enabled Security Groups. The first is not used whatsoever.&lt;br /&gt;
====Distribution Lists====&lt;br /&gt;
Distribution Lists are akin to the conventional mailing list, wherein an email sent to the group address is distributed to its members. This group type is used for the shareholder mailing lists (both general and private/confidential lists).&lt;br /&gt;
&lt;br /&gt;
::[[File:2021-03-06 16_53_57-Edit Mail Contact.png|400px|border]]&lt;br /&gt;
* Some groups are meant to be internal (e.g IT group), while others are meant to also be addressable by users outside the organization (e.g. Returns). Check related permissions and set up aliases accordingly. For example, Returns group follows the convention returnsgroup@unpharm.com, but it is logical to have '''returns@unipharm.com''' as an alias, as this is a more common format for a public-facing contact email address (same as customerservice@unipharm.com).&lt;br /&gt;
::[[File:2021-03-06 14_58_33-Exchange admin center.png|200px|border]]&lt;br /&gt;
====Mail-enabled Security Groups====&lt;br /&gt;
This type of group is appropriate for the departments, as the group can be used to send to its members as well as for permissions (hence, &amp;quot;mail-enabled security group&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
* The email address convention for department groups (and most other groups) is '''''department'''''group@unipharm.com.&lt;br /&gt;
* The following is an example of a configured group. The manager has been specified as a group owner (in addition to IT) to enable self-management.&lt;br /&gt;
::[[File:2021-03-06 14_41_32-Exchange admin center.png|300px|border]]&lt;br /&gt;
&lt;br /&gt;
====Microsoft 365 groups====&lt;br /&gt;
This type of group has additional functionality to enable better collaboration for the group's members. The company currently does not collaborate in such a fashion for these to be useful (e.g. no Sharepoint, no Teams, no shared folders on cloud storage).&lt;br /&gt;
&lt;br /&gt;
====Dynamic Distribution List====&lt;br /&gt;
This is a good concept on paper as it allows distribution list membership to be dynamic based on attributes e.g. a Customer Service list could be set up to include any users with the &amp;quot;Department&amp;quot; user property set to &amp;quot;Customer Service&amp;quot;. However, it was tested to have one major showstopping limitation - it is very inconvenient viewing current members of a DDL (i.e. has to be in PowerShell, and even then, it requires list iteration and filtering). Not being able to see the recipients severely limits its usefulness, and therefore, setting up the departments as dynamic lists was forgone as an endeavor to keep things simple.&lt;br /&gt;
&lt;br /&gt;
====Nested groups====&lt;br /&gt;
'''A word of caution regarding nested groups.'''&lt;br /&gt;
&lt;br /&gt;
Nesting groups within other groups generally leads to better-structured and therefore easier to manage permissions. This is especially true with Microsoft AD, where object hierarchy and the concept of RBAC are predominant (a user can be assigned one or more roles, which grants them the specific set of permissions associated with those roles). However, issues have been encountered with group nesting during setup, primarily related to &amp;quot;trying to get too fancy&amp;quot;. The ultimate goal was to have permissions and group membership dynamically assigned based on attribute e.g. the user's department. This was found to not even be remotely achievable in Exchange. These general rules of thumb have been surmised from experimentation with group nesting:&lt;br /&gt;
&lt;br /&gt;
* Nesting like group types appears to work. Distribution lists groups are ok to nest within other distribution list groups. The same goes for mail security groups.&lt;br /&gt;
* Nesting security groups can lead to some quirks, but is still recommended. For example, nested security groups seems to break shared mailbox automapping and ownership.&lt;br /&gt;
* Distribution list groups should not be nested within security groups (see point #1).&lt;br /&gt;
&lt;br /&gt;
TL;DR - exercise caution when using group nesting, and assign permissions to users as a fallback (troubleshoot later).&lt;br /&gt;
&lt;br /&gt;
==Address Book==&lt;br /&gt;
With Exchange address books, there exists two types of implementations: out-of-the-box or address book policies. This fork on the road comes early; either accept the out of the box functionality and do nothing else, or enter the world of address book policy routing and accept the more complex management. This of course depends on the needs of the company, and we needed and decided on the latter. This path also requires PowerShell (no options or visibility exists in EAC, besides the ability to assign an existing policy (created with PowerShell) to a user).&lt;br /&gt;
&lt;br /&gt;
===Address book policies===&lt;br /&gt;
An address book policy allows you to customize what a user sees, from the sublists, to the contacts viewable in those sublists. For example, the default address book policy has the following address lists: All Groups, All Users, All Distribution Lists etc. It is both unintuitive if you are not fully invested in the Microsoft way. For example, we don't use Microsoft groups, so All Groups is empty, and what we know as groups are actually, Distribution Lists. All Users, on the other hand, contains staff, but also shared mailboxes and resources (Projector, iPad), but not rooms. To make even one customization to all of this, ABPs are needed. &lt;br /&gt;
&lt;br /&gt;
* ABP routing is an Exchange flag that has been enabled for our domain.&lt;br /&gt;
* An address book policy specifies the following:&lt;br /&gt;
: * 1 x '''Global Address List (GAL)''' - contains all objects (mailboxes, contacts, rooms etc.) that a user is able to &amp;quot;see&amp;quot;. An ABP is linked to 1 GAL and therefore a user can only see 1 GAL.&lt;br /&gt;
: * 1 x '''Offline Address Book (OAB)''' - specifies one or more address lists to download/cache. To make it more confusing, the Offline Address Book behaves more like an address list.&lt;br /&gt;
: * 1 x '''Room Address List'''&lt;br /&gt;
: * 1 or more custom (or built-in) '''Address Lists''' - Address Lists are groupings that are subsetted from the GAL. For example, the built-in All Rooms address list filters for GAL objects where the ObjectType is RoomMailbox (not quite, but something to that effect).&lt;br /&gt;
&lt;br /&gt;
Again, all these are created/set in PowerShell.&lt;br /&gt;
&lt;br /&gt;
====Current address book policies====&lt;br /&gt;
There are two ABPs (default still exists but is not meant to be used).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Address Book Policy !! Global Address List !! Offline Address Book -&amp;gt; Offline Address List !! Room List !! Address Lists !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Staff Address Book Policy || Staff Global Address List || Staff Offline Address Book -&amp;gt; Offline Address List (Staff) || Rooms and Resources || Company Contacts, Distribution Lists, Staff, Public Folders || Should be the default assigned to staff members.&lt;br /&gt;
|-&lt;br /&gt;
| Executive Address Book Policy || Executive Global Address List || Executive Offline Address Book -&amp;gt; Offline Address List (Executive) || Rooms and Resources || Company Contacts, Company Contacts (Executive), Distribution Lists, Distribution Lists (Executive), Staff, Public Folders || Can see what staff see, and the private lists/contacts.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
''Congrats if you're still following at this point.''&lt;br /&gt;
&lt;br /&gt;
====Address Lists and Filtering====&lt;br /&gt;
The usefuleness of address book policies lies in filtering (inclusion filtering), which is used to produce address lists. This is a big topic and is mostly PowerShell talk. Therefore, this is left for official technical docs, but provided are two examples to try and explain the concept:&lt;br /&gt;
* The address list '''Distribution Lists (Executive)''' specifies a filter that translates to: &lt;br /&gt;
:Include only objects where:&lt;br /&gt;
::* ObjectClass equals 'group'&lt;br /&gt;
::* DisplayName is like '*(Private)'&lt;br /&gt;
* The address list '''Staff''' specifies a filter that translates to:&lt;br /&gt;
::Include only objects where:&lt;br /&gt;
::* ObjectCategory equals 'person' AND 'user'&lt;br /&gt;
::* RecipientType does not equal 'RoomMailbox'&lt;br /&gt;
::* RecipientType does not equal 'EquipmentMailbox'&lt;br /&gt;
&lt;br /&gt;
''These are not the exact filters used, they're meant to explain the concept only.''&lt;br /&gt;
&lt;br /&gt;
====Relationship between contact management and ABPs====&lt;br /&gt;
It should be noted that contacts, groups, and group membership are not affected by address book policies. ABPs only affect what a user sees in the address book. A not-good analogy: you can take out pages of a phone directory and group them differently or put stickers over some entries so they're not visible (ABPs), but you don't change what's printed in the directory (that's contact management).&lt;br /&gt;
&lt;br /&gt;
==Mail flow and mail rules==&lt;br /&gt;
===Connectors===&lt;br /&gt;
Because mail hosting for unipharm.com is spread over 2 servers, configuring Exchange &amp;quot;connectors&amp;quot; is necessary to properly route mail to and from MDaemon (the on-prem mail server). This is a complex topic and should be described on another page.&lt;br /&gt;
&lt;br /&gt;
==Email security==&lt;br /&gt;
Email security is handled by Exchange Online Protection, a feature that comes with all Exchange Online / 365 accounts. It &amp;quot;sits&amp;quot; before the mail routing/delivery process - for both inbound and outbound mail flows - and checks messages for threats and spam. The policies determine what gets detected as spam/threats and the outcome of those messages. Depending on if the new or classic admin portal is being used, there are various areas to configure or tweak these policies:&lt;br /&gt;
:* In Classic Admin Center, these policies are found in the '''protection''' section.&lt;br /&gt;
:* In New Admin Center, these policies are found in a separate '''Security and Compliance''' Admin Center altogether, under '''Threat management'''.&lt;br /&gt;
&lt;br /&gt;
===Malware policies===&lt;br /&gt;
* Email servers do a fairly good job detecting and blocking viruses in emails, silently. As an organization, we also don't deal with attachment types (.exe, audio/video containers etc.) that are normally flagged as viruses. Therefore, these policies have not been changed from the defaults. &lt;br /&gt;
&lt;br /&gt;
===Spam policies===&lt;br /&gt;
* Unlike spam-handling pre-Exchange that involved a user quarantine, the current spam policy is set to direct spam to a user's junk folder.&lt;br /&gt;
:[[File:2021-03-30 15_50_03-edit spam filter policy.png|400px]]&lt;br /&gt;
&lt;br /&gt;
====Spam scoring====&lt;br /&gt;
There are two scores related to spam-handling: SCL (Spam Confidence Level), and BCL (Bulk Complaint Level). The Bulk Complaint Level threshold can be set, but the SCL appears to be set (at least for Exchange Online). These values are 5 (spam) and 9 (high-confidence spam), according to [https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/spam-confidence-levels?view=o365-worldwide the docs]&lt;br /&gt;
&lt;br /&gt;
Note: These scores are present in the message headers, and have been validated to make it all the way to MDaemon (in messages destined for non-Exchange mailboxes). Therefore, we could potentially capitalize on the spam and bulk scoring done by EOP by having MDaemon recognize and act on these headers.&lt;br /&gt;
&lt;br /&gt;
===Phishing===&lt;br /&gt;
Phishing remains the greatest threat when it comes to email security. Without Advanced Threat Prection (additional cost on top of EOP), we rely on reputation-based and heuristic-based detection mechanisms of the email security service (EOP) to flag emails that contain phishing content. Barracuda did a fantastic job (very low penetration from empirical evidence). It remains to be seen how EOP handles these types of &amp;quot;attacks&amp;quot; (they come in waves).&lt;br /&gt;
&lt;br /&gt;
==Security/AAA==&lt;br /&gt;
===Custom Admin Roles===&lt;br /&gt;
Exchange allows for the creation of custom admin roles that have a specific combination of permissions. For example, the Company Directory Management role was created to allow users to manage the address book:&lt;br /&gt;
::[[File:2021-03-23 11_58_18-Exchange admin center.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===Password policies===&lt;br /&gt;
* Password expiry has been disabled in 365 from the 90-day default:&lt;br /&gt;
::[[File:2021-03-23 12_14_04-Microsoft 365 admin center.png|border|400px]]&lt;br /&gt;
* Self-service password resets have been enabled in Azure AD. Users will be notified when they reset their passwords:&lt;br /&gt;
::[[File:2021-03-23 12_21_01-Password reset - Azure Active Directory admin center.png|400px|border]][[File:2021-03-23 12_23_00-Password reset - Azure Active Directory admin center.png|400px|border]]&lt;br /&gt;
* (Update this section with info on password management strategy when it gets discussed)&lt;br /&gt;
&lt;br /&gt;
==DNS==&lt;br /&gt;
===MX settings===&lt;br /&gt;
The MX record for our common domains point to Exchange. We do not have a round-robin or fallback configuration. Mail routing between Exchange and MDaemon is done through connectors and smart-host configuration.&lt;br /&gt;
&lt;br /&gt;
===SPF record===&lt;br /&gt;
SPF was implemented as part of the Exchange project. [https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/set-up-spf-in-office-365-to-help-prevent-spoofing?view=o365-worldwide This article] summarizes how SPF works and is configured for Exchange.&lt;br /&gt;
&lt;br /&gt;
A web tool like MXToolbox can be used to verify the SPF record after changes are made:&lt;br /&gt;
::[[File:mtoolboxupipharmspf.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Other Notes==&lt;br /&gt;
* Microsoft is currently transitioning from what they're now terming Classic Exchange admin center to the New Exchange admin center. Some options remain editable only in the old portal.&lt;br /&gt;
&lt;br /&gt;
[[Category: Microsoft Exchange/365]]&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Microsoft_365_Exchange_Online_-_Setup_and_Configuration&amp;diff=14023</id>
		<title>Information Systems:Microsoft 365 Exchange Online - Setup and Configuration</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Microsoft_365_Exchange_Online_-_Setup_and_Configuration&amp;diff=14023"/>
		<updated>2021-07-20T07:27:44Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: /* Contacts and Groups */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
This wiki page attempts to document and discuss major topics of Exchange setup and configuration. This will be a mix of design/strategy talk and some how-tos for technical administration. Ultimately, another page should be made to adapt the information discussed here into more concise technical instructions for specific administration tasks.&lt;br /&gt;
&lt;br /&gt;
Check [[Information Systems: Exchange and Outlook Administration|this page]] for how-tos. Any instructions below should eventually be migrated to that page as well.&lt;br /&gt;
&lt;br /&gt;
==Mailboxes==&lt;br /&gt;
Users are essentially mailboxes in Exchange i.e. there is no Users section. In Exchange Online, a mailbox shows up when a user is created in 365 Admin Center.&lt;br /&gt;
&lt;br /&gt;
===Shared Mailboxes===&lt;br /&gt;
Like groups/lists, shared mailboxes are communal to a group of users. But unlike groups/lists, they are actual mailboxes that accumulate mail. The company requires a few of these:&lt;br /&gt;
* Accounts Payable: accountspayable@unipharm.com&lt;br /&gt;
* Accounts Receivable: accountsreceivable@unipharm.com&lt;br /&gt;
* EDI Support: edisupport@unipharm.com&lt;br /&gt;
* Customer Service Voicemail: csvm@unipharm.com&lt;br /&gt;
&lt;br /&gt;
====Adding a shared mailbox====&lt;br /&gt;
 Given the limited number of shared mailboxes, and the company's particular use of them as mailbox &amp;quot;identities&amp;quot; rather than a communal email &amp;quot;sink&amp;quot;, it has been decided to add shared mailboxes as separate accounts as opposed to opening them as additional mailboxes.&lt;br /&gt;
&lt;br /&gt;
To add a shared mailbox:&lt;br /&gt;
* Remove any shared mailboxes previously opened as additional mailboxes (and not added as accounts).&lt;br /&gt;
* Perform the steps to add another email account (Office 365).&lt;br /&gt;
* Enter in the shared mailbox email.&lt;br /&gt;
* Instead of entering a password, click ''Sign in as another account''.&lt;br /&gt;
* Enter in the user's credentials. This will only work if the user has Full Access permissions to the shared mailbox (do this in EAC).&lt;br /&gt;
&lt;br /&gt;
====Other methods====&lt;br /&gt;
The other ways of adding shared mailboxes are discussed here just for reference:&lt;br /&gt;
&lt;br /&gt;
'''''Manually opening a shared mailbox'''''&lt;br /&gt;
:* In Outlook 2019, File -&amp;gt; Account Settings -&amp;gt; double-click account -&amp;gt; More Settings -&amp;gt; Advanced&lt;br /&gt;
:* In the Mailboxes section -&amp;gt; Add -&amp;gt; Enter exact Display Name of shared mailbox&lt;br /&gt;
:* Save/Apply&lt;br /&gt;
&lt;br /&gt;
'''''Automapping'''''&lt;br /&gt;
:'''Note: Automapping has been disabled for all shared mailboxes.'''&lt;br /&gt;
&lt;br /&gt;
:* Automapping is a feature that makes the shared mailboxes which a user has access to automatically visible in Outlook i.e. the shared mailboxes are automatically mapped to the user. This is enabled by default. There are implications:&lt;br /&gt;
::* Automapping lumps the data of shared mailboxes in the same OST file as the user's own mailbox. This is one of the reasons there is official documentation on how to disable automapping and [https://docs.microsoft.com/en-us/outlook/troubleshoot/profiles-and-accounts/remove-automapping-for-shared-mailbox how to reset an automapped Outlook configuration]. Considering the company's user base and computer/desktop assignments, this isn't expected to be a problem. But it's something to keep aware of. Imagine a case of 3 users that access 2 shared mailboxes ecah including their own, all logging in to the same computer with a 120GB SSD, with Outlook set to sync all mail. It is feasible for this to grow massively.&lt;br /&gt;
::* Automapping appears to be very finicky when mailbox delegation (permissions) are set to security groups instead of users. Discussion on the internet refers to having to reset permissions.&lt;br /&gt;
&lt;br /&gt;
===Granting a user access to another mailbox===&lt;br /&gt;
The preferred method of granting a user access to another mailbox is to have them access to read (and send from, if necessary) using Outlook for web (OWA). This is especially true when access is only needed on a temporary basis. [[Information Systems:Exchange Online administration with PowerShell|The commands can be found here.]]&lt;br /&gt;
&lt;br /&gt;
==Contacts and Groups==&lt;br /&gt;
===Contacts===&lt;br /&gt;
Contacts (or more accurately, Mail Contacts) in Exchange are analogous to address book entries: they're simply names with email addressses (and other attributes like address and phone numbers). This is in contrast with full Exchange &amp;quot;Users&amp;quot; that have mailboxes. Currently, the primary use of contacts is to maintain distribution lists (we don't maintain a company directory outside CNS, oddly enough). &lt;br /&gt;
&lt;br /&gt;
====Shareholder email addresses====&lt;br /&gt;
In an attempt to maintain clean and consistent entries, several conventions for creating contacts have already been adopted, best depicted in the following example entry for the personal email associated with Marks Marine Pharmacy (the one that would go in the private/sensitive list). The Classic Exchange Admin Center is shown, as it exposes more fields:&lt;br /&gt;
::[[File:2021-03-06 22_15_29-Edit Mail Contact.png|400px|border]]&lt;br /&gt;
&lt;br /&gt;
Recommendations when creating new entries:&lt;br /&gt;
* If this contact/email will be used in private/confidential list only, prefix the Display Name with [Private]. Also, check the 'Hide contacts from the address list'. You may need to do this in Classic EAC.&lt;br /&gt;
* If this contact will be a member of both private and general/publicly-visible distribution lists, do not prefix the name.&lt;br /&gt;
&lt;br /&gt;
===Groups===&lt;br /&gt;
The term &amp;quot;groups&amp;quot; in Exchange can mean 1 of 4 things: Microsoft 365 Groups, Distribution Lists, Dynamic Distribution Lists, and Mail-enabled Security Groups. The first is not used whatsoever.&lt;br /&gt;
====Distribution Lists====&lt;br /&gt;
Distribution Lists are akin to the conventional mailing list, wherein an email sent to the group address is distributed to its members. This group type is used for the shareholder mailing lists (both general and private/confidential lists).&lt;br /&gt;
&lt;br /&gt;
::[[File:2021-03-06 16_53_57-Edit Mail Contact.png|400px|border]]&lt;br /&gt;
* Some groups are meant to be internal (e.g IT group), while others are meant to also be addressable by users outside the organization (e.g. Returns). Check related permissions and set up aliases accordingly. For example, Returns group follows the convention returnsgroup@unpharm.com, but it is logical to have '''returns@unipharm.com''' as an alias, as this is a more common format for a public-facing contact email address (same as customerservice@unipharm.com).&lt;br /&gt;
::[[File:2021-03-06 14_58_33-Exchange admin center.png|200px|border]]&lt;br /&gt;
====Mail-enabled Security Groups====&lt;br /&gt;
This type of group is appropriate for the departments, as the group can be used to send to its members as well as for permissions (hence, &amp;quot;mail-enabled security group&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
* The email address convention for department groups (and most other groups) is '''''department'''''group@unipharm.com.&lt;br /&gt;
* The following is an example of a configured group. The manager has been specified as a group owner (in addition to IT) to enable self-management.&lt;br /&gt;
::[[File:2021-03-06 14_41_32-Exchange admin center.png|300px|border]]&lt;br /&gt;
&lt;br /&gt;
====Microsoft 365 groups====&lt;br /&gt;
This type of group has additional functionality to enable better collaboration for the group's members. The company currently does not collaborate in such a fashion for these to be useful (e.g. no Sharepoint, no Teams, no shared folders on cloud storage).&lt;br /&gt;
&lt;br /&gt;
====Dynamic Distribution List=====&lt;br /&gt;
This is a good concept on paper as it allows distribution list membership to be dynamic based on attributes e.g. a Customer Service list could be set up to include any users with the &amp;quot;Department&amp;quot; user property set to &amp;quot;Customer Service&amp;quot;. However, it was tested to have one major showstopping limitation - it is very inconvenient viewing current members of a DDL (i.e. has to be in PowerShell, and even then, it requires list iteration and filtering). Not being able to see the recipients severely limits its usefulness, and therefore, setting up the departments as dynamic lists was forgone as an endeavor to keep things simple.&lt;br /&gt;
&lt;br /&gt;
====Nested groups====&lt;br /&gt;
'''A word of caution regarding nested groups.'''&lt;br /&gt;
&lt;br /&gt;
Nesting groups within other groups generally leads to better-structured and therefore easier to manage permissions. This is especially true with Microsoft AD, where object hierarchy and the concept of RBAC are predominant (a user can be assigned one or more roles, which grants them the specific set of permissions associated with those roles). However, issues have been encountered with group nesting during setup, primarily related to &amp;quot;trying to get too fancy&amp;quot;. The ultimate goal was to have permissions and group membership dynamically assigned based on attribute e.g. the user's department. This was found to not even be remotely achievable in Exchange. These general rules of thumb have been surmised from experimentation with group nesting:&lt;br /&gt;
&lt;br /&gt;
* Nesting like group types appears to work. Distribution lists groups are ok to nest within other distribution list groups. The same goes for mail security groups.&lt;br /&gt;
* Nesting security groups can lead to some quirks, but is still recommended. For example, nested security groups seems to break shared mailbox automapping and ownership.&lt;br /&gt;
* Distribution list groups should not be nested within security groups (see point #1).&lt;br /&gt;
&lt;br /&gt;
TL;DR - exercise caution when using group nesting, and assign permissions to users as a fallback (troubleshoot later).&lt;br /&gt;
&lt;br /&gt;
==Address Book==&lt;br /&gt;
With Exchange address books, there exists two types of implementations: out-of-the-box or address book policies. This fork on the road comes early; either accept the out of the box functionality and do nothing else, or enter the world of address book policy routing and accept the more complex management. This of course depends on the needs of the company, and we needed and decided on the latter. This path also requires PowerShell (no options or visibility exists in EAC, besides the ability to assign an existing policy (created with PowerShell) to a user).&lt;br /&gt;
&lt;br /&gt;
===Address book policies===&lt;br /&gt;
An address book policy allows you to customize what a user sees, from the sublists, to the contacts viewable in those sublists. For example, the default address book policy has the following address lists: All Groups, All Users, All Distribution Lists etc. It is both unintuitive if you are not fully invested in the Microsoft way. For example, we don't use Microsoft groups, so All Groups is empty, and what we know as groups are actually, Distribution Lists. All Users, on the other hand, contains staff, but also shared mailboxes and resources (Projector, iPad), but not rooms. To make even one customization to all of this, ABPs are needed. &lt;br /&gt;
&lt;br /&gt;
* ABP routing is an Exchange flag that has been enabled for our domain.&lt;br /&gt;
* An address book policy specifies the following:&lt;br /&gt;
: * 1 x '''Global Address List (GAL)''' - contains all objects (mailboxes, contacts, rooms etc.) that a user is able to &amp;quot;see&amp;quot;. An ABP is linked to 1 GAL and therefore a user can only see 1 GAL.&lt;br /&gt;
: * 1 x '''Offline Address Book (OAB)''' - specifies one or more address lists to download/cache. To make it more confusing, the Offline Address Book behaves more like an address list.&lt;br /&gt;
: * 1 x '''Room Address List'''&lt;br /&gt;
: * 1 or more custom (or built-in) '''Address Lists''' - Address Lists are groupings that are subsetted from the GAL. For example, the built-in All Rooms address list filters for GAL objects where the ObjectType is RoomMailbox (not quite, but something to that effect).&lt;br /&gt;
&lt;br /&gt;
Again, all these are created/set in PowerShell.&lt;br /&gt;
&lt;br /&gt;
====Current address book policies====&lt;br /&gt;
There are two ABPs (default still exists but is not meant to be used).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Address Book Policy !! Global Address List !! Offline Address Book -&amp;gt; Offline Address List !! Room List !! Address Lists !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Staff Address Book Policy || Staff Global Address List || Staff Offline Address Book -&amp;gt; Offline Address List (Staff) || Rooms and Resources || Company Contacts, Distribution Lists, Staff, Public Folders || Should be the default assigned to staff members.&lt;br /&gt;
|-&lt;br /&gt;
| Executive Address Book Policy || Executive Global Address List || Executive Offline Address Book -&amp;gt; Offline Address List (Executive) || Rooms and Resources || Company Contacts, Company Contacts (Executive), Distribution Lists, Distribution Lists (Executive), Staff, Public Folders || Can see what staff see, and the private lists/contacts.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
''Congrats if you're still following at this point.''&lt;br /&gt;
&lt;br /&gt;
====Address Lists and Filtering====&lt;br /&gt;
The usefuleness of address book policies lies in filtering (inclusion filtering), which is used to produce address lists. This is a big topic and is mostly PowerShell talk. Therefore, this is left for official technical docs, but provided are two examples to try and explain the concept:&lt;br /&gt;
* The address list '''Distribution Lists (Executive)''' specifies a filter that translates to: &lt;br /&gt;
:Include only objects where:&lt;br /&gt;
::* ObjectClass equals 'group'&lt;br /&gt;
::* DisplayName is like '*(Private)'&lt;br /&gt;
* The address list '''Staff''' specifies a filter that translates to:&lt;br /&gt;
::Include only objects where:&lt;br /&gt;
::* ObjectCategory equals 'person' AND 'user'&lt;br /&gt;
::* RecipientType does not equal 'RoomMailbox'&lt;br /&gt;
::* RecipientType does not equal 'EquipmentMailbox'&lt;br /&gt;
&lt;br /&gt;
''These are not the exact filters used, they're meant to explain the concept only.''&lt;br /&gt;
&lt;br /&gt;
====Relationship between contact management and ABPs====&lt;br /&gt;
It should be noted that contacts, groups, and group membership are not affected by address book policies. ABPs only affect what a user sees in the address book. A not-good analogy: you can take out pages of a phone directory and group them differently or put stickers over some entries so they're not visible (ABPs), but you don't change what's printed in the directory (that's contact management).&lt;br /&gt;
&lt;br /&gt;
==Mail flow and mail rules==&lt;br /&gt;
===Connectors===&lt;br /&gt;
Because mail hosting for unipharm.com is spread over 2 servers, configuring Exchange &amp;quot;connectors&amp;quot; is necessary to properly route mail to and from MDaemon (the on-prem mail server). This is a complex topic and should be described on another page.&lt;br /&gt;
&lt;br /&gt;
==Email security==&lt;br /&gt;
Email security is handled by Exchange Online Protection, a feature that comes with all Exchange Online / 365 accounts. It &amp;quot;sits&amp;quot; before the mail routing/delivery process - for both inbound and outbound mail flows - and checks messages for threats and spam. The policies determine what gets detected as spam/threats and the outcome of those messages. Depending on if the new or classic admin portal is being used, there are various areas to configure or tweak these policies:&lt;br /&gt;
:* In Classic Admin Center, these policies are found in the '''protection''' section.&lt;br /&gt;
:* In New Admin Center, these policies are found in a separate '''Security and Compliance''' Admin Center altogether, under '''Threat management'''.&lt;br /&gt;
&lt;br /&gt;
===Malware policies===&lt;br /&gt;
* Email servers do a fairly good job detecting and blocking viruses in emails, silently. As an organization, we also don't deal with attachment types (.exe, audio/video containers etc.) that are normally flagged as viruses. Therefore, these policies have not been changed from the defaults. &lt;br /&gt;
&lt;br /&gt;
===Spam policies===&lt;br /&gt;
* Unlike spam-handling pre-Exchange that involved a user quarantine, the current spam policy is set to direct spam to a user's junk folder.&lt;br /&gt;
:[[File:2021-03-30 15_50_03-edit spam filter policy.png|400px]]&lt;br /&gt;
&lt;br /&gt;
====Spam scoring====&lt;br /&gt;
There are two scores related to spam-handling: SCL (Spam Confidence Level), and BCL (Bulk Complaint Level). The Bulk Complaint Level threshold can be set, but the SCL appears to be set (at least for Exchange Online). These values are 5 (spam) and 9 (high-confidence spam), according to [https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/spam-confidence-levels?view=o365-worldwide the docs]&lt;br /&gt;
&lt;br /&gt;
Note: These scores are present in the message headers, and have been validated to make it all the way to MDaemon (in messages destined for non-Exchange mailboxes). Therefore, we could potentially capitalize on the spam and bulk scoring done by EOP by having MDaemon recognize and act on these headers.&lt;br /&gt;
&lt;br /&gt;
===Phishing===&lt;br /&gt;
Phishing remains the greatest threat when it comes to email security. Without Advanced Threat Prection (additional cost on top of EOP), we rely on reputation-based and heuristic-based detection mechanisms of the email security service (EOP) to flag emails that contain phishing content. Barracuda did a fantastic job (very low penetration from empirical evidence). It remains to be seen how EOP handles these types of &amp;quot;attacks&amp;quot; (they come in waves).&lt;br /&gt;
&lt;br /&gt;
==Security/AAA==&lt;br /&gt;
===Custom Admin Roles===&lt;br /&gt;
Exchange allows for the creation of custom admin roles that have a specific combination of permissions. For example, the Company Directory Management role was created to allow users to manage the address book:&lt;br /&gt;
::[[File:2021-03-23 11_58_18-Exchange admin center.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===Password policies===&lt;br /&gt;
* Password expiry has been disabled in 365 from the 90-day default:&lt;br /&gt;
::[[File:2021-03-23 12_14_04-Microsoft 365 admin center.png|border|400px]]&lt;br /&gt;
* Self-service password resets have been enabled in Azure AD. Users will be notified when they reset their passwords:&lt;br /&gt;
::[[File:2021-03-23 12_21_01-Password reset - Azure Active Directory admin center.png|400px|border]][[File:2021-03-23 12_23_00-Password reset - Azure Active Directory admin center.png|400px|border]]&lt;br /&gt;
* (Update this section with info on password management strategy when it gets discussed)&lt;br /&gt;
&lt;br /&gt;
==DNS==&lt;br /&gt;
===MX settings===&lt;br /&gt;
The MX record for our common domains point to Exchange. We do not have a round-robin or fallback configuration. Mail routing between Exchange and MDaemon is done through connectors and smart-host configuration.&lt;br /&gt;
&lt;br /&gt;
===SPF record===&lt;br /&gt;
SPF was implemented as part of the Exchange project. [https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/set-up-spf-in-office-365-to-help-prevent-spoofing?view=o365-worldwide This article] summarizes how SPF works and is configured for Exchange.&lt;br /&gt;
&lt;br /&gt;
A web tool like MXToolbox can be used to verify the SPF record after changes are made:&lt;br /&gt;
::[[File:mtoolboxupipharmspf.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Other Notes==&lt;br /&gt;
* Microsoft is currently transitioning from what they're now terming Classic Exchange admin center to the New Exchange admin center. Some options remain editable only in the old portal.&lt;br /&gt;
&lt;br /&gt;
[[Category: Microsoft Exchange/365]]&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Microsoft_365_Exchange_Online_-_Setup_and_Configuration&amp;diff=14022</id>
		<title>Information Systems:Microsoft 365 Exchange Online - Setup and Configuration</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Microsoft_365_Exchange_Online_-_Setup_and_Configuration&amp;diff=14022"/>
		<updated>2021-07-20T07:27:05Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: Clarify, optimize info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
This wiki page attempts to document and discuss major topics of Exchange setup and configuration. This will be a mix of design/strategy talk and some how-tos for technical administration. Ultimately, another page should be made to adapt the information discussed here into more concise technical instructions for specific administration tasks.&lt;br /&gt;
&lt;br /&gt;
Check [[Information Systems: Exchange and Outlook Administration|this page]] for how-tos. Any instructions below should eventually be migrated to that page as well.&lt;br /&gt;
&lt;br /&gt;
==Mailboxes==&lt;br /&gt;
Users are essentially mailboxes in Exchange i.e. there is no Users section. In Exchange Online, a mailbox shows up when a user is created in 365 Admin Center.&lt;br /&gt;
&lt;br /&gt;
===Shared Mailboxes===&lt;br /&gt;
Like groups/lists, shared mailboxes are communal to a group of users. But unlike groups/lists, they are actual mailboxes that accumulate mail. The company requires a few of these:&lt;br /&gt;
* Accounts Payable: accountspayable@unipharm.com&lt;br /&gt;
* Accounts Receivable: accountsreceivable@unipharm.com&lt;br /&gt;
* EDI Support: edisupport@unipharm.com&lt;br /&gt;
* Customer Service Voicemail: csvm@unipharm.com&lt;br /&gt;
&lt;br /&gt;
====Adding a shared mailbox====&lt;br /&gt;
 Given the limited number of shared mailboxes, and the company's particular use of them as mailbox &amp;quot;identities&amp;quot; rather than a communal email &amp;quot;sink&amp;quot;, it has been decided to add shared mailboxes as separate accounts as opposed to opening them as additional mailboxes.&lt;br /&gt;
&lt;br /&gt;
To add a shared mailbox:&lt;br /&gt;
* Remove any shared mailboxes previously opened as additional mailboxes (and not added as accounts).&lt;br /&gt;
* Perform the steps to add another email account (Office 365).&lt;br /&gt;
* Enter in the shared mailbox email.&lt;br /&gt;
* Instead of entering a password, click ''Sign in as another account''.&lt;br /&gt;
* Enter in the user's credentials. This will only work if the user has Full Access permissions to the shared mailbox (do this in EAC).&lt;br /&gt;
&lt;br /&gt;
====Other methods====&lt;br /&gt;
The other ways of adding shared mailboxes are discussed here just for reference:&lt;br /&gt;
&lt;br /&gt;
'''''Manually opening a shared mailbox'''''&lt;br /&gt;
:* In Outlook 2019, File -&amp;gt; Account Settings -&amp;gt; double-click account -&amp;gt; More Settings -&amp;gt; Advanced&lt;br /&gt;
:* In the Mailboxes section -&amp;gt; Add -&amp;gt; Enter exact Display Name of shared mailbox&lt;br /&gt;
:* Save/Apply&lt;br /&gt;
&lt;br /&gt;
'''''Automapping'''''&lt;br /&gt;
:'''Note: Automapping has been disabled for all shared mailboxes.'''&lt;br /&gt;
&lt;br /&gt;
:* Automapping is a feature that makes the shared mailboxes which a user has access to automatically visible in Outlook i.e. the shared mailboxes are automatically mapped to the user. This is enabled by default. There are implications:&lt;br /&gt;
::* Automapping lumps the data of shared mailboxes in the same OST file as the user's own mailbox. This is one of the reasons there is official documentation on how to disable automapping and [https://docs.microsoft.com/en-us/outlook/troubleshoot/profiles-and-accounts/remove-automapping-for-shared-mailbox how to reset an automapped Outlook configuration]. Considering the company's user base and computer/desktop assignments, this isn't expected to be a problem. But it's something to keep aware of. Imagine a case of 3 users that access 2 shared mailboxes ecah including their own, all logging in to the same computer with a 120GB SSD, with Outlook set to sync all mail. It is feasible for this to grow massively.&lt;br /&gt;
::* Automapping appears to be very finicky when mailbox delegation (permissions) are set to security groups instead of users. Discussion on the internet refers to having to reset permissions.&lt;br /&gt;
&lt;br /&gt;
===Granting a user access to another mailbox===&lt;br /&gt;
The preferred method of granting a user access to another mailbox is to have them access to read (and send from, if necessary) using Outlook for web (OWA). This is especially true when access is only needed on a temporary basis. [[Information Systems:Exchange Online administration with PowerShell|The commands can be found here.]]&lt;br /&gt;
&lt;br /&gt;
==Contacts and Groups==&lt;br /&gt;
===Contacts===&lt;br /&gt;
Contacts (or more accurately, Mail Contacts) in Exchange are analogous to address book entries: they're simply names with email addressses (and other attributes like address and phone numbers). This is in contrast with full Exchange &amp;quot;Users&amp;quot; that have mailboxes. Currently, the primary use of contacts is to maintain distribution lists (we don't maintain a company directory outside CNS, oddly enough). &lt;br /&gt;
&lt;br /&gt;
====Shareholder email addresses====&lt;br /&gt;
In an attempt to maintain clean and consistent entries, several conventions for creating contacts have already been adopted, best depicted in the following example entry for the personal email associated with Marks Marine Pharmacy (the one that would go in the private/sensitive list). The Classic Exchange Admin Center is shown, as it exposes more fields:&lt;br /&gt;
::[[File:2021-03-06 22_15_29-Edit Mail Contact.png|400px|border]]&lt;br /&gt;
&lt;br /&gt;
Recommendations when creating new entries:&lt;br /&gt;
* If this contact/email will be used in private/confidential list only, prefix the Display Name with [Private]. Also, check the 'Hide contacts from the address list'. You may need to do this in Classic EAC.&lt;br /&gt;
* If this contact will be a member of both private and general/publicly-visible distribution lists, do not prefix the name.&lt;br /&gt;
&lt;br /&gt;
===Groups===&lt;br /&gt;
The term &amp;quot;groups&amp;quot; in Exchange can mean 1 of 4 things: Microsoft 365 Groups, Distribution Lists, Dynamic Distribution Lists, and Mail-enabled Security Groups. The first is not used whatsoever.&lt;br /&gt;
====Distribution Lists====&lt;br /&gt;
Distribution Lists are akin to the conventional mailing list, wherein an email sent to the group address is distributed to its members. This group type is used for the shareholder mailing lists (both general and private/confidential lists).&lt;br /&gt;
&lt;br /&gt;
::[[File:2021-03-06 16_53_57-Edit Mail Contact.png|400px|border]]&lt;br /&gt;
* Some groups are meant to be internal (e.g IT group), while others are meant to also be addressable by users outside the organization (e.g. Returns). Check related permissions and set up aliases accordingly. For example, Returns group follows the convention returnsgroup@unpharm.com, but it is logical to have '''returns@unipharm.com''' as an alias, as this is a more common format for a public-facing contact email address (same as customerservice@unipharm.com).&lt;br /&gt;
::[[File:2021-03-06 14_58_33-Exchange admin center.png|200px|border]]&lt;br /&gt;
====Mail-enabled Security Groups===&lt;br /&gt;
This type of group is appropriate for the departments, as the group can be used to send to its members as well as for permissions (hence, &amp;quot;mail-enabled security group&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
* The email address convention for department groups (and most other groups) is '''''department'''''group@unipharm.com.&lt;br /&gt;
* The following is an example of a configured group. The manager has been specified as a group owner (in addition to IT) to enable self-management.&lt;br /&gt;
::[[File:2021-03-06 14_41_32-Exchange admin center.png|300px|border]]&lt;br /&gt;
&lt;br /&gt;
====Microsoft 365 groups====&lt;br /&gt;
This type of group has additional functionality to enable better collaboration for the group's members. The company currently does not collaborate in such a fashion for these to be useful (e.g. no Sharepoint, no Teams, no shared folders on cloud storage).&lt;br /&gt;
&lt;br /&gt;
====Dynamic Distribution List=====&lt;br /&gt;
This is a good concept on paper as it allows distribution list membership to be dynamic based on attributes e.g. a Customer Service list could be set up to include any users with the &amp;quot;Department&amp;quot; user property set to &amp;quot;Customer Service&amp;quot;. However, it was tested to have one major showstopping limitation - it is very inconvenient viewing current members of a DDL (i.e. has to be in PowerShell, and even then, it requires list iteration and filtering). Not being able to see the recipients severely limits its usefulness, and therefore, setting up the departments as dynamic lists was forgone as an endeavor to keep things simple.&lt;br /&gt;
&lt;br /&gt;
====Nested groups====&lt;br /&gt;
'''A word of caution regarding nested groups.'''&lt;br /&gt;
&lt;br /&gt;
Nesting groups within other groups generally leads to better-structured and therefore easier to manage permissions. This is especially true with Microsoft AD, where object hierarchy and the concept of RBAC are predominant (a user can be assigned one or more roles, which grants them the specific set of permissions associated with those roles). However, issues have been encountered with group nesting during setup, primarily related to &amp;quot;trying to get too fancy&amp;quot;. The ultimate goal was to have permissions and group membership dynamically assigned based on attribute e.g. the user's department. This was found to not even be remotely achievable in Exchange. These general rules of thumb have been surmised from experimentation with group nesting:&lt;br /&gt;
&lt;br /&gt;
* Nesting like group types appears to work. Distribution lists groups are ok to nest within other distribution list groups. The same goes for mail security groups.&lt;br /&gt;
* Nesting security groups can lead to some quirks, but is still recommended. For example, nested security groups seems to break shared mailbox automapping and ownership.&lt;br /&gt;
* Distribution list groups should not be nested within security groups (see point #1).&lt;br /&gt;
&lt;br /&gt;
TL;DR - exercise caution when using group nesting, and assign permissions to users as a fallback (troubleshoot later).&lt;br /&gt;
&lt;br /&gt;
==Address Book==&lt;br /&gt;
With Exchange address books, there exists two types of implementations: out-of-the-box or address book policies. This fork on the road comes early; either accept the out of the box functionality and do nothing else, or enter the world of address book policy routing and accept the more complex management. This of course depends on the needs of the company, and we needed and decided on the latter. This path also requires PowerShell (no options or visibility exists in EAC, besides the ability to assign an existing policy (created with PowerShell) to a user).&lt;br /&gt;
&lt;br /&gt;
===Address book policies===&lt;br /&gt;
An address book policy allows you to customize what a user sees, from the sublists, to the contacts viewable in those sublists. For example, the default address book policy has the following address lists: All Groups, All Users, All Distribution Lists etc. It is both unintuitive if you are not fully invested in the Microsoft way. For example, we don't use Microsoft groups, so All Groups is empty, and what we know as groups are actually, Distribution Lists. All Users, on the other hand, contains staff, but also shared mailboxes and resources (Projector, iPad), but not rooms. To make even one customization to all of this, ABPs are needed. &lt;br /&gt;
&lt;br /&gt;
* ABP routing is an Exchange flag that has been enabled for our domain.&lt;br /&gt;
* An address book policy specifies the following:&lt;br /&gt;
: * 1 x '''Global Address List (GAL)''' - contains all objects (mailboxes, contacts, rooms etc.) that a user is able to &amp;quot;see&amp;quot;. An ABP is linked to 1 GAL and therefore a user can only see 1 GAL.&lt;br /&gt;
: * 1 x '''Offline Address Book (OAB)''' - specifies one or more address lists to download/cache. To make it more confusing, the Offline Address Book behaves more like an address list.&lt;br /&gt;
: * 1 x '''Room Address List'''&lt;br /&gt;
: * 1 or more custom (or built-in) '''Address Lists''' - Address Lists are groupings that are subsetted from the GAL. For example, the built-in All Rooms address list filters for GAL objects where the ObjectType is RoomMailbox (not quite, but something to that effect).&lt;br /&gt;
&lt;br /&gt;
Again, all these are created/set in PowerShell.&lt;br /&gt;
&lt;br /&gt;
====Current address book policies====&lt;br /&gt;
There are two ABPs (default still exists but is not meant to be used).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Address Book Policy !! Global Address List !! Offline Address Book -&amp;gt; Offline Address List !! Room List !! Address Lists !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Staff Address Book Policy || Staff Global Address List || Staff Offline Address Book -&amp;gt; Offline Address List (Staff) || Rooms and Resources || Company Contacts, Distribution Lists, Staff, Public Folders || Should be the default assigned to staff members.&lt;br /&gt;
|-&lt;br /&gt;
| Executive Address Book Policy || Executive Global Address List || Executive Offline Address Book -&amp;gt; Offline Address List (Executive) || Rooms and Resources || Company Contacts, Company Contacts (Executive), Distribution Lists, Distribution Lists (Executive), Staff, Public Folders || Can see what staff see, and the private lists/contacts.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
''Congrats if you're still following at this point.''&lt;br /&gt;
&lt;br /&gt;
====Address Lists and Filtering====&lt;br /&gt;
The usefuleness of address book policies lies in filtering (inclusion filtering), which is used to produce address lists. This is a big topic and is mostly PowerShell talk. Therefore, this is left for official technical docs, but provided are two examples to try and explain the concept:&lt;br /&gt;
* The address list '''Distribution Lists (Executive)''' specifies a filter that translates to: &lt;br /&gt;
:Include only objects where:&lt;br /&gt;
::* ObjectClass equals 'group'&lt;br /&gt;
::* DisplayName is like '*(Private)'&lt;br /&gt;
* The address list '''Staff''' specifies a filter that translates to:&lt;br /&gt;
::Include only objects where:&lt;br /&gt;
::* ObjectCategory equals 'person' AND 'user'&lt;br /&gt;
::* RecipientType does not equal 'RoomMailbox'&lt;br /&gt;
::* RecipientType does not equal 'EquipmentMailbox'&lt;br /&gt;
&lt;br /&gt;
''These are not the exact filters used, they're meant to explain the concept only.''&lt;br /&gt;
&lt;br /&gt;
====Relationship between contact management and ABPs====&lt;br /&gt;
It should be noted that contacts, groups, and group membership are not affected by address book policies. ABPs only affect what a user sees in the address book. A not-good analogy: you can take out pages of a phone directory and group them differently or put stickers over some entries so they're not visible (ABPs), but you don't change what's printed in the directory (that's contact management).&lt;br /&gt;
&lt;br /&gt;
==Mail flow and mail rules==&lt;br /&gt;
===Connectors===&lt;br /&gt;
Because mail hosting for unipharm.com is spread over 2 servers, configuring Exchange &amp;quot;connectors&amp;quot; is necessary to properly route mail to and from MDaemon (the on-prem mail server). This is a complex topic and should be described on another page.&lt;br /&gt;
&lt;br /&gt;
==Email security==&lt;br /&gt;
Email security is handled by Exchange Online Protection, a feature that comes with all Exchange Online / 365 accounts. It &amp;quot;sits&amp;quot; before the mail routing/delivery process - for both inbound and outbound mail flows - and checks messages for threats and spam. The policies determine what gets detected as spam/threats and the outcome of those messages. Depending on if the new or classic admin portal is being used, there are various areas to configure or tweak these policies:&lt;br /&gt;
:* In Classic Admin Center, these policies are found in the '''protection''' section.&lt;br /&gt;
:* In New Admin Center, these policies are found in a separate '''Security and Compliance''' Admin Center altogether, under '''Threat management'''.&lt;br /&gt;
&lt;br /&gt;
===Malware policies===&lt;br /&gt;
* Email servers do a fairly good job detecting and blocking viruses in emails, silently. As an organization, we also don't deal with attachment types (.exe, audio/video containers etc.) that are normally flagged as viruses. Therefore, these policies have not been changed from the defaults. &lt;br /&gt;
&lt;br /&gt;
===Spam policies===&lt;br /&gt;
* Unlike spam-handling pre-Exchange that involved a user quarantine, the current spam policy is set to direct spam to a user's junk folder.&lt;br /&gt;
:[[File:2021-03-30 15_50_03-edit spam filter policy.png|400px]]&lt;br /&gt;
&lt;br /&gt;
====Spam scoring====&lt;br /&gt;
There are two scores related to spam-handling: SCL (Spam Confidence Level), and BCL (Bulk Complaint Level). The Bulk Complaint Level threshold can be set, but the SCL appears to be set (at least for Exchange Online). These values are 5 (spam) and 9 (high-confidence spam), according to [https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/spam-confidence-levels?view=o365-worldwide the docs]&lt;br /&gt;
&lt;br /&gt;
Note: These scores are present in the message headers, and have been validated to make it all the way to MDaemon (in messages destined for non-Exchange mailboxes). Therefore, we could potentially capitalize on the spam and bulk scoring done by EOP by having MDaemon recognize and act on these headers.&lt;br /&gt;
&lt;br /&gt;
===Phishing===&lt;br /&gt;
Phishing remains the greatest threat when it comes to email security. Without Advanced Threat Prection (additional cost on top of EOP), we rely on reputation-based and heuristic-based detection mechanisms of the email security service (EOP) to flag emails that contain phishing content. Barracuda did a fantastic job (very low penetration from empirical evidence). It remains to be seen how EOP handles these types of &amp;quot;attacks&amp;quot; (they come in waves).&lt;br /&gt;
&lt;br /&gt;
==Security/AAA==&lt;br /&gt;
===Custom Admin Roles===&lt;br /&gt;
Exchange allows for the creation of custom admin roles that have a specific combination of permissions. For example, the Company Directory Management role was created to allow users to manage the address book:&lt;br /&gt;
::[[File:2021-03-23 11_58_18-Exchange admin center.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===Password policies===&lt;br /&gt;
* Password expiry has been disabled in 365 from the 90-day default:&lt;br /&gt;
::[[File:2021-03-23 12_14_04-Microsoft 365 admin center.png|border|400px]]&lt;br /&gt;
* Self-service password resets have been enabled in Azure AD. Users will be notified when they reset their passwords:&lt;br /&gt;
::[[File:2021-03-23 12_21_01-Password reset - Azure Active Directory admin center.png|400px|border]][[File:2021-03-23 12_23_00-Password reset - Azure Active Directory admin center.png|400px|border]]&lt;br /&gt;
* (Update this section with info on password management strategy when it gets discussed)&lt;br /&gt;
&lt;br /&gt;
==DNS==&lt;br /&gt;
===MX settings===&lt;br /&gt;
The MX record for our common domains point to Exchange. We do not have a round-robin or fallback configuration. Mail routing between Exchange and MDaemon is done through connectors and smart-host configuration.&lt;br /&gt;
&lt;br /&gt;
===SPF record===&lt;br /&gt;
SPF was implemented as part of the Exchange project. [https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/set-up-spf-in-office-365-to-help-prevent-spoofing?view=o365-worldwide This article] summarizes how SPF works and is configured for Exchange.&lt;br /&gt;
&lt;br /&gt;
A web tool like MXToolbox can be used to verify the SPF record after changes are made:&lt;br /&gt;
::[[File:mtoolboxupipharmspf.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Other Notes==&lt;br /&gt;
* Microsoft is currently transitioning from what they're now terming Classic Exchange admin center to the New Exchange admin center. Some options remain editable only in the old portal.&lt;br /&gt;
&lt;br /&gt;
[[Category: Microsoft Exchange/365]]&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Managing_contacts_and_groups_in_Exchange_(non-admin)&amp;diff=14021</id>
		<title>Information Systems:Managing contacts and groups in Exchange (non-admin)</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Managing_contacts_and_groups_in_Exchange_(non-admin)&amp;diff=14021"/>
		<updated>2021-07-20T06:59:46Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page details instructions for managing contacts and groups in Exchange. It is intended for those with the [[Information Systems:Microsoft 365 Exchange Online - Setup and Configuration#Custom_Admin_Roles|Company Directory Management Role]] in Exchange.&lt;br /&gt;
&lt;br /&gt;
==Web Portal==&lt;br /&gt;
Exchange Admin Center is the name of the web portal for management of contacts and groups.&lt;br /&gt;
&lt;br /&gt;
* Log in using your Exchange/email credentials to:&lt;br /&gt;
:[https://admin.exchange.microsoft.com/ Exchange Admin Center]&lt;br /&gt;
&lt;br /&gt;
==Managing contacts==&lt;br /&gt;
The Contacts section contains contacts, which are akin to entries in a conventional phone/email directory. The entries found here can be added to mailing lists (see [[#Managing Groups]]). Staff are not found here,&lt;br /&gt;
::[[File:2021-03-23 13_19_37-Exchange admin center.png|400px|border]]&lt;br /&gt;
'''Note: Contact email addresses will be prefixed with &amp;quot;SMTP:&amp;quot;. It can be ignored and is managed automatically when adding/editing contacts.'''&lt;br /&gt;
===Adding contacts===&lt;br /&gt;
* Clicking ''Add a contact'' brings up following dialog box&lt;br /&gt;
::[[File:2021-03-23 13_29_49-Exchange admin center.png|400px|border]]&lt;br /&gt;
* Select ''Mail contact'' as the contact type.&lt;br /&gt;
* Enter the ''Display name'' and ''Email''.&lt;br /&gt;
:* If this is a store/pharmacy contact, ''First name'' and ''Last name'' can be skipped. These fields are useful if more than one contact/email exists for the store.&lt;br /&gt;
:* If this is a contact that will '''only''' be found in the Sensitive/Confidential lists, then the following steps apply:&lt;br /&gt;
::* Prefix the display name with ''[Private]'' (this is the current convention, it may be revised).&lt;br /&gt;
::* Save the contact.&lt;br /&gt;
::* Enter Classic Admin Center via the link/option on the left menu pane.&lt;br /&gt;
::* Navigate to ''recipients'' -&amp;gt; ''contacts''.&lt;br /&gt;
:::: [[File:2021-03-23 13_42_36-.png|400px]]&lt;br /&gt;
::* Find and double click the contact just created.&lt;br /&gt;
::* Check the following setting:&lt;br /&gt;
:::: [[File:2021-03-23 13_46_11-Edit Mail Contact.png|200px]]&lt;br /&gt;
::* Return to the New Exchange Admin Center&lt;br /&gt;
&lt;br /&gt;
===Editing contacts===&lt;br /&gt;
* Click an existing contact to edit its fields. See note above about the SMTP: prefix.&lt;br /&gt;
==Managing Groups==&lt;br /&gt;
===Adding a group===&lt;br /&gt;
===Editing group membership===&lt;br /&gt;
==Other Notes==&lt;br /&gt;
===Address Book Delegation===&lt;br /&gt;
&lt;br /&gt;
[[Category: Microsoft Exchange/365]]&lt;br /&gt;
[[Category: Email]]&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Microsoft_365_Exchange_Online_-_Setup_and_Configuration&amp;diff=14020</id>
		<title>Information Systems:Microsoft 365 Exchange Online - Setup and Configuration</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Microsoft_365_Exchange_Online_-_Setup_and_Configuration&amp;diff=14020"/>
		<updated>2021-07-20T03:59:57Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: /* Groups */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
This wiki page attempts to document and discuss major topics of Exchange setup and configuration. This will be a mix of design/strategy talk and some how-tos for technical administration. Ultimately, another page should be made to adapt the information discussed here into more concise technical instructions for specific administration tasks.&lt;br /&gt;
&lt;br /&gt;
Check [[Information Systems: Exchange and Outlook Administration|this page]] for how-tos. Any instructions below should eventually be migrated to that page as well.&lt;br /&gt;
&lt;br /&gt;
==Mailboxes==&lt;br /&gt;
Users are essentially mailboxes in Exchange i.e. there is no Users section. In Exchange Online, a mailbox shows up when a user is created in 365 Admin Center.&lt;br /&gt;
&lt;br /&gt;
===Shared Mailboxes===&lt;br /&gt;
Like groups/lists, shared mailboxes are communal to a group of users. But unlike groups/lists, they are actual mailboxes that accumulate mail. The company requires a few of these:&lt;br /&gt;
* Accounts Payable: accountspayable@unipharm.com&lt;br /&gt;
* Accounts Receivable: accountsreceivable@unipharm.com&lt;br /&gt;
* EDI Support: edisupport@unipharm.com&lt;br /&gt;
* Customer Service Voicemail: csvm@unipharm.com&lt;br /&gt;
&lt;br /&gt;
====Adding a shared mailbox====&lt;br /&gt;
 Given the limited number of shared mailboxes, and the company's particular use of them as mailbox &amp;quot;identities&amp;quot; rather than a communal email &amp;quot;sink&amp;quot;, it has been decided to add shared mailboxes as separate accounts as opposed to opening them as additional mailboxes.&lt;br /&gt;
&lt;br /&gt;
To add a shared mailbox:&lt;br /&gt;
* Remove any shared mailboxes previously opened as additional mailboxes (and not added as accounts).&lt;br /&gt;
* Perform the steps to add another email account (Office 365).&lt;br /&gt;
* Enter in the shared mailbox email.&lt;br /&gt;
* Instead of entering a password, click ''Sign in as another account''.&lt;br /&gt;
* Enter in the user's credentials. This will only work if the user has Full Access permissions to the shared mailbox (do this in EAC).&lt;br /&gt;
&lt;br /&gt;
====Other methods====&lt;br /&gt;
The other ways of adding shared mailboxes are discussed here just for reference:&lt;br /&gt;
&lt;br /&gt;
'''''Manually opening a shared mailbox'''''&lt;br /&gt;
:* In Outlook 2019, File -&amp;gt; Account Settings -&amp;gt; double-click account -&amp;gt; More Settings -&amp;gt; Advanced&lt;br /&gt;
:* In the Mailboxes section -&amp;gt; Add -&amp;gt; Enter exact Display Name of shared mailbox&lt;br /&gt;
:* Save/Apply&lt;br /&gt;
&lt;br /&gt;
'''''Automapping'''''&lt;br /&gt;
:'''Note: Automapping has been disabled for all shared mailboxes.'''&lt;br /&gt;
&lt;br /&gt;
:* Automapping is a feature that makes the shared mailboxes which a user has access to automatically visible in Outlook i.e. the shared mailboxes are automatically mapped to the user. This is enabled by default. There are implications:&lt;br /&gt;
::* Automapping lumps the data of shared mailboxes in the same OST file as the user's own mailbox. This is one of the reasons there is official documentation on how to disable automapping and [https://docs.microsoft.com/en-us/outlook/troubleshoot/profiles-and-accounts/remove-automapping-for-shared-mailbox how to reset an automapped Outlook configuration]. Considering the company's user base and computer/desktop assignments, this isn't expected to be a problem. But it's something to keep aware of. Imagine a case of 3 users that access 2 shared mailboxes ecah including their own, all logging in to the same computer with a 120GB SSD, with Outlook set to sync all mail. It is feasible for this to grow massively.&lt;br /&gt;
::* Automapping appears to be very finicky when mailbox delegation (permissions) are set to security groups instead of users. Discussion on the internet refers to having to reset permissions.&lt;br /&gt;
&lt;br /&gt;
===Granting a user access to another mailbox===&lt;br /&gt;
The preferred method of granting a user access to another mailbox is to have them access to read (and send from, if necessary) using Outlook for web (OWA). This is especially true when access is only needed on a temporary basis. [[Information Systems:Exchange Online administration with PowerShell|The commands can be found here.]]&lt;br /&gt;
&lt;br /&gt;
==Contacts and Groups==&lt;br /&gt;
===Contacts===&lt;br /&gt;
Contacts are non-Exchange users i.e. either external to the organization e.g. a shareholder store. For now, the primary use of contacts is the distribution lists. Unlike in the previous Lotus Notes system where these contacts were merely email addresses e.g. &amp;quot;strings&amp;quot;, contacts in Exchange are &amp;quot;objects&amp;quot; and therefore have attributes like Company, First Name, Phone Number etc. This makes it feasible to have a directory of external contacts instead of just internal users.&lt;br /&gt;
====Shareholder email addresses====&lt;br /&gt;
 Note: It is not yet a company policy to maintain an address book of individual shareholder emails in Exchange/Outlook. These contacts are maintained for the sake of the mailing lists.&lt;br /&gt;
In an attempt to maintain clean and consistent entries, several conventions have already been put into play, best depicted in the following example entry for the personal email associated with Marks Marine Pharmacy (the one that would go in the private/sensitive list). The Classic Exchange admin center is shown as it exposes more fields:&lt;br /&gt;
::[[File:2021-03-06 22_15_29-Edit Mail Contact.png|400px|border]]&lt;br /&gt;
&lt;br /&gt;
Recommendations when creating new entries:&lt;br /&gt;
* If this contact/email will be used in private/confidential list only, prefix the Display Name with [Private]. Also, check the 'Hide contacts from the address list'. You may need to do this in Classic EAC.&lt;br /&gt;
* If this contact will be a member of both private and general/publicly-visible distribution lists, do not prefix the name.&lt;br /&gt;
&lt;br /&gt;
===Groups===&lt;br /&gt;
{{quote|03/31/2021 - Take these docs with a grain of salt, there's a lot of changes right now}}&lt;br /&gt;
The term &amp;quot;groups&amp;quot; in Exchange is encompassing of distribution lists and security groups (permissions). There are 4 types of Exchange groups. The two used primarily are ''Distribution list'' groups and ''Mail security'' groups. The former is equivalent to the idea of a conventional mailing list, wherein an email sent to the group address is distributed to its members. The latter is used for assigning permissions.&lt;br /&gt;
====Distribution Lists====&lt;br /&gt;
* The email address convention for department-based groups (and most other groups) is ''department''group@unipharm.com&lt;br /&gt;
* The following is an example of a configured group. The manager has been specified as a group owner in addition to IT to enable self-management.&lt;br /&gt;
::[[File:2021-03-06 14_41_32-Exchange admin center.png|300px|border]]&lt;br /&gt;
* Some groups are meant to be internal (e.g IT group), while others are meant to also be addressable by users outside the organization (e.g. Returns). Check related permissions and set up aliases accordingly. For example, Returns group follows the convention returnsgroup@unpharm.com, but it is logical to have '''returns@unipharm.com''' as an alias, as this is a more common format for a public-facing contact email address (same as customerservice@unipharm.com).&lt;br /&gt;
::[[File:2021-03-06 14_58_33-Exchange admin center.png|200px|border]]&lt;br /&gt;
&lt;br /&gt;
====Shareholder mailing lists====&lt;br /&gt;
There exist several mailing lists for correspondence with shareholders and associate members. Refer to the Contacts section above for how shareholder email addresses are maintained.&lt;br /&gt;
&lt;br /&gt;
====Sensitive mailing lists====&lt;br /&gt;
A few of the distribution lists are for sending confidential information to shareholders and associate members, and therefore have the 'Specified senders' permissons set. The option to prevent these lists and their constituent contacts from being displayed in the global address book should also be checked. The ability to hide contacts from address lists appears to currently be available only in the Classic admin center:&lt;br /&gt;
::[[File:2021-03-06 16_53_57-Edit Mail Contact.png|400px|border]]&lt;br /&gt;
&lt;br /&gt;
====Other group types====&lt;br /&gt;
* '''Microsoft 365 groups''' have additional functionality to enable better collaboration for the group's members. The company currently does not collaborate in such a fashion for these to be useful (e.g. no Sharepoint, no Teams, no shared folders on cloud storage).&lt;br /&gt;
* '''Dynamic distribution list''' is a good concept on paper as it allows distribution list membership to be dynamic based on attributes e.g. a Customer Service list could be set up to include any users with the &amp;quot;Department&amp;quot; user property set to &amp;quot;Customer Service&amp;quot;. However, it was tested to have one major showstopping limitation - it is very inconvenient viewing current members of a DDL (i.e. has to be in PowerShell, and even then, it requires list iteration and filtering). Not being able to see the recipients severely limits its usefulness, and therefore, setting up the departments as dynamic lists was forgone as an endeavor to keep things simple.&lt;br /&gt;
&lt;br /&gt;
====Nested groups====&lt;br /&gt;
'''A word of caution regarding nested groups.'''&lt;br /&gt;
&lt;br /&gt;
Nesting groups within other groups generally makes sense when it comes to permissions. This is especially true with Microsoft AD, where object hierarchy and the concept of RBAC are predominant (a user can be assigned one or more roles, which grants them the specific set of permissions associated with those roles). However, issues have been encountered with group nesting during setup, primarily related to &amp;quot;trying to get too fancy&amp;quot;. The ultimate goal was to have permissions and group membership dynamically assigned based on attribute e.g. the user's department. This was found to not even be remotely achievable in Exchange. These general rules of thumb have been surmised from experimentation with group nesting:&lt;br /&gt;
&lt;br /&gt;
* Nesting like group types appears to work. Distribution lists groups are ok to nest within other distribution list groups. The same goes for mail security groups.&lt;br /&gt;
* Nesting security groups can lead to some quirks, but is still recommended. For example, nested security groups seems to break shared mailbox automapping and ownership.&lt;br /&gt;
* Distribution list groups should not be nested within security groups (see point #1).&lt;br /&gt;
&lt;br /&gt;
TL;DR - exercise caution when using group nesting, and assign permissions to users as a fallback (troubleshoot later).&lt;br /&gt;
&lt;br /&gt;
==Address Book==&lt;br /&gt;
With Exchange address books, there exists two types of implementations: out-of-the-box or address book policies. This fork on the road comes early; either accept the out of the box functionality and do nothing else, or enter the world of address book policy routing and accept the more complex management. This of course depends on the needs of the company, and we needed and decided on the latter. This path also requires PowerShell (no options or visibility exists in EAC, besides the ability to assign an existing policy (created with PowerShell) to a user).&lt;br /&gt;
&lt;br /&gt;
===Address book policies===&lt;br /&gt;
An address book policy allows you to customize what a user sees, from the sublists, to the contacts viewable in those sublists. For example, the default address book policy has the following address lists: All Groups, All Users, All Distribution Lists etc. It is both unintuitive if you are not fully invested in the Microsoft way. For example, we don't use Microsoft groups, so All Groups is empty, and what we know as groups are actually, Distribution Lists. All Users, on the other hand, contains staff, but also shared mailboxes and resources (Projector, iPad), but not rooms. To make even one customization to all of this, ABPs are needed. &lt;br /&gt;
&lt;br /&gt;
* ABP routing is an Exchange flag that has been enabled for our domain.&lt;br /&gt;
* An address book policy specifies the following:&lt;br /&gt;
: * 1 x '''Global Address List (GAL)''' - contains all objects (mailboxes, contacts, rooms etc.) that a user is able to &amp;quot;see&amp;quot;. An ABP is linked to 1 GAL and therefore a user can only see 1 GAL.&lt;br /&gt;
: * 1 x '''Offline Address Book (OAB)''' - specifies one or more address lists to download/cache. To make it more confusing, the Offline Address Book behaves more like an address list.&lt;br /&gt;
: * 1 x '''Room Address List'''&lt;br /&gt;
: * 1 or more custom (or built-in) '''Address Lists''' - Address Lists are groupings that are subsetted from the GAL. For example, the built-in All Rooms address list filters for GAL objects where the ObjectType is RoomMailbox (not quite, but something to that effect).&lt;br /&gt;
&lt;br /&gt;
Again, all these are created/set in PowerShell.&lt;br /&gt;
&lt;br /&gt;
====Current address book policies====&lt;br /&gt;
There are two ABPs (default still exists but is not meant to be used).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Address Book Policy !! Global Address List !! Offline Address Book -&amp;gt; Offline Address List !! Room List !! Address Lists !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Staff Address Book Policy || Staff Global Address List || Staff Offline Address Book -&amp;gt; Offline Address List (Staff) || Rooms and Resources || Company Contacts, Distribution Lists, Staff, Public Folders || Should be the default assigned to staff members.&lt;br /&gt;
|-&lt;br /&gt;
| Executive Address Book Policy || Executive Global Address List || Executive Offline Address Book -&amp;gt; Offline Address List (Executive) || Rooms and Resources || Company Contacts, Company Contacts (Executive), Distribution Lists, Distribution Lists (Executive), Staff, Public Folders || Can see what staff see, and the private lists/contacts.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
''Congrats if you're still following at this point.''&lt;br /&gt;
&lt;br /&gt;
====Address Lists and Filtering====&lt;br /&gt;
The usefuleness of address book policies lies in filtering (inclusion filtering), which is used to produce address lists. This is a big topic and is mostly PowerShell talk. Therefore, this is left for official technical docs, but provided are two examples to try and explain the concept:&lt;br /&gt;
* The address list '''Distribution Lists (Executive)''' specifies a filter that translates to: &lt;br /&gt;
:Include only objects where:&lt;br /&gt;
::* ObjectClass equals 'group'&lt;br /&gt;
::* DisplayName is like '*(Private)'&lt;br /&gt;
* The address list '''Staff''' specifies a filter that translates to:&lt;br /&gt;
::Include only objects where:&lt;br /&gt;
::* ObjectCategory equals 'person' AND 'user'&lt;br /&gt;
::* RecipientType does not equal 'RoomMailbox'&lt;br /&gt;
::* RecipientType does not equal 'EquipmentMailbox'&lt;br /&gt;
&lt;br /&gt;
''These are not the exact filters used, they're meant to explain the concept only.''&lt;br /&gt;
&lt;br /&gt;
====Relationship between contact management and ABPs====&lt;br /&gt;
It should be noted that contacts, groups, and group membership are not affected by address book policies. ABPs only affect what a user sees in the address book. A not-good analogy: you can take out pages of a phone directory and group them differently or put stickers over some entries so they're not visible (ABPs), but you don't change what's printed in the directory (that's contact management).&lt;br /&gt;
&lt;br /&gt;
==Mail flow and mail rules==&lt;br /&gt;
===Connectors===&lt;br /&gt;
Because mail hosting for unipharm.com is spread over 2 servers, configuring Exchange &amp;quot;connectors&amp;quot; is necessary to properly route mail to and from MDaemon (the on-prem mail server). This is a complex topic and should be described on another page.&lt;br /&gt;
&lt;br /&gt;
==Email security==&lt;br /&gt;
Email security is handled by Exchange Online Protection, a feature that comes with all Exchange Online / 365 accounts. It &amp;quot;sits&amp;quot; before the mail routing/delivery process - for both inbound and outbound mail flows - and checks messages for threats and spam. The policies determine what gets detected as spam/threats and the outcome of those messages. Depending on if the new or classic admin portal is being used, there are various areas to configure or tweak these policies:&lt;br /&gt;
:* In Classic Admin Center, these policies are found in the '''protection''' section.&lt;br /&gt;
:* In New Admin Center, these policies are found in a separate '''Security and Compliance''' Admin Center altogether, under '''Threat management'''.&lt;br /&gt;
&lt;br /&gt;
===Malware policies===&lt;br /&gt;
* Email servers do a fairly good job detecting and blocking viruses in emails, silently. As an organization, we also don't deal with attachment types (.exe, audio/video containers etc.) that are normally flagged as viruses. Therefore, these policies have not been changed from the defaults. &lt;br /&gt;
&lt;br /&gt;
===Spam policies===&lt;br /&gt;
* Unlike spam-handling pre-Exchange that involved a user quarantine, the current spam policy is set to direct spam to a user's junk folder.&lt;br /&gt;
:[[File:2021-03-30 15_50_03-edit spam filter policy.png|400px]]&lt;br /&gt;
&lt;br /&gt;
====Spam scoring====&lt;br /&gt;
There are two scores related to spam-handling: SCL (Spam Confidence Level), and BCL (Bulk Complaint Level). The Bulk Complaint Level threshold can be set, but the SCL appears to be set (at least for Exchange Online). These values are 5 (spam) and 9 (high-confidence spam), according to [https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/spam-confidence-levels?view=o365-worldwide the docs]&lt;br /&gt;
&lt;br /&gt;
Note: These scores are present in the message headers, and have been validated to make it all the way to MDaemon (in messages destined for non-Exchange mailboxes). Therefore, we could potentially capitalize on the spam and bulk scoring done by EOP by having MDaemon recognize and act on these headers.&lt;br /&gt;
&lt;br /&gt;
===Phishing===&lt;br /&gt;
Phishing remains the greatest threat when it comes to email security. Without Advanced Threat Prection (additional cost on top of EOP), we rely on reputation-based and heuristic-based detection mechanisms of the email security service (EOP) to flag emails that contain phishing content. Barracuda did a fantastic job (very low penetration from empirical evidence). It remains to be seen how EOP handles these types of &amp;quot;attacks&amp;quot; (they come in waves).&lt;br /&gt;
&lt;br /&gt;
==Security/AAA==&lt;br /&gt;
===Custom Admin Roles===&lt;br /&gt;
Exchange allows for the creation of custom admin roles that have a specific combination of permissions. For example, the Company Directory Management role was created to allow users to manage the address book:&lt;br /&gt;
::[[File:2021-03-23 11_58_18-Exchange admin center.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===Password policies===&lt;br /&gt;
* Password expiry has been disabled in 365 from the 90-day default:&lt;br /&gt;
::[[File:2021-03-23 12_14_04-Microsoft 365 admin center.png|border|400px]]&lt;br /&gt;
* Self-service password resets have been enabled in Azure AD. Users will be notified when they reset their passwords:&lt;br /&gt;
::[[File:2021-03-23 12_21_01-Password reset - Azure Active Directory admin center.png|400px|border]][[File:2021-03-23 12_23_00-Password reset - Azure Active Directory admin center.png|400px|border]]&lt;br /&gt;
* (Update this section with info on password management strategy when it gets discussed)&lt;br /&gt;
&lt;br /&gt;
==DNS==&lt;br /&gt;
===MX settings===&lt;br /&gt;
The MX record for our common domains point to Exchange. We do not have a round-robin or fallback configuration. Mail routing between Exchange and MDaemon is done through connectors and smart-host configuration.&lt;br /&gt;
&lt;br /&gt;
===SPF record===&lt;br /&gt;
SPF was implemented as part of the Exchange project. [https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/set-up-spf-in-office-365-to-help-prevent-spoofing?view=o365-worldwide This article] summarizes how SPF works and is configured for Exchange.&lt;br /&gt;
&lt;br /&gt;
A web tool like MXToolbox can be used to verify the SPF record after changes are made:&lt;br /&gt;
::[[File:mtoolboxupipharmspf.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Other Notes==&lt;br /&gt;
* Microsoft is currently transitioning from what they're now terming Classic Exchange admin center to the New Exchange admin center. Some options remain editable only in the old portal.&lt;br /&gt;
&lt;br /&gt;
[[Category: Microsoft Exchange/365]]&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Server_Hardware_Inventory_and_Assessment_(2021)&amp;diff=14019</id>
		<title>Information Systems:Server Hardware Inventory and Assessment (2021)</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Server_Hardware_Inventory_and_Assessment_(2021)&amp;diff=14019"/>
		<updated>2021-07-20T03:37:03Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Server name !! Server model !! Server description !! CPU !! RAM installed (GB) !! Storage (GB) !! Storage controller !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| VMHost01 || X3650 M5 || ESXi virtualization host 1 || 1 x E5-2620 v4 || 64 (1x16, 6x8) || 5000 (6x1TB in RAID-5) || M5210 || -&lt;br /&gt;
|-&lt;br /&gt;
| VMHost02 || X3650 M5 || ESXi virtualization host 2 || 1 x E5-2620 v4 || 64 (1x16, 6x8) || 5000 (6x1TB in RAID-5) || M5210 || -&lt;br /&gt;
|-&lt;br /&gt;
| VMHost03 || X3550 M5 || ESXi virtualization host 3 || 2 x E5-2620 v3 || 32 (2x16) || 480 (2x240GB in RAID-0 || M5210 || -&lt;br /&gt;
|-&lt;br /&gt;
| UWDDC3 (former) || X3250 M5 || Former domain controller, physical server || E3-1230 || 16 || 2x128GB || - || -&lt;br /&gt;
|-&lt;br /&gt;
| UWDDC4 (former) || X3250 M5 || Former domain controller, physical server || E3-1230 || 16 || 2x128GB || - &lt;br /&gt;
|-&lt;br /&gt;
| Stewie || X3550 M4 || Unused || E5-2620 v2 || 8 || - || Can be replaced with 2xE5-2650 v2 = 16c/32t for very cheap!&lt;br /&gt;
|-&lt;br /&gt;
| Veeam || X3650 M3 || Currently a Veeam proof-of-concept machine. || E5620 || - || - || - || Should be an archive server. Should have more SSDs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
* Same-generation servers use the same hard drive caddies.&lt;br /&gt;
&lt;br /&gt;
==Ideas==&lt;br /&gt;
* Decommission old Superserver/Veeam machine.&lt;br /&gt;
* Decommission Stewie&lt;br /&gt;
* Add and reconfigure storage on VMHost03&lt;br /&gt;
* Reinstate UWDDC3/4 i.e. reinstall in the rack.&lt;br /&gt;
:* Create backup server out of one of these&lt;br /&gt;
:* Use the other as a play server&lt;br /&gt;
* Buy 32GB more memory for VMHost03 (https://www.axiomupgrades.com/productdetail/01KN301-AX/)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Servers]]&lt;br /&gt;
[[Category: I.T. Projects and Ideas]]&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Server_Hardware_Inventory_and_Assessment_(2021)&amp;diff=14018</id>
		<title>Information Systems:Server Hardware Inventory and Assessment (2021)</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Server_Hardware_Inventory_and_Assessment_(2021)&amp;diff=14018"/>
		<updated>2021-07-20T03:35:52Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: Updated with 2021 info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Server name !! Server model !! Server description !! CPU !! RAM installed (GB) !! Storage (GB) !! Storage controller !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| VMHost01 || X3650 M5 || ESXi virtualization host 1 || 1 x E5-2620 v4 || 64 (1x16, 6x8) || 5000 (6x1TB in RAID-5) || M5210 || -&lt;br /&gt;
|-&lt;br /&gt;
| VMHost02 || X3650 M5 || ESXi virtualization host 2 || 1 x E5-2620 v4 || 64 (1x16, 6x8) || 5000 (6x1TB in RAID-5) || M5210 || -&lt;br /&gt;
|-&lt;br /&gt;
| VMHost03 || X3550 M5 || ESXi virtualization host 3 || 2 x E5-2620 v3 || 32 (2x16) || 480 (2x240GB in RAID-0 || M5210 || -&lt;br /&gt;
|-&lt;br /&gt;
| UWDDC3 (former) || X3250 M5 || Former domain controller, physical server || E3-1230 || 16 || 2x128GB || - || -&lt;br /&gt;
|-&lt;br /&gt;
| UWDDC4 (former) || X3250 M5 || Former domain controller, physical server || E3-1230 || 16 || 2x128GB || - &lt;br /&gt;
|-&lt;br /&gt;
| Stewie || X3550 M4 || Current Toshiba eManager/ACD Server || E5-2620 v2 || 8 || - || -&lt;br /&gt;
|-&lt;br /&gt;
| Veeam || X3650 M3 || Currently a Veeam proof-of-concept machine. || E5620 || - || - || Should be an archive server. Should have more SSDs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
* Same-generation servers use the same hard drive caddies.&lt;br /&gt;
&lt;br /&gt;
==Ideas==&lt;br /&gt;
* Decommission old Superserver/Veeam machine.&lt;br /&gt;
* Decommission Stewie&lt;br /&gt;
* Add and reconfigure storage on VMHost03&lt;br /&gt;
* Reinstate UWDDC3/4 i.e. reinstall in the rack.&lt;br /&gt;
:* Create backup server out of one of these&lt;br /&gt;
:* Use the other as a play server&lt;br /&gt;
* Buy 32GB more memory for VMHost03 (https://www.axiomupgrades.com/productdetail/01KN301-AX/)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Servers]]&lt;br /&gt;
[[Category: I.T. Projects and Ideas]]&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Server_Hardware_Inventory_and_Assessment_(2019)&amp;diff=14017</id>
		<title>Information Systems:Server Hardware Inventory and Assessment (2019)</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Server_Hardware_Inventory_and_Assessment_(2019)&amp;diff=14017"/>
		<updated>2021-07-20T03:31:28Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: Norwinu moved page Information Systems:Server Hardware Inventory and Assessment (2019) to Information Systems:Server Hardware Inventory and Assessment (2021): New iteration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Information Systems:Server Hardware Inventory and Assessment (2021)]]&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Server_Hardware_Inventory_and_Assessment_(2021)&amp;diff=14016</id>
		<title>Information Systems:Server Hardware Inventory and Assessment (2021)</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Server_Hardware_Inventory_and_Assessment_(2021)&amp;diff=14016"/>
		<updated>2021-07-20T03:31:28Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: Norwinu moved page Information Systems:Server Hardware Inventory and Assessment (2019) to Information Systems:Server Hardware Inventory and Assessment (2021): New iteration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Server name !! Server model !! Server description !! CPU !! RAM installed (GB) !! Storage (GB) !! Storage controller&lt;br /&gt;
|-&lt;br /&gt;
| VMHost01 || X3650 M5 || ESXi virtualization host 1 || 1 x E5-2620 v4 || 64 (1x16, 6x8) || 3000 || M5210 &lt;br /&gt;
|-&lt;br /&gt;
| VMHost02 || X3650 M5 || ESXi virtualization host 2 || 1 x E5-2620 v4 || 64 (1x16, 6x8) || 3000 || M5210&lt;br /&gt;
|-&lt;br /&gt;
| VMHost03 || X3550 M5 || ESXi virtualization host 3 || 2 x E5-2620 v3 || 32 (2x16) || - || M5210&lt;br /&gt;
|-&lt;br /&gt;
| UWDDC3 (former) || X3250 M5 || Former domain controller, physical server || E3-1240 || 8 || 128 || -&lt;br /&gt;
|-&lt;br /&gt;
| UWDDC4 (former) || X3250 M5 || Former domain controller, physical server || E3-1240 || 8 || 128 || - &lt;br /&gt;
|-&lt;br /&gt;
| Stewie || X3550 M4 || Current Toshiba eManager/ACD Server || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| Veeam || X3650 M3 || Old superserver. Currently a Veeam proof-of-concept machine. || E5620 || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
* M5 series use the same drive caddies.&lt;br /&gt;
* Veeam/Superserver was supposed to be used as a backup server because of the 16 bays. However, too old of a platform.&lt;br /&gt;
&lt;br /&gt;
==Ideas==&lt;br /&gt;
* Decommission old Superserver/Veeam machine.&lt;br /&gt;
* Decommission Stewie&lt;br /&gt;
* Add and reconfigure storage on VMHost03&lt;br /&gt;
* Reinstate UWDDC3/4 i.e. reinstall in the rack.&lt;br /&gt;
:* Create backup server out of one of these&lt;br /&gt;
:* Use the other as a play server&lt;br /&gt;
* Buy 32GB more memory for VMHost03 (https://www.axiomupgrades.com/productdetail/01KN301-AX/)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Servers]]&lt;br /&gt;
[[Category: I.T. Projects and Ideas]]&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:UniPHARM_eLearning_Web_Server_Administration&amp;diff=14015</id>
		<title>Information Systems:UniPHARM eLearning Web Server Administration</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:UniPHARM_eLearning_Web_Server_Administration&amp;diff=14015"/>
		<updated>2021-07-20T03:29:59Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; The information on this page is no longer relevant; eLearning software has been relocated to [[Information Systems: Owl LAMP server| Owl LAMP server]].&lt;br /&gt;
&lt;br /&gt;
Placeholder for detailing Apache, MySQL, PHP installation on Smithers to host Moodle and Mediawiki.&lt;br /&gt;
&lt;br /&gt;
=Cut-and-paste from another section=&lt;br /&gt;
These are all open-source software and available to use for both personal and commercial use. They do not come with commercial support (except for MySQL, which has a commercial option i.e. the software is based on the same source code but comes with paid support), and are community-maintained. As such, there is no default way to install these programs. &lt;br /&gt;
&lt;br /&gt;
==Folder structure and versions==&lt;br /&gt;
Current versions of software being used:&lt;br /&gt;
*Apache: 2.4.16 (For 64-bit Windows)&lt;br /&gt;
**Install directory: C:\uniPHARM eLearning\Apache24&lt;br /&gt;
*MySQL: 5.6&lt;br /&gt;
**C:\Program Files\MySQL\MySQL Server 5.6&lt;br /&gt;
*PHP: 5&lt;br /&gt;
*MediaWiki: &lt;br /&gt;
*Moodle: 2.9&lt;br /&gt;
&lt;br /&gt;
[[Category: uniKB Wiki]]&lt;br /&gt;
[[Category: Archived Pages]]&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:UniPHARM_eLearning_Web_Server_Administration&amp;diff=14014</id>
		<title>Information Systems:UniPHARM eLearning Web Server Administration</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:UniPHARM_eLearning_Web_Server_Administration&amp;diff=14014"/>
		<updated>2021-07-20T03:29:44Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; The information on this page is no longer relevant; eLearning software has been relocated to [[Information Systems: Owl LAMP server| Owl LAMP server]].&lt;br /&gt;
&lt;br /&gt;
Placeholder for detailing Apache, MySQL, PHP installation on Smithers to host Moodle and Mediawiki.&lt;br /&gt;
&lt;br /&gt;
=Cut-and-paste from another section=&lt;br /&gt;
These are all open-source software and available to use for both personal and commercial use. They do not come with commercial support (except for MySQL, which has a commercial option i.e. the software is based on the same source code but comes with paid support), and are community-maintained. As such, there is no default way to install these programs. &lt;br /&gt;
&lt;br /&gt;
==Folder structure and versions==&lt;br /&gt;
Current versions of software being used:&lt;br /&gt;
*Apache: 2.4.16 (For 64-bit Windows)&lt;br /&gt;
**Install directory: C:\uniPHARM eLearning\Apache24&lt;br /&gt;
*MySQL: 5.6&lt;br /&gt;
**C:\Program Files\MySQL\MySQL Server 5.6&lt;br /&gt;
*PHP: 5&lt;br /&gt;
*MediaWiki: &lt;br /&gt;
*Moodle: 2.9&lt;br /&gt;
&lt;br /&gt;
[[Category: uniKB Wiki]]&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Laser_Printers&amp;diff=14013</id>
		<title>Information Systems:Laser Printers</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Laser_Printers&amp;diff=14013"/>
		<updated>2021-07-20T03:12:09Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: Grammatical&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article is to keep track of the laser printers used in the Distribution Centre and Office ''that uniPHARM owns.'' For the ''leased/managed'' Xerox copiers, refer to [[Information Systems:Xerox printers|this article]]&lt;br /&gt;
==Inventory==&lt;br /&gt;
The following table summarizes our printer inventory:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Hostname !! Location !! Model !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| gm-printer || GM's office || Brother MFC-L3770CDW || -&lt;br /&gt;
|-&lt;br /&gt;
| it-lab-printer || IT Lab/Cage || Lexmark MS415DN || -&lt;br /&gt;
|-&lt;br /&gt;
| buying-dept-printer || Buying Department || Lexmark MS415DN || -&lt;br /&gt;
|-&lt;br /&gt;
| accounting-dept-printer || Accounting Department || Lexmark MS415DN || -&lt;br /&gt;
|-&lt;br /&gt;
| dc-office-printer || DC Office || Lexmark MS415DN || -&lt;br /&gt;
|-&lt;br /&gt;
| dc-large-down-invoice-printer || DC Large Down || Lexmark MS521DN || -&lt;br /&gt;
|-&lt;br /&gt;
| dc-fridge-invoice-printer || DC Fridge || Lexmark MS521DN || -&lt;br /&gt;
|-&lt;br /&gt;
| dc-narc-invoice-printer || DC Narc Cage || Lexmark MS521DN || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Distribution Centre Printers===&lt;br /&gt;
Lexmark laser printers are used for printing invoices at each picking station (warehouse zone) in the Distribution Centre. The current models are the MS521 and T652, which replaced the previous T640s and T630s (some may still remain). While there is no restriction on the use of other brands of laser printers (HP for example) it is a best practice to keep the number of brands as close to 1 as possible so that users don't have to adjust to 10 different print drivers. The laser printer at each of the picking stations is connected to the HP JetDirect print servers with a parallel cable, but these are being transitioned to Ethernet connectivity. Keep in mind that the JetDirect-connected printers are not visible on the network and therefore are not &amp;quot;fully configured&amp;quot;. The advantage to this is that they can be interchanged easily e.g. with printers in other zones, but this method is being retired in favor of fully networked printers. &lt;br /&gt;
&lt;br /&gt;
The Lexmark printers at the picking stations are not set up as shared network printers from a Windows print server. The HP boxes are configured as TCP/IP printers on the Lucy Jetforms server, but they are not shared so that users can print to them.&lt;br /&gt;
&lt;br /&gt;
===Office Laser Printers===&lt;br /&gt;
Lexmark printers are also used for departmental/workgroup printing. The current model is the MS417. These are [[Information Systems:Domain Printers (Windows Shared Printers)|shared through Windows]].&lt;br /&gt;
&lt;br /&gt;
==Management==&lt;br /&gt;
===Setup===&lt;br /&gt;
Other articles exist that detail different setup processes depending on where/how the printer is used (IBM i printer, Windows printer etc.)&lt;br /&gt;
&lt;br /&gt;
===Consumables===&lt;br /&gt;
Toner replacement is very common in the warehouse and so has become self-service (they order and replace the toner themselves). It doesn't help that the printers were not networked before and so IT could not proactively replace toner before it ran out. For departmental/office printers, IT initiates the internal order and does the replacement themselves. &lt;br /&gt;
&lt;br /&gt;
Maintenance kits on the other hand, must be done on a case-by-case basis, as they are expensive and thus it may make more sense to buy a replacement printer. These kits, while user-installable, also require more effort to install, which must be factored in as well.&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
====Invoices not printing====&lt;br /&gt;
* If the Lexmark still does not print an invoice then power cycle the HP print server box at the picking station.  &lt;br /&gt;
* If that still doesn't work then check the network cable (of the print server). If the green lights on the HP print server box are not blinking rapidly then there is no valid network connection.&lt;br /&gt;
* There are spare JetDirect servers in the IT Lab (cage), but these are virtually unconfigurable (require XP). &lt;br /&gt;
====Bad print quality====&lt;br /&gt;
* Try another toner cartridge. Regardless of toner level, sometimes a replacement can improve/fix image quality. This is because the fuser is built into the toner cartridge for some of these high-volume workgroup printers, and a dirty fuser causes bad print quality&lt;br /&gt;
====Maintenance warning (fuser)====&lt;br /&gt;
This is more than likely referring to the fuser; a fixed page counter triggers an alert to purchase a maintenance kit to replace a core set of printer parts (fuser, rollers etc.). There are some tips to keep in mind:&lt;br /&gt;
* The printer can still function if this message is bypassed.&lt;br /&gt;
* The print quality may be fine despite this message. It is only a recommendation that is triggered by the page count (I think...)&lt;br /&gt;
* The maintenance counter can be reset.&lt;br /&gt;
* If you need to install a new fuser into the LP05 printer in accounting (C748 model) and the printer refuses to see a brand new fuser as a brand new fuser, reboot the printer while holding down the 2 and the 6 buttons on the front panel. The printer will boot into a special configuration menu where you have to reset the page counter on the new fuser. I suppose you could do this same trick when that printer prompts for a new fuser because that printer eats consumables like the fat Austrian kid on the Simpsons eats chocolate.&lt;br /&gt;
* To reset the T650/52 d/dn maintenance counter turn the power off, hold the check mark and the right arrow while turning on and wait for the 128mb to flash then wait for the config menu.Reset the maintenance clock from there. &lt;br /&gt;
====Paper jam (Lexmark)====&lt;br /&gt;
At least for the Lexmark printers, some paper jam error messages correlate to worn paper pickup rollers, so this is the first thing to check after an actual paper jam has been ruled out (which the users would resolve themselves). Remove the tray, and this part is then located above where the paper would be (its job is to pick up a sheet of paper from the tray and feed it into where the printing occurs. As per Lexmark docs, a quick test and temporary workaround is to turn the rubber inside out. The entire roller assembly can be removed, or the rubber can be removed in-place (check YouTube or online pics). Once turned inside out, if it starts to pick up paper again, replacement rollers should be purchased. Keep in mind that this can happen on the extended tray as well, which have their own pickup rollers.&lt;br /&gt;
====Grinding noise when printing====&lt;br /&gt;
Online resources point to this also being related to the fuser/maintenance kit.&lt;br /&gt;
&lt;br /&gt;
[[Category:Printing]]&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Shared_Calendars&amp;diff=14012</id>
		<title>Information Systems:Shared Calendars</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Shared_Calendars&amp;diff=14012"/>
		<updated>2021-07-20T02:53:10Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: Norwinu moved page Information Systems:Shared Calendars to Information Systems:Shared Calendars in Microsoft Outlook: More appropriate title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Information Systems:Shared Calendars in Microsoft Outlook]]&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Shared_Calendars_in_Microsoft_Outlook&amp;diff=14011</id>
		<title>Information Systems:Shared Calendars in Microsoft Outlook</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Shared_Calendars_in_Microsoft_Outlook&amp;diff=14011"/>
		<updated>2021-07-20T02:53:10Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: Norwinu moved page Information Systems:Shared Calendars to Information Systems:Shared Calendars in Microsoft Outlook: More appropriate title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
A shared calendar an O365 calendar that is created/owned by one person but is readable (and optionally, writeable) by the people it is shared to. Shared calendars can be useful at the department and company level. The process to create one is straightforward:&lt;br /&gt;
&lt;br /&gt;
* Someone creates a shared calendar (this should be the manager). When prompted for the location of the calendar, the user's &amp;quot;Calendars&amp;quot; folder should be chosen so that it goes into this node. (''It would be preferred to save this under a common object like a shared mailbox or group, but I haven't found a way to do this - it always errors out.'').&lt;br /&gt;
* The creator shares the calendar through the &amp;quot;Share Calendar&amp;quot; feature. This prepares an email invitation. There is a tick box to &amp;quot;allow invitees to add entries to the calendar&amp;quot; that can be used accordingly.&lt;br /&gt;
* Invitees can use the &amp;quot;Open calendar&amp;quot; in the email invitation to add the calendar tot their list of calendars. This also propagates to the mobile app.&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
* By default, creating entries in any calendar sets a reminder/alert - this may not be desirable for entries in the shared calendar. The reminder can be configured off per entry at the time of scheduling or after the fact.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Microsoft Exchange/365]]&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Shared_Calendars_in_Microsoft_Outlook&amp;diff=14010</id>
		<title>Information Systems:Shared Calendars in Microsoft Outlook</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Shared_Calendars_in_Microsoft_Outlook&amp;diff=14010"/>
		<updated>2021-07-20T02:52:43Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
A shared calendar an O365 calendar that is created/owned by one person but is readable (and optionally, writeable) by the people it is shared to. Shared calendars can be useful at the department and company level. The process to create one is straightforward:&lt;br /&gt;
&lt;br /&gt;
* Someone creates a shared calendar (this should be the manager). When prompted for the location of the calendar, the user's &amp;quot;Calendars&amp;quot; folder should be chosen so that it goes into this node. (''It would be preferred to save this under a common object like a shared mailbox or group, but I haven't found a way to do this - it always errors out.'').&lt;br /&gt;
* The creator shares the calendar through the &amp;quot;Share Calendar&amp;quot; feature. This prepares an email invitation. There is a tick box to &amp;quot;allow invitees to add entries to the calendar&amp;quot; that can be used accordingly.&lt;br /&gt;
* Invitees can use the &amp;quot;Open calendar&amp;quot; in the email invitation to add the calendar tot their list of calendars. This also propagates to the mobile app.&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
* By default, creating entries in any calendar sets a reminder/alert - this may not be desirable for entries in the shared calendar. The reminder can be configured off per entry at the time of scheduling or after the fact.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Microsoft Exchange/365]]&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Shared_Calendars_in_Microsoft_Outlook&amp;diff=14009</id>
		<title>Information Systems:Shared Calendars in Microsoft Outlook</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Shared_Calendars_in_Microsoft_Outlook&amp;diff=14009"/>
		<updated>2021-07-20T02:52:29Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
A shared calendar an O365 calendar that is created/owned by one person but is readable (and optionally, writeable) by the people it is shared to. Shared calendars can be useful at the department and company level. The process to create one is straightforward:&lt;br /&gt;
&lt;br /&gt;
* Someone creates a shared calendar (this should be the manager). When prompted for the location of the calendar, the user's &amp;quot;Calendars&amp;quot; folder should be chosen so that it goes into this node. (''It would be preferred to save this under a common object like a shared mailbox or group, but I haven't found a way to do this - it always errors out.'').&lt;br /&gt;
* The creator shares the calendar through the &amp;quot;Share Calendar&amp;quot; feature. This prepares an email invitation. There is a tick box to &amp;quot;allow invitees to add entries to the calendar&amp;quot; that can be used accordingly.&lt;br /&gt;
* Invitees can use the &amp;quot;Open calendar&amp;quot; in the email invitation to add the calendar tot their list of calendars. This also propagates to the mobile app.&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
* By default, creating entries in any calendar sets a reminder/alert - this may not be desirable for entries in the shared calendar. The reminder can be configured off per entry at the time of scheduling or after the fact.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Microsoft Exchange]]&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Laser_Printers&amp;diff=14008</id>
		<title>Information Systems:Laser Printers</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Laser_Printers&amp;diff=14008"/>
		<updated>2021-07-20T00:30:28Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: /* Paper jam */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article is to keep track of the laser printers used in the Distribution Centre and Office ''which uniPHARM own.'' For the Xerox copiers, which are managed/leased, refer to [[Information Systems:Xerox printers|this article]]&lt;br /&gt;
==Inventory==&lt;br /&gt;
The following table summarizes our printer inventory:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Hostname !! Location !! Model !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| gm-printer || GM's office || Brother MFC-L3770CDW || -&lt;br /&gt;
|-&lt;br /&gt;
| it-lab-printer || IT Lab/Cage || Lexmark MS415DN || -&lt;br /&gt;
|-&lt;br /&gt;
| buying-dept-printer || Buying Department || Lexmark MS415DN || -&lt;br /&gt;
|-&lt;br /&gt;
| accounting-dept-printer || Accounting Department || Lexmark MS415DN || -&lt;br /&gt;
|-&lt;br /&gt;
| dc-office-printer || DC Office || Lexmark MS415DN || -&lt;br /&gt;
|-&lt;br /&gt;
| dc-large-down-invoice-printer || DC Large Down || Lexmark MS521DN || -&lt;br /&gt;
|-&lt;br /&gt;
| dc-fridge-invoice-printer || DC Fridge || Lexmark MS521DN || -&lt;br /&gt;
|-&lt;br /&gt;
| dc-narc-invoice-printer || DC Narc Cage || Lexmark MS521DN || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Distribution Centre Printers===&lt;br /&gt;
uniPHARM uses Lexmark laser printers for printing invoices at each picking station (warehouse zone) in the Distribution Centre. The current models are the MS521 and T652, which replaced the previous T640s and T630s (some still remain). While there is no restriction on the use of other brands of laser printers (HP for example) it is a best practice to keep the number of brands as close to 1 as possible so that users don't have to adjust to 10 different print drivers. The laser printer at each of the picking stations is connected to the HP JetDirect print servers with a parallel cable, but these are being transitioned to Ethernet connectivity. Keep in mind that the JetDirect-connected printers are not visible on the network and therefore are not &amp;quot;fully configured&amp;quot;. The advantage to this is that they can be interchanged easily e.g. with printers in other zones, but this method is being retired in favor of fully networked printers. &lt;br /&gt;
&lt;br /&gt;
The Lexmark printers at the picking stations are not setup as shared network printers from a Windows print server. The HP boxes are configured as TCPIP printers on the Lucy Jetforms server, but they are not shared so that users can print to them.&lt;br /&gt;
&lt;br /&gt;
===Office Laser Printers===&lt;br /&gt;
Lexmark printers are also used for departmental/workgroup printing. The current model is the MS417. These are [[Information Systems:Domain Printers (Windows Shared Printers)|shared through Windows]].&lt;br /&gt;
&lt;br /&gt;
===Consumables===&lt;br /&gt;
Replacing the consumables should be evidence based, the print quality or page count should be used to determine if the consumable actually needs to be changed. Resetting the maintenance counter is sometimes preferred as the consumable being low may be inaccurate. &lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
====Invoices not printing====&lt;br /&gt;
* If the Lexmark still does not print an invoice then power cycle the HP print server box at the picking station.  &lt;br /&gt;
* If that still doesn't work then check the network cable (of the print server). If the green lights on the HP print server box are not blinking rapidly then there is no valid network connection.&lt;br /&gt;
* There are spare JetDirect servers in the IT Lab (cage), but these are virtually unconfigurable (require XP). &lt;br /&gt;
====Bad print quality====&lt;br /&gt;
* Try another toner cartridge. Regardless of toner level, sometimes a replacement can improve/fix image quality. This is because the fuser is built into the toner cartridge for some of these high-volume workgroup printers, and a dirty fuser causes bad print quality&lt;br /&gt;
====Maintenance warning (fuser)====&lt;br /&gt;
This is more than likely referring to the fuser and is set to a fixed page counter. There are some tips to keep in mind:&lt;br /&gt;
* The printer can still function once this message is bypassed.&lt;br /&gt;
* The print quality may be fine despite this message. It is only a recommendation that is triggered by the page count.&lt;br /&gt;
* The maintenance counter can be reset.&lt;br /&gt;
* If you need to install a new fuser into the LP05 printer in accounting (C748 model) and the printer refuses to see a brand new fuser as a brand new fuser, reboot the printer while holding down the 2 and the 6 buttons on the front panel. The printer will boot into a special configuration menu where you have to reset the page counter on the new fuser. I suppose you could do this same trick when that printer prompts for a new fuser because that printer eats consumables like the fat Austrian kid on the Simpsons eats chocolate.&lt;br /&gt;
* To reset the T650/52 d/dn maintenance counter turn the power off, hold the check mark and the right arrow while turning on and wait for the 128mb to flash then wait for the config menu.Reset the maintenance clock from there. &lt;br /&gt;
====Paper jam (Lexmark)====&lt;br /&gt;
Specifically on the Lexmark printers, paper jam error messages can indicate worn paper pickup rollers, so this is the first thing to check (assuming that any actual paper jam has been ruled out). To service, you can remove the roller assembly, remove each &amp;quot;wheel&amp;quot;, or try to remove the rubber roller in-place (be careful, it's fragile). A quick test as per Lexmark docs is to turn the rubber inside out. If this is the case, it should start to pick up paper again, but replacement rollers should be purchased. Keep in mind that this can happen on the extended tray as well, which have their own assembly.&lt;br /&gt;
&lt;br /&gt;
[[Category:Printing]]&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Laser_Printers&amp;diff=14007</id>
		<title>Information Systems:Laser Printers</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Laser_Printers&amp;diff=14007"/>
		<updated>2021-07-20T00:28:48Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article is to keep track of the laser printers used in the Distribution Centre and Office ''which uniPHARM own.'' For the Xerox copiers, which are managed/leased, refer to [[Information Systems:Xerox printers|this article]]&lt;br /&gt;
==Inventory==&lt;br /&gt;
The following table summarizes our printer inventory:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Hostname !! Location !! Model !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| gm-printer || GM's office || Brother MFC-L3770CDW || -&lt;br /&gt;
|-&lt;br /&gt;
| it-lab-printer || IT Lab/Cage || Lexmark MS415DN || -&lt;br /&gt;
|-&lt;br /&gt;
| buying-dept-printer || Buying Department || Lexmark MS415DN || -&lt;br /&gt;
|-&lt;br /&gt;
| accounting-dept-printer || Accounting Department || Lexmark MS415DN || -&lt;br /&gt;
|-&lt;br /&gt;
| dc-office-printer || DC Office || Lexmark MS415DN || -&lt;br /&gt;
|-&lt;br /&gt;
| dc-large-down-invoice-printer || DC Large Down || Lexmark MS521DN || -&lt;br /&gt;
|-&lt;br /&gt;
| dc-fridge-invoice-printer || DC Fridge || Lexmark MS521DN || -&lt;br /&gt;
|-&lt;br /&gt;
| dc-narc-invoice-printer || DC Narc Cage || Lexmark MS521DN || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Distribution Centre Printers===&lt;br /&gt;
uniPHARM uses Lexmark laser printers for printing invoices at each picking station (warehouse zone) in the Distribution Centre. The current models are the MS521 and T652, which replaced the previous T640s and T630s (some still remain). While there is no restriction on the use of other brands of laser printers (HP for example) it is a best practice to keep the number of brands as close to 1 as possible so that users don't have to adjust to 10 different print drivers. The laser printer at each of the picking stations is connected to the HP JetDirect print servers with a parallel cable, but these are being transitioned to Ethernet connectivity. Keep in mind that the JetDirect-connected printers are not visible on the network and therefore are not &amp;quot;fully configured&amp;quot;. The advantage to this is that they can be interchanged easily e.g. with printers in other zones, but this method is being retired in favor of fully networked printers. &lt;br /&gt;
&lt;br /&gt;
The Lexmark printers at the picking stations are not setup as shared network printers from a Windows print server. The HP boxes are configured as TCPIP printers on the Lucy Jetforms server, but they are not shared so that users can print to them.&lt;br /&gt;
&lt;br /&gt;
===Office Laser Printers===&lt;br /&gt;
Lexmark printers are also used for departmental/workgroup printing. The current model is the MS417. These are [[Information Systems:Domain Printers (Windows Shared Printers)|shared through Windows]].&lt;br /&gt;
&lt;br /&gt;
===Consumables===&lt;br /&gt;
Replacing the consumables should be evidence based, the print quality or page count should be used to determine if the consumable actually needs to be changed. Resetting the maintenance counter is sometimes preferred as the consumable being low may be inaccurate. &lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
====Invoices not printing====&lt;br /&gt;
* If the Lexmark still does not print an invoice then power cycle the HP print server box at the picking station.  &lt;br /&gt;
* If that still doesn't work then check the network cable (of the print server). If the green lights on the HP print server box are not blinking rapidly then there is no valid network connection.&lt;br /&gt;
* There are spare JetDirect servers in the IT Lab (cage), but these are virtually unconfigurable (require XP). &lt;br /&gt;
====Bad print quality====&lt;br /&gt;
* Try another toner cartridge. Regardless of toner level, sometimes a replacement can improve/fix image quality. This is because the fuser is built into the toner cartridge for some of these high-volume workgroup printers, and a dirty fuser causes bad print quality&lt;br /&gt;
====Maintenance warning (fuser)====&lt;br /&gt;
This is more than likely referring to the fuser and is set to a fixed page counter. There are some tips to keep in mind:&lt;br /&gt;
* The printer can still function once this message is bypassed.&lt;br /&gt;
* The print quality may be fine despite this message. It is only a recommendation that is triggered by the page count.&lt;br /&gt;
* The maintenance counter can be reset.&lt;br /&gt;
* If you need to install a new fuser into the LP05 printer in accounting (C748 model) and the printer refuses to see a brand new fuser as a brand new fuser, reboot the printer while holding down the 2 and the 6 buttons on the front panel. The printer will boot into a special configuration menu where you have to reset the page counter on the new fuser. I suppose you could do this same trick when that printer prompts for a new fuser because that printer eats consumables like the fat Austrian kid on the Simpsons eats chocolate.&lt;br /&gt;
* To reset the T650/52 d/dn maintenance counter turn the power off, hold the check mark and the right arrow while turning on and wait for the 128mb to flash then wait for the config menu.Reset the maintenance clock from there. &lt;br /&gt;
====Paper jam====&lt;br /&gt;
Specifically on the Lexmark printers, paper jam error messages can indicate a worn roller, so this is the first thing to check (assuming that any actual paper jam has been ruled out). To service, you can remove the roller assembly, remove each &amp;quot;wheel&amp;quot;, or try to remove the rubber roller in-place (be careful, it's fragile). A quick test as per Lexmark docs is to turn the rubber inside out. If this is the case, it should start to pick up paper again, but replacement rollers should be purchased.&lt;br /&gt;
&lt;br /&gt;
[[Category:Printing]]&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
	<entry>
		<id>https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Laser_Printers&amp;diff=14006</id>
		<title>Information Systems:Laser Printers</title>
		<link rel="alternate" type="text/html" href="https://owl.unipharm.com/mediawiki/index.php?title=Information_Systems:Laser_Printers&amp;diff=14006"/>
		<updated>2021-07-20T00:28:41Z</updated>

		<summary type="html">&lt;p&gt;Norwinu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article is to keep track of the laser printers used in the Distribution Centre and Office '''which uniPHARM own.''' For the Xerox copiers, which are managed/leased, refer to [[Information Systems:Xerox printers|this article]]&lt;br /&gt;
==Inventory==&lt;br /&gt;
The following table summarizes our printer inventory:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Hostname !! Location !! Model !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| gm-printer || GM's office || Brother MFC-L3770CDW || -&lt;br /&gt;
|-&lt;br /&gt;
| it-lab-printer || IT Lab/Cage || Lexmark MS415DN || -&lt;br /&gt;
|-&lt;br /&gt;
| buying-dept-printer || Buying Department || Lexmark MS415DN || -&lt;br /&gt;
|-&lt;br /&gt;
| accounting-dept-printer || Accounting Department || Lexmark MS415DN || -&lt;br /&gt;
|-&lt;br /&gt;
| dc-office-printer || DC Office || Lexmark MS415DN || -&lt;br /&gt;
|-&lt;br /&gt;
| dc-large-down-invoice-printer || DC Large Down || Lexmark MS521DN || -&lt;br /&gt;
|-&lt;br /&gt;
| dc-fridge-invoice-printer || DC Fridge || Lexmark MS521DN || -&lt;br /&gt;
|-&lt;br /&gt;
| dc-narc-invoice-printer || DC Narc Cage || Lexmark MS521DN || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Distribution Centre Printers===&lt;br /&gt;
uniPHARM uses Lexmark laser printers for printing invoices at each picking station (warehouse zone) in the Distribution Centre. The current models are the MS521 and T652, which replaced the previous T640s and T630s (some still remain). While there is no restriction on the use of other brands of laser printers (HP for example) it is a best practice to keep the number of brands as close to 1 as possible so that users don't have to adjust to 10 different print drivers. The laser printer at each of the picking stations is connected to the HP JetDirect print servers with a parallel cable, but these are being transitioned to Ethernet connectivity. Keep in mind that the JetDirect-connected printers are not visible on the network and therefore are not &amp;quot;fully configured&amp;quot;. The advantage to this is that they can be interchanged easily e.g. with printers in other zones, but this method is being retired in favor of fully networked printers. &lt;br /&gt;
&lt;br /&gt;
The Lexmark printers at the picking stations are not setup as shared network printers from a Windows print server. The HP boxes are configured as TCPIP printers on the Lucy Jetforms server, but they are not shared so that users can print to them.&lt;br /&gt;
&lt;br /&gt;
===Office Laser Printers===&lt;br /&gt;
Lexmark printers are also used for departmental/workgroup printing. The current model is the MS417. These are [[Information Systems:Domain Printers (Windows Shared Printers)|shared through Windows]].&lt;br /&gt;
&lt;br /&gt;
===Consumables===&lt;br /&gt;
Replacing the consumables should be evidence based, the print quality or page count should be used to determine if the consumable actually needs to be changed. Resetting the maintenance counter is sometimes preferred as the consumable being low may be inaccurate. &lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
====Invoices not printing====&lt;br /&gt;
* If the Lexmark still does not print an invoice then power cycle the HP print server box at the picking station.  &lt;br /&gt;
* If that still doesn't work then check the network cable (of the print server). If the green lights on the HP print server box are not blinking rapidly then there is no valid network connection.&lt;br /&gt;
* There are spare JetDirect servers in the IT Lab (cage), but these are virtually unconfigurable (require XP). &lt;br /&gt;
====Bad print quality====&lt;br /&gt;
* Try another toner cartridge. Regardless of toner level, sometimes a replacement can improve/fix image quality. This is because the fuser is built into the toner cartridge for some of these high-volume workgroup printers, and a dirty fuser causes bad print quality&lt;br /&gt;
====Maintenance warning (fuser)====&lt;br /&gt;
This is more than likely referring to the fuser and is set to a fixed page counter. There are some tips to keep in mind:&lt;br /&gt;
* The printer can still function once this message is bypassed.&lt;br /&gt;
* The print quality may be fine despite this message. It is only a recommendation that is triggered by the page count.&lt;br /&gt;
* The maintenance counter can be reset.&lt;br /&gt;
* If you need to install a new fuser into the LP05 printer in accounting (C748 model) and the printer refuses to see a brand new fuser as a brand new fuser, reboot the printer while holding down the 2 and the 6 buttons on the front panel. The printer will boot into a special configuration menu where you have to reset the page counter on the new fuser. I suppose you could do this same trick when that printer prompts for a new fuser because that printer eats consumables like the fat Austrian kid on the Simpsons eats chocolate.&lt;br /&gt;
* To reset the T650/52 d/dn maintenance counter turn the power off, hold the check mark and the right arrow while turning on and wait for the 128mb to flash then wait for the config menu.Reset the maintenance clock from there. &lt;br /&gt;
====Paper jam====&lt;br /&gt;
Specifically on the Lexmark printers, paper jam error messages can indicate a worn roller, so this is the first thing to check (assuming that any actual paper jam has been ruled out). To service, you can remove the roller assembly, remove each &amp;quot;wheel&amp;quot;, or try to remove the rubber roller in-place (be careful, it's fragile). A quick test as per Lexmark docs is to turn the rubber inside out. If this is the case, it should start to pick up paper again, but replacement rollers should be purchased.&lt;br /&gt;
&lt;br /&gt;
[[Category:Printing]]&lt;/div&gt;</summary>
		<author><name>Norwinu</name></author>
	</entry>
</feed>