Microsoft Teams Premium: General Availability / RTM

The better way to meet — Microsoft Teams Premium

  • Microsoft 365 / Office 365 E3 and E5 licenses required
  • Teams Premium subscription (“add-on”)
  • AI capabilities powered by OpenAI’s GPT-3.5 chatbots (ChatGPT)
  • introductory price USD7/- till 30 Jun 2023

REFERENCES
Microsoft Teams Premium: Cut costs and add AI-powered productivity
Microsoft Teams Premium is getting a GPT boost via OpenAI
Microsoft injects AI into Teams so no one will ever forget what the meeting decided

@_leedesmond

PowerShell: What is My Chinese Zodiac Sign?

恭喜發財 。身體健康
Kung Hei Fat Choi*
Happy, Healthy & Prosperous Lunar Chinese New Year
(of the Rabbit)

農曆新兔年 大年初一 (2023-01-22)

########## PowerShell: What is My Chinese Zodiac Sign
#Copyright (c) All Rights Reserved 農曆新兔年 Lunar Chinese New Year of Rabbit 
#www.leedesmond.com 
#2023-01-22 Version: 1.0

param(
$MyBirthYear=(Get-Date).Year,[switch]$IncludeOutput
) 
$author ="www.leedesmond.com"; 
$scriptName="What_is_my_Chinese_Zodiac_Sign.ps1"; 
$date="2023-01-22"; 
$version="1.0";

function GetChineseZodiac()
{
param([int]$ref=1924,[int]$gap=12,$BirthYear)

[hashtable]$ChineseZodiac=[ordered]@{}; 
# 
$ChineseZodiac[1924]=[PSCustomObject]@{Year=-1;SignZmt="鼠";SignJyutPing="syu2"  ;Sign="Rat"    } #, 1936, 1948, 1960, 1972, 1984, 1996, 2008, 2020 
$ChineseZodiac[1925]=[PSCustomObject]@{Year=-1;SignZmt="牛";SignJyutPing="ngau4" ;Sign="Ox"     } #, 1937, 1949, 1961, 1973, 1985, 1997, 2009, 2021 
$ChineseZodiac[1926]=[PSCustomObject]@{Year=-1;SignZmt="虎";SignJyutPing="fu2"   ;Sign="Tiger"  } #, 1938, 1950, 1962, 1974, 1986, 1998, 2010, 2022 
$ChineseZodiac[1927]=[PSCustomObject]@{Year=-1;SignZmt="兎";SignJyutPing="tou3"  ;Sign="Rabbit" } #, 1939, 1951, 1963, 1975, 1987, 1999, 2011, 2023 
$ChineseZodiac[1928]=[PSCustomObject]@{Year=-1;SignZmt="龍";SignJyutPing="lung4" ;Sign="Dragon" } #, 1940, 1952, 1964, 1976, 1988, 2000, 2012, 2024 
$ChineseZodiac[1929]=[PSCustomObject]@{Year=-1;SignZmt="蛇";SignJyutPing="se4"   ;Sign="Snake"  } #, 1941, 1953, 1965, 1977, 1989, 2001, 2013, 2025 
$ChineseZodiac[1930]=[PSCustomObject]@{Year=-1;SignZmt="馬";SignJyutPing="maa5"  ;Sign="Horse"  } #, 1942, 1954, 1966, 1978, 1990, 2002, 2014, 2026 
$ChineseZodiac[1931]=[PSCustomObject]@{Year=-1;SignZmt="羊";SignJyutPing="joeng4";Sign="Goat"   } #, 1943, 1955, 1967, 1979, 1991, 2003, 2015, 2027 
$ChineseZodiac[1932]=[PSCustomObject]@{Year=-1;SignZmt="猴";SignJyutPing="hau4"  ;Sign="Monkey" } #, 1944, 1956, 1968, 1980, 1992, 2004, 2016, 2028 
$ChineseZodiac[1933]=[PSCustomObject]@{Year=-1;SignZmt="雞";SignJyutPing="gai1"  ;Sign="Rooster"} #, 1945, 1957, 1969, 1981, 1993, 2005, 2017, 2029 
$ChineseZodiac[1934]=[PSCustomObject]@{Year=-1;SignZmt="狗";SignJyutPing="gau2"  ;Sign="Dog"    } #, 1946, 1958, 1970, 1982, 1994, 2006, 2018, 2030 
$ChineseZodiac[1935]=[PSCustomObject]@{Year=-1;SignZmt="豬";SignJyutPing="zyu1"  ;Sign="Pig"    } #, 1947, 1959, 1971, 1983, 1995, 2007, 2019, 2031 

#calculate Chinese Zodiac year 
$result =$ref..($ref+11) | ? { $($BirthYear-$PSItem)%$gap -eq 0 } 
$result1=$ChineseZodiac[$result]; 
$result1.Year=$BirthYear; 

Write-Output $result1; 
} 

Write-Verbose "Script : $scriptName" -Verbose; 
Write-Verbose "Author : $author" -Verbose; 
Write-Verbose "Version: $date v$version" -Verbose; 

$result=GetChineseZodiac -BirthYear $MyBirthYear; 

Write-Verbose $($result|Out-String) -Verbose; 
if($IncludeOutput){Write-Output $result;} 

Write-Verbose "SignZmt=Traditional Chinese" -Verbose; 
Write-Verbose "SignJyutPing=粵拼 (jyut6 ping3) Cantonese romanization system (https://jyutping.org/)" -Verbose; 
Write-Verbose "" -Verbose;

#powershell #農曆新年 #兔年 #粵語

* gung1 hei2 faat3 coi4
(#粵拼 #JyutPing #Cantonese romanization systems)

PowerShell: Unattended key press (simulate not away presence status “mouse jiggle”)

########## PowerShell: Unattended key press
#simulate not away presence status available "mouse jiggle" or wiggle
#Copyright (c) All Rights Reserved
#www.leedesmond.com 
#2023-01-15 Version: 1.0

param($IntervalInSeconds=15,
    [string[]]$Keys=@('+{F15}','+{F14}','+{F13}'),[switch]$NoNewline)

function SimulateKeyPress()
{
param($IntervalInSeconds,[string[]]$Keys,[switch]$NoNewline)
    if($IntervalInSeconds -is [string] -or $IntervalInSeconds -le 0){ #-or $IntervalInSeconds -isnot [int] 
        Write-Host "Usage: script.ps1 -IntervalInSeconds N  #where N > 0";
        return;}
    $dateStart=Get-Date; $elapsed="00:00:00";
    Write-Host "Start: $dateStart";
    $wsh=New-Object -ComObject WScript.Shell;
    $KeysLen=$Keys.Length-1;
    while($IntervalInSeconds -gt 0){
        $index=Get-Random -Minimum 0 -Maximum $KeysLen;
        $wsh.SendKeys($Keys[$index]);
        #$logonUI=$false;
        try{Get-Process LogonUI -EA:Stop|Out-Null;$logonUI=$true;}catch{$logonUI=$false;}
        Write-Host `
            "($((Get-Date).ToString()) elapsed: $elapsed key: $($Keys[$index]) " `
            "IntervalInSeconds: $IntervalInSeconds LogonUI: $logonUI) " `
            -NoNewline:$NoNewline;
        Start-Sleep -Seconds $IntervalInSeconds;
        $dateNow=Get-Date;
        $elapsed=$dateNow-$dateStart;
        $elapsed="{0:d2}:{1:d2}:{2:d2}" -f $elapsed.Hours,$elapsed.Minutes,$elapsed.Seconds;
    }
} #SimulateKeyPress()

SimulateKeyPress -IntervalInSeconds $IntervalInSeconds -Keys $Keys -NoNewline:$NoNewline;

Microsoft 365 Basic

Microsoft 365 Basic is a new basic subscription tier scheduled to launch on 30th Jan 2023 and comes with features like:

REFERENCES
Microsoft 365 Basic gives you 100GB of OneDrive space (but no Office) for $2

* Word, Excel, PowerPoint, OneNote, Outlook

Microsoft Teams Premium Preview Now Available

Read the official announcement here and a quick third-party overview here*.

Microsoft Teams Premium—the better way to meet. Built on the familiar, all-in-one collaboration experience of Microsoft Teams, this new add-on offering makes every meeting from 1:1s to large meetings, to virtual appointments to webinars more personalized, intelligent, and secure.

Commercial customers can join this limited trial (one month free) over at the Microsoft 365 Admin Center where you may have to explicitly search for “teams premium“.

* note the changes and new features, including E2E end-to-end encryption only for meetings with 50 and more attendees

@_leedesmond

PowerShell: AzureAD vs. AzureADPreview Modules

Windows PowerShellAs of today, the current versions of the AzureAD and AzureADPreview PowerShell modules stand at 2.0.2.140 (2021-08-19) and 2.0.2.149 (2022-02-01) respectively.

This means that a number of useful cmdlets such as Get-AzureADPolicy and Get-AzureADDirectorySetting  will trigger similar errors as follows if the preview module is not installed and/or loaded via Import-Module in your (production) environment:

Get-AzureADDirectorySetting : The term ‘Get-AzureADDirectorySetting’ is not recognized as the name of a cmdlet,
function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the
path is correct and try again.
At line:1 char:1
+ Get-AzureADDirectorySetting
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Get-AzureADDirectorySetting:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException