June 13, 2026

June 8, 2026 | Dan

Using Your Samsung Galaxy Tablet as a Second Screen

Samsung Galaxy Tablet as a Second Screen

So you are travelling with your laptop but your are accustom to using two screens (you do work in an office occasionally LOL). Lucky for you you have an accompanying tablet. You want to use your Galaxy Tablet as a Second Screen. With a few easy steps you can!

I originally started looking at his this issue with a slightly different view using a third party software package that look pretty straight forward to use (https://youtu.be/JLNw2Xg8T40?si=dExRSGO2G_jC2Tiw) but after viewing the video and setting it up, it looked a bit cumbersome for an everyday user. So I sought a better way. Well this articles lays it out for you.

How to use your You want to use your Galaxy Tablet as a Second Screen

There is one caveat…..Both the Laptop and Tablet must be on the same Wi-Fi network for this to work.

  1. On your laptop, go to https://apps.microsoft.com/ and search for “Second Screen”
  • Once the app is installed, go to your Samsung Galaxy tablet and swipe down from the top right of the tablet while in portrait mode and tap second screen mode. You may have to swipe down a second time from the middle right to expose the second screen icon:
Galaxy Tablet as a Second Screen
  • Go back to the laptop and launch the second screen app . You can type “second screen” from the search box and it will find it.
  • With second screen mode already enabled on the tablet you should see it list in the app screen running on the laptop:
Galaxy Tablet as a Second Screen
  • Tap your listed tablet and it will connect as a second monitor to your laptop:

Display and use Tips for Galaxy Tablet as a Second Screen

To be able to use a second screen properly – your Galaxy Tablet as a Second Screen -(these are my suggestions):

Extend Display

  1. Right click on the laptop desktop and choose “Display Settings”:
Galaxy Tablet as a Second Screen
  • In Display Settings, choose “Extend These Displays” from the dropdown menu:
Galaxy Tablet as a Second Screen
  • Select Keep Changes when it asks you.

Making Sure Each Monitor has the Same Scale

  1. With the monitors now separate, click on each one and scroll down to the scale and input section and make sure they are set to the identical scale (start with 150% for both). Whatever you choose, the scale MUST BE THE SAME for each monitor:
Galaxy Tablet as a Second Screen
Galaxy Tablet as a Second Screen
Galaxy Tablet as a Second Screen
Galaxy Tablet as a Second Screen

You are all set up for your Galaxy Tablet as a Second Screen! This is better than troubleshooting a laptop dock!

Share: Facebook Twitter Linkedin
April 29, 2026 | Dan

Use MS Graph to Create a User Signature

MS Graph to Create a User Signature

You can use MS Graph to create a user signature. I had written an article about how to deal with signatures in various versions of Outlook . These are fine if you are a small organization. If you are a large organization, you can use Code Two or Exclaimer to do the job. But what if your are in between? This article will show you how to generate a signature using MSGraph and deploy it to a user with ease. Read on!

Steps in Using MS Graph to Create a User Signature

I had originally wrote an article on how to do this using VBSrcipt, however, this will be phased out with later versions of Windows and Windows server. It has served its purpose. Also, it is a little Phishy now (LOL).

Make sure you have permissions to have the scope “User.Read.All” is MS Graph and you can at least administer Entra and you are ready to start.

First, you will need to connect to Microsoft Graph:

Connect-MgGraph -Scopes "User.Read.All"

Then, you need to load the data you get from Entra to create the signature into variables. I have included First Name, Last Name, Job Title, Business Phone, Mobile Phone and Email.

$user = Get-MgUser -UserId "user@company.com" -Property givenName,surname,JobTitle,BusinessPhones,MobilePhone
$firstName = $user.givenName
$lastName = $user.surname
$jobTitle = $user.JobTitle
$businessPhone = $user.BusinessPhones[0]
$mobilePhone = $user.MobilePhone
$email = $user.email

Additionally, you need to load an html document into a variable like this:

$htmlContent = @"
<html>
<body>
<p>$FirstName $LastName</p>
<p>$JobTitle</p>
<p>$BusinessPhone</p>
<p>$MobilePhone</p>
<p>$email</p>
</body>
</html>
"@

Lastly, You create an HTML file with the above information:

Set-Content -Path "C:\Your\Path\Here\Signature.html" -Value $htmlContent

It is easy to use MS Graph to Create User a Signature. The HTML format can be a simple or as complex as you like. I personally like to use an HTML file editing Program to crate the design of the HTML that I like and then put the variables above into it and then paste it into the $htmlcontent variable.

You then can forward this file to your user in question and have them copy and paste it into there Outlook Signature. I find this a good in between when you use MS Graph to Create a User Signature!

Share: Facebook Twitter Linkedin
March 6, 2026 | Dan

Get Chat Transcripts with Power Automate

Get Chat Transcripts with Power Automate

We have all been there. You have told your users the best way to get support is to email the helpdesk, but they insist on sending a message directly to you on Microsoft Teams. This post shows you how to Get Chat Transcripts with Power Automate.

I showed you in an earlier post how to set up an auto-reply with power automate when a user sends a Microsoft Teams message to an unmonitored Help Desk client.

Why Use Get Chat Transcripts with Power Automate?

Without automation, you end up cutting and pasting an awkward trail of messages from your teams account to your Helpdesk software or an email. With the mismatched formatting between the two systems. You will be spending more time formatting the request than working on it.

How to Create the Power Automate Flow

  1. Go to https://make.powerautomate.com/ and sign in.
  2. On the left-hand side click “+Create”
  3. Choose Instant Cloud flow.
  4. Give your flow a name and select “Manually Trigger a flow”.
  5. Click Create.
  6. You will be presented flow design screen.

I prefer the classic design screen, but you are more than welcome to keep the new designer toggle on. For this post I will be using the classic designer.

I will show you the complete flow first and then I will break it down as best I can.

The Entire Flow

Get Chat Transcripts with Power Automate

Yes, it seems like a long flow to do a simple task. Just because it seems simple doesn’t mean it is. It is just the way Power Automate rolls! Let me show you…..

Get Chat Transcripts with Power Automate Broken Down

This very first step already does a lot. First, you add “for selected messages” and then edit its adaptive card:

Get Chat Transcripts with Power Automate

We are going to collect some input to help extract as much information as possible from the chat transcript. It is a very simple adaptive card. All we want to know is what subject we want to give to this chat transcript (usually a description of what the issue is) and how many chat messages you want to include total (including the selected chat message).

Get Chat Transcripts with Power Automate

Now, you need to load the input collected into variables to be used by the flow:

Get Chat Transcripts with Power Automate

The variables you created from the adaptive cards are now part of the flows dynamic content and can be loaded into other parts of the flow. Once the variables are loaded, the next step is to get the URL of 1:1 chat. This is where the fun begins. I will show the screen shot and then explain each step:

Get Chat Transcripts with Power Automate

The following are all variables that use the “initialize variable” step.

ChatUrlBeforeParse – This the URL link of the team’s message. If you right-click on any message in your chats and choose “copy link”, you will get this link. The first step “for a selected message” has the dynamic content of “Message Link” which we will use to get the entire message link. We will parse it out to get the information we need to create the rest of the flow.

BeginningOfUrl – This is a static variable. All 1:1 chat links begin with https://graph.microsoft.com/v1.0/me/chats/

MiddleOfUrl – When we initialize this variable, we don’t use dynamic content but an expression (substring(variables(‘ChatUrlBeforeParse’),38,91)). This effectively gets the ChatID of the message we want get the transcript from. This is the part of the URL from “19:” to “@unq.gbl.spaces”

NumOfMessage – This is a variable that is needed to build the finished URL and it is the variable form the Adaptive card about loaded into a variable that can be used by final step “AssembeldUrl” which we will talk about soon.

EndOfUrl – When we initialize this variable, we don’t use dynamic content but an expression (concat(‘/messages?$top=’, variables(‘NumOfMessages’)), this finished the parts of the URL we need to extract the transcript.

AssembledUrl – When we initialize this variable, we don’t use dynamic content but an expression (concat(variables(‘BeginningOfUrl’), variables(‘MiddleOfUrl’), variables(‘EndOfUrl’)). The URL we need is finally put together and is ready for our next step.

Send a Microsoft Graph HTTP request

Get Chat Transcripts with Power Automate

In this step, you add “send a Microsoft Graph HTTP request” as a step and us the variable “AssembledURL” as the value for you URI

Parse JSON to Get Chat Transcripts with Power Automate

Add the “Parse JSON” step next:

Get Chat Transcripts with Power Automate

The dynamic content “Body” will be available for you to put into the content field. For the Schema click generate from sample and use this text as a sample schema:

{
    "type": "object",
    "properties": {
        "@@odata.context": {
            "type": "string"
        },
        "@@odata.count": {
            "type": "integer"
        },
        "@@odata.nextLink": {
            "type": "string"
        },
        "@@microsoft.graph.tips": {
            "type": "string"
        },
        "value": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "replyToId": {},
                    "etag": {
                        "type": "string"
                    },
                    "messageType": {
                        "type": "string"
                    },
                    "createdDateTime": {
                        "type": "string"
                    },
                    "lastModifiedDateTime": {
                        "type": "string"
                    },
                    "lastEditedDateTime": {},
                    "deletedDateTime": {},
                    "subject": {},
                    "summary": {},
                    "chatId": {
                        "type": "string"
                    },
                    "importance": {
                        "type": "string"
                    },
                    "locale": {
                        "type": "string"
                    },
                    "webUrl": {},
                    "channelIdentity": {},
                    "policyViolation": {},
                    "eventDetail": {},
                    "from": {
                        "type": "object",
                        "properties": {
                            "application": {},
                            "device": {},
                            "user": {
                                "type": "object",
                                "properties": {
                                    "@@odata.type": {
                                        "type": "string"
                                    },
                                    "id": {
                                        "type": "string"
                                    },
                                    "displayName": {
                                        "type": "string"
                                    },
                                    "userIdentityType": {
                                        "type": "string"
                                    },
                                    "tenantId": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    },
                    "body": {
                        "type": "object",
                        "properties": {
                            "contentType": {
                                "type": "string"
                            },
                            "content": {
                                "type": "string"
                            }
                        }
                    },
                    "attachments": {
                        "type": "array"
                    },
                    "mentions": {
                        "type": "array"
                    },
                    "reactions": {
                        "type": "array"
                    }
                },
                "required": [
                    "id",
                    "replyToId",
                    "etag",
                    "messageType",
                    "createdDateTime",
                    "lastModifiedDateTime",
                    "lastEditedDateTime",
                    "deletedDateTime",
                    "subject",
                    "summary",
                    "chatId",
                    "importance",
                    "locale",
                    "webUrl",
                    "channelIdentity",
                    "policyViolation",
                    "eventDetail",
                    "from",
                    "body",
                    "attachments",
                    "mentions",
                    "reactions"
                ]
            }
        }
    }
}

Load Array into String

If you want to Get Chat Transcripts with Power Automate you will need to get the array data created by the parse JSON step and load it into a text variable that you can use to send as part of an email.

To do that we need to first initialize a variable outside of an “apply to each” step:

Get Chat Transcripts with Power Automate

What the “Apply to each” step does is iterate through each item in the “value” of the JSON array (the entire JSON of the chat we specified from our Team Graph HTTP request) and grabs each “content” value and concatenates to our “AllResultString” variable. We are in the home stretch!

Preparing to Send the Email

On the other side of the “Apply to each step”, we have the completed variable load AllResultString in a Variable called AssembleChatText (We will need this to put in the email we are going to send:

Get Chat Transcripts with Power Automate

The next steps get the users profile and mimic a forwarded email:

Get Chat Transcripts with Power Automate

It uses the following:

To – email you specify (normally someone in your organization)

From – the user who’s chat selection you will choose).

Subject – The Subject you specified from the adaptive card at the beginning of the flow.

Chat Transcript Details – The outputs for the AssembledChatText variable

How it Works – Get Chat Transcripts with Power Automate

Now that you have the flow built, let’s see Get Chat Transcript with Power Automate in action. Go to the most recent chat exchange you have had with someone. Click the three dots (you might need to click “More actions) and choose your flow:

Get Chat Transcripts with Power Automate

The adaptive card will show and gather the necessary information to build the graph command for the chat transcript and the subject you would like for the email forward.

Get Chat Transcripts with Power Automate

An email will be sent to the address you specify in the flow with the number of chats you have specified.

How it Works

  1. You select first chat (from the user who initiated the request, NOT YOU) and then select “more actions” and launch the flow.
  2. The adaptive card shows.
  3. You enter the Subject for the request.
  4. You enter the number of messages you want. This includes the initial chat message you chose.
  5. Click submit.
  6. An email is sent to the email you specified in the flow with the chat transcript details.

Limitations of the Flow

You need to remember that Power Automate is a low code / no code solution to work process automation. Please do not expect it to be as robust as a custom coded solution using lower-level languages.

It only works if you send the most recent 1:1 chat exchange. It uses the MS Teams Graph query (?$top=X) to grab the number of chats you want from the most recent exchange. So, if you want to grab an exchange from before that it won’t work.

What will happen is if you pick a chat from say a day ago and want to extract the last three exchanges you will get the last three most recent exchanges from your 1:1 chat with this user. It won’t make sense.

This flow is for a specific use case. You have a recent chat exchange with a user and want to capture the transcript to email. That’s it.

Also, you can’t cherry pick messages in the chat. For example, you want to send a chat on email that has 7 messages in it, but you only want messages 1,3,5 and 7. It won’t do that. The best it could do is leave out X number of chats near the end of the exchange. So instead of specifying 7 messages in the adaptive card, you could specify 5, leaving out the last two if you did not want them in the email.

Conclusion of Get Chat Transcripts with Power Automate

So, you finally see how you can Get Chat Transcripts with Power Automate. Is it worth it? Of course it is. It always takes time to develop automation. Once it is in use you and your department will wonder how you got on without it! Power Automate is a Microsoft product that actually makes sense. Their ecosystem is getting very complicated and this helps out!

Share: Facebook Twitter Linkedin
January 19, 2026 | Dan

Can’t Login to Teams

Can't Login to Teams

Thanks to botched Windows 11 updates you may find when starting work in the morning you can’t login to Teams.

A lot of times you encounter this error right before you need to get into a meeting. I would keep this article handy for just such an emergency. It will most definitely help you out ! At least you will not be late for your meeting!!

Windows 11 has changed many things. Eventually, you will get used to it but I am sorry, getting used to a heavy flawed update process is not one of them.

It could be a lot more than Microsoft teams but this article is only going to tackle one Windows 11 problem at a time…..

How to fix Can’t Login to Teams

  1. Try rebooting your computer.
  2. If that doesn’t work, search “Settings” in the search bar at the bottom of the screen then go to apps, search for “Teams” and then go to “Advanced Settings”:

Can't Login to Teams

3. Once in advanced settings for Teams, scroll down until you see “reset”.

Can't Login to Teams
  1. Click that and it will reset your teams and get you to login again.

If Using the Desktop app Doesn’t Work

If you are still having, you can use the web version here: https://teams.microsoft.com or use Linux instead :p

Share: Facebook Twitter Linkedin
November 12, 2025 | Dan

Windows 11: Where Did Run as Go?

Where Did Run as Go

Well, Windows 11 has done it again. Where Did Run as go? Never mind the wonky AI or the complete invasion of privacy. They can’t even get the basics of day-to-day Desktop administration right.

Lets not even talk about what they are doing to some of their flagship software…

I will give you an anecdote. I received a request from a user to install a piece of software that required administration privileges. When the machine was Windows 10 it was as easy as right clicking on the EXE file, selecting “Run As” and go about my merry way installing the software. But the machine is now running Windows 11…..

Why Did Windows 11 Remove Run as

They claim, “Windows 11 did not remove “Run as”. Instead, recent updates changed how the “Run as” command is accessed, often by removing it from the default context menu and sometimes by hiding the “Run as different user” option. Microsoft’s focus on security, especially with the new Administrator protection feature and the introduction of the Sudo command, is likely the driving force behind these changes, as they aim to enforce least privilege and reduce attack vectors. “

If it is not removed, it is hidden. As if an IT professional doesn’t have enough work. We need to spend more time doing something that took no time at all before. That was sarcasm.

Where Did Run as Go and How to get it Back

So, I guess I should say Windows 11 has “hidden” the “Run as Command”. To get it back, you need to go to Settings / System /For Developers and turn Developer Mode on:

Where Did Run as Go

Then you must go to Settings / System /For Developers / File Explorer and turn on “Show Option to run as Different User in Start”:

Where Did Run as Go

Then, hold the shift key as you are right clicking on the EXE file you wish to run as a different user and the Run As option will reappear:

Run the program and voila! You got you functionality back.

Something that used to take 15 seconds now takes 5-10 minutes to complete. Way to go Windows…

Where Did Run as Go
Share: Facebook Twitter Linkedin
October 27, 2025 | Dan

Reset Outlook App Mobile

Reset Outlook App Mobile

I am sure when you enroll a phone in InTune all the apps you deploy are functioning. Part of the process when you enroll a phone is to make sure all of the apps are working. Upon initial enrollment all apps should work out of the box. In time tough, some of the apps will start malfunctioning. One of them will be email or Outlook. You will probably have to Reset Outlook App Mobile. It is almost inevitable.

What Causes This?

This is a good question. I find that when users are travelling and come back home to their home network and occasionally things go awry. A reset actually works well. Other times, it is a corruption in the synchronization process that causes this. Either way, a reset usually does the trick.

Of course, if that doesn’t work you can always delete and re-add the account. More on that later.

How to Reset Outlook App Mobile

This is how you do it….

Open Outlook. Tap your account picture and then the settings gear.

Reset Outlook App Mobile

Tap Accounts.

Reset Outlook App Mobile

Tap Your Account listing.

Reset Outlook App Mobile

Scroll down until you see “Reset Account”. Tap it.

Reset Outlook App Mobile

Tap continue to reset your Outlook account.

Reset Outlook App Mobile

Reboot your phone and connect to Outlook. A Good practice is to re-boot the phone afterward and reload the Outlook app. It should start syncing again.

Doing this should clear out any corruption the the above cause may have had something to do with.

Users have come to rely on Outlook mobile on their phone and if it not working as expected, be sure to get a help desk call. It is very important to their workflow and the last thing they need is to be slowed down.

Using the steps above should resolve their problem and get them working as soon as possible. Worst case, if this doesn’t work, deleting and re-creating the account will get the synchronization for sure.

Share: Facebook Twitter Linkedin
October 10, 2025 | Dan

Sync to Samsung Cloud Missing Intune Enrolled Device

Sync to Samsung Cloud missing

Users are complaining about Sync to Samsung Cloud missing on their Samsung Notes App. You have set up either an Android Enterprise corporate owned fully managed (COBO) or an Android Enterprise corporate owned work profile (COPE) and deployed the Samsung Notes App to the devices….

Why are they not syncing?

What Sync to Samsung Cloud Missing Looks Like

When you deploy this app through your Google Managed Play store as an approved app, for security purposes, the app does not allow syncing to a cloud (Who wants Microsoft info in the Samsung Cloud, right?). Ultimately, sync to Samsung Cloud is missing.

So, when you go into the settings of the Samsung Note this is what you see:

Sync to Samsung Cloud missing

When your users want to see this:

Sync to Samsung Cloud missing

Read below to see how you can fix sync to Samsung Cloud missing.

How to Enable Sync to Samsung Cloud on an Intune Enrolled Device

I have written an article on how to do this with Samsung Smart Switch and it essentially the same process, however, you need to enable the settings specific to Samsung Notes.

First you will need to create an app configuration. Go to Manage Apps / Configuration in the Intune portal and Select Create / Managed Devices. You will go through the wizard of creating an App Configuration.

Give it a name and Description. In this case it could be “Allow Samsung Notes Sync with Cloud”, etc. Choose the platform as Android Enterprise and the profile types you want to apply it to are Fully Managed and Corporate Work Profile Only. You can Apply to all profile types if you want but this should take care of the profile types that matter. Select the target app as Samsung Notes from the Associated App fly-out on the right and then click next:

Sync to Samsung Cloud missing

Next, you will be able to configure the setting so sync to Samsung cloud is missing goes away! In the next screen Choose “Use Configuration Designer “from the drop-down field and then click add. There is only one setting you can pick anyway. It is “Allow Note Sync” and you can check it from the configuration Fly out on the right. Click OK and then Next:

Sync to Samsung Cloud missing

From Here you can add which Entra Device Group to include or exclude from this App Configuration:

Sync to Samsung Cloud missing

All you have to do is click “Create” on the last screen and your App Configuration for Samsung Notes is created. The Device group you chose in the previous steps in the configuration setup will have the new configuration pushed out to their device as soon as they check in!

The Sync to Samsung cloud missing mystery is solved!

Share: Facebook Twitter Linkedin
September 19, 2025 | Dan

High Volume Emails in Exchange Online

High Volume Emails

It has been a bit since I posted. When you are in IT you are involved in a lot of projects apart from day to day work, but here is a good one I came across in my work. Dealing with High Volume Emails through Exchange online.

What Would Use High Volume Emails?

That s a very good question. In an organization you could have an individual who sends a lot of email from their inbox, a device like a scanner or copier that send to recipients through email to LOB Apps that send out email notifications as part of the apps process.

Microsoft has done what they can enabling sending High Volume Email email through Exchange but they have to be careful not to clog up the system. Especially if it gets compromised. They have default limits in place.

Exchange Sending limits

The following limits have been put in place for mailboxes by default. They are:

Recipient Rate Limit: 

This is a rolling 24-hour limit on the total number of recipients a mailbox can send to. 

  • A typical limit is 10,000 external recipients per day. 
  • This limit includes both internal and external recipients. 
  • For trial tenants, the limit is 5,000 external recipients. 

Recipient Limit: 

This is the maximum number of unique recipients an email message can have. 

This limit is often set at 1,000 recipients per message. 

Message Rate Limit

This limits the number of emails a single mailbox can send per minute. 

  • The default is 30 messages per minute. 
  • Emails that exceed this limit are throttled and delayed. 

Why These Limits Exist in High volume Email

  • Preventing Bulk and Spam Email: Exchange Online is designed for email and collaboration, not for bulk commercial email campaigns. These limits help prevent abuse and maintain service quality for all users. 
  • Protecting Your Organization: The recipient rate limit is a safeguard against compromised accounts from being used to send large volumes of spam and potentially damaging your organization’s reputation. 

What Happens When You Hit a Limit

  • If you hit the recipient rate limit, you will receive Non-Delivery Reports (NDRs) for your undelivered messages. 
  • You’ll need to wait for the 24-hour period to pass before you can send more messages to that recipient group. 

What can you do to Send High Volume Email?

Microsoft recommends using a specialized third-party provider for legitimate High Volume emails. Examples include Mailchimp or Constant Contact are built for sending high volumes of email and are much more suitable for marketing and bulk communications.

However there is a new service in preview by Microsoft you can try called High Volume Email. It looks to be in its infancy but it has some functionality. Let me lay it out for you.

First, you will need to go the new High Volume Email section in the Exchange Online Admin portal. From their, you will need to add an HVE Account. You can also use PowerShell to add an HVE account. Once you have done that, you can use the following info for you Device or App to send email:

Printer/Application settingValue
Server/smart hostsmtp-hve.office365.com
PortPort 587
TLS/StartTLSEnabled
Username/email address and passwordSign in with credentials of HVE account

Limitations or High Volume Email

You still may need to go to third party services if the following limitations do not fit your needs:

High Volume email exchange is limited by sender reputation risks, strict rate limits for external recipients (e.g., 2,000 per day per tenant in Exchange Online), restrictions on sending to external domains, and requirements for updated authentication methods and potential application code changes.

So it looks like you have options!

Share: Facebook Twitter Linkedin