PowerShell을 사용하여 UKG Pro Workforce Management 대한 Shifts 연결 관리

개요

UKG Pro Workforce Management용 Microsoft Teams Shifts 커넥터를 사용하면 Microsoft Teams의 Shifts 앱을 UKG Pro Workforce Management(UKG Pro WFM)와 통합할 수 있습니다. 최전방 직원은 Shifts 내에서 UKG Pro WFM 일정을 원활하게 보고 관리할 수 있습니다.

Microsoft 365 관리 센터 또는 PowerShell에서 Shifts 커넥터 마법사를 사용하여 연결을 설정할 수 있습니다. 연결이 설정되면 Shifts 커넥터 PowerShell cmdlet을 사용하여 관리할 수 있습니다.

이 문서에서는 PowerShell을 사용하여 다음을 수행하는 방법을 설명합니다.

이 문서에서는 마법사 또는 PowerShell을 사용하여 UKG Pro WFM 대한 연결을 이미 설정했음을 가정합니다.

참고

Microsoft 365 관리 센터 연결을 관리할 수도 있습니다. 예를 들어 상태 상태 검사 마법사에 액세스하여 연결 설정을 변경할 수 있습니다. 자세한 내용은 Microsoft 365 관리 센터 사용하여 UKG Pro Workforce Management 대한 Shifts 연결 관리를 참조하세요.

시작하기 전에

이 문서의 단계를 완료하려면 Microsoft 365 전역 관리자 또는 Shifts 커넥터 관리자여야 합니다.

Shifts 커넥터 관리자 역할은 Microsoft Entra ID 만들고 사용자에게 할당하는 사용자 지정 역할입니다. 역할 이름은 "Shifts connector admin"이어야 합니다. 역할에 특정 권한이 없어도 되지만 생성할 때 최소한 하나의 권한을 설정해야 합니다. 서비스는 권한이 아니라 사용자에 대한 역할의 존재 여부에 의존합니다.

자세한 내용은 Microsoft Entra ID 사용자 지정 역할 만들기 및 할당사용자에게 Microsoft Entra 역할 할당을 참조하세요. 역할이 생성되어 사용자에게 적용되는 데 최대 24시간이 걸릴 수 있습니다.

환경 설정

참고

이 문서의 명령 또는 스크립트를 실행하기 전에 다음 단계에 따라 환경을 설정해야 합니다.

  1. PowerShell 버전 7 이상을 설치합니다. 단계별 지침은 Windows에 PowerShell 설치를 참조하세요.

  2. 관리자 모드에서 PowerShell을 실행합니다.

  3. Microsoft Graph PowerShell 모듈을 설치합니다.

    Install-Module Microsoft.Graph
    Import-Module Microsoft.Graph
    

    버전 1.6.1 이상인지 확인하십시오.

    Get-InstalledModule Microsoft.Graph 
    
  4. Teams Preview PowerShell 모듈을 설치합니다.

    Install-Module -Name MicrosoftTeams -AllowPrerelease -Force
    Import-Module MicrosoftTeams 
    

    버전이 4.7.0 이상이고 Shifts 커넥터 cmdlet이 포함되어 있는지 확인합니다.

    Get-Command -Module MicrosoftTeams -Name *teamsshiftsconnection* 
    
  5. 스크립트를 실행할 때 오류가 발생하면 종료되도록 PowerShell을 설정합니다.

    $ErrorActionPreference = "Stop" 
    
  6. Windows에서 실행할 스크립트를 활성화합니다.

    Set-ExecutionPolicy bypass 
    
  1. Teams에 연결합니다.

    Connect-MicrosoftTeams
    

    메시지가 표시되면 관리자 자격 증명을 사용하여 로그인합니다. 이제 이 문서의 스크립트와 Shifts 커넥터 cmdlet을 실행하도록 설정되었습니다.

연결 설정 상태 확인

전자 메일에서 받은 작업 ID를 사용하여 설정한 연결의 상태 검사 다음 단계를 수행합니다.

  1. 환경을 설정합니다(아직 설정하지 않은 경우).

  2. 다음 명령을 실행합니다. 이 명령은 연결에 대한 팀 매핑의 전반적인 상태를 제공합니다.

    Get-CsTeamsShiftsConnectionOperation -OperationId <YourOperationId>
    

자세한 내용은 Get-CsTeamsShiftsConnectionOperation을 참조하세요.

연결에 대한 오류 보고서 보기

연결에 대한 오류 세부 정보를 표시하는 보고서를 실행할 수 있습니다. 보고서에는 성공하고 실패한 팀 및 사용자 매핑이 나열됩니다. 또한 연결과 관련된 계정에 대한 문제의 정보도 제공합니다.

  1. 환경을 설정합니다(아직 설정하지 않은 경우).

  2. 연결에 대한 오류 보고서 목록을 가져옵니다.

    Get-CsTeamsShiftsConnectionErrorReport -ConnectorInstanceId <ConnectorInstanceId>
    
  3. 특정 오류 보고서를 보려면 다음 명령을 실행합니다.

    Get-CsTeamsShiftsConnectionErrorReport -ErrorReportId <ErrorReportId>
    

자세한 내용은 Get-CsTeamsShiftsConnectionErrorReport를 참조하세요.

참고

오류 메시지의 전체 목록은 이 문서의 뒷부분에 있는 오류 메시지 목록을 참조하세요.

연결 오류 해결

사용자 매핑 오류

WFM instance 한 명 이상의 사용자가 Teams에서 매핑된 팀의 구성원이 아닌 경우 사용자 매핑 오류가 발생할 수 있습니다. 이 문제를 resolve 매핑된 팀의 사용자가 WFM instance 사용자와 일치하는지 확인합니다.

매핑되지 않은 사용자의 세부 정보를 보려면 환경을 설정한 다음(아직 없는 경우), 다음 스크립트를 실행합니다.

#View sync errors script
Write-Host "View sync errors"
Start-Sleep 1

#Ensure Teams module is of version x
Write-Host "Checking Teams module version"
try {
    Get-InstalledModule -Name "MicrosoftTeams" -MinimumVersion 4.7.0
} catch {
    throw
}

#List connection instances available
Write-Host "Listing connection instances"
$InstanceList = Get-CsTeamsShiftsConnectionInstance
write $InstanceList

#Get an instance
if ($InstanceList.Count -gt 0){
    $InstanceId = Read-Host -Prompt 'Input the instance ID that you want to retrieve user sync results from'
}
else {
    throw "Instance list is empty"
}

#Get a list of the mappings
Write-Host "Listing team mappings"
$mappings = Get-CsTeamsShiftsConnectionTeamMap -ConnectorInstanceId $InstanceId
write $mappings

#For each mapping, retrieve the failed mappings
ForEach ($mapping in $mappings){
    $teamsTeamId = $mapping.TeamId
    $wfmTeamId = $mapping.WfmTeamId
    Write-Host "Failed mapped users in the mapping of ${teamsTeamId} and ${wfmTeamId}:"
    $userSyncResult = Get-CsTeamsShiftsConnectionSyncResult -ConnectorInstanceId $InstanceId -TeamId $teamsTeamId
    Write-Host "Failed AAD users:"
    write $userSyncResult.FailedAadUser
    Write-Host "Failed WFM users:"
    write $userSyncResult.FailedWfmUser
}

계정 권한 부여 오류

WFM 서비스 계정 또는 Microsoft 365 시스템 계정 자격 증명이 잘못되었거나 필요한 권한이 없는 경우 계정 권한 부여 오류가 발생할 수 있습니다.

연결에 대한 WFM 서비스 계정 또는 Microsoft 365 시스템 계정 자격 증명을 변경하려면 Set-CsTeamsShiftsConnectionInstance cmdlet을 실행하거나 이 문서의 연결 설정 변경 섹션에서 PowerShell 스크립트를 사용할 수 있습니다.

연결 설정 변경

이 스크립트를 사용하여 연결 설정을 변경합니다. 변경할 수 있는 설정에는 WFM 서비스 계정 및 암호, Microsoft 365 시스템 계정, 팀 매핑 및 동기화 설정이 포함됩니다.

동기화 설정에는 동기화 빈도(분)와 WFM 시스템과 Shifts 간에 동기화되는 일정 데이터가 포함됩니다. 일정 데이터는 Get-CsTeamsShiftsConnectionConnector를 실행하여 볼 수 있는 다음 매개 변수에 정의되어 있습니다.

  • enabledConnectorScenarios 매개 변수는 WFM 시스템에서 Shifts로 동기화되는 데이터를 정의합니다. 옵션은 , , SwapRequest, OfferShiftRequest, UserShiftPreferencesOpenShift, OpenShiftRequest, , TimeOff, TimeOffRequest입니다Shift.

  • enabledWfiScenarios 매개 변수는 Shifts에서 WFM 시스템으로 동기화되는 데이터를 정의합니다. 옵션은 , , OfferShiftRequestOpenShiftRequest, TimeOffRequest, UserShiftPreferences입니다SwapRequest.

    참고

    Shifts와 WFM 시스템 간에 열린 교대 근무, 열린 교대 근무 요청, 교환 요청 또는 시간 쉬는 요청을 동기화하지 않도록 선택하는 경우 Shifts에서 기능을 숨기기 위해 수행해야 하는 또 다른 단계가 있습니다. 이 스크립트를 실행한 후 이 문서의 뒷부분에 있는 미지정 교대 근무, 미해결 교대 근무 요청, 요청 교환, 휴가 요청 비활성화 섹션의 단계를 수행해야 합니다.

    중요

    변경하지 않으려는 설정의 경우 스크립트에서 메시지가 표시되면 원래 설정을 다시 입력해야 합니다.

환경을 설정한 다음(아직 설치하지 않은 경우), 다음 스크립트를 실행합니다.

#Update connector instance and mapping script
Write-Host "Update Connector instance and mapping"
Start-Sleep 1

#Ensure Teams module is at least version x
Write-Host "Checking Teams module version"
try {
    Get-InstalledModule -Name "MicrosoftTeams" -MinimumVersion 4.7.0
} catch {
    throw
}

#Connect to MS Graph
Connect-MgGraph -Scopes "User.Read.All","Group.ReadWrite.All"

#List connector types available (comment out if not implemented for preview)
Write-Host "Listing connector types available"
$UkgId = "95BF2848-2DDA-4425-B0EE-D62AEED4C0A0"
$connectors = Get-CsTeamsShiftsConnectionConnector
write $connectors
$Ukg = $connectors | where {$_.Id -match $UkgId}

#List connection instances available
Write-Host "Listing connection instances available"
$InstanceList = Get-CsTeamsShiftsConnectionInstance | where {$_.ConnectorId -match $UkgId}
write $InstanceList

#Prompt for the WFM username and password
$WfmUserName = Read-Host -Prompt 'Input your WFM user name'
$WfmPwd = Read-Host -Prompt 'Input your WFM password' -AsSecureString
$plainPwd =[Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($WfmPwd))

#Get the instance ID
$InstanceId = Read-Host -Prompt 'Input the instance ID that you want to update'
$Instance = Get-CsTeamsShiftsConnectionInstance -ConnectorInstanceId $InstanceId
$Etag = $Instance.etag

#Change sync setting
$designatorName = Read-Host -Prompt "Input designated actor's user name"
$designator = Get-MgUser -UserId $designatorName
$teamsUserId = $designator.Id
$UpdatedInstanceName = Read-Host -Prompt 'Input new connection instance name'
$updatedConnectorScenarioString = Read-Host -Prompt 'Input new enabled connector scenarios'
$updatedWfiScenarioString = Read-Host -Prompt 'Input new enabled WFI scenarios'
$Delimiters = ",", ".", ":", ";", " ", "`t"
$updatedConnectorScenario = $updatedConnectorScenarioString -Split {$Delimiters -contains $_}
$updatedConnectorScenario = $updatedConnectorScenario.Trim()
$updatedConnectorScenario = $updatedConnectorScenario.Split('',[System.StringSplitOptions]::RemoveEmptyEntries)
$updatedWfiScenario = $updatedWfiScenarioString -Split {$Delimiters -contains $_}
$updatedWfiScenario = $updatedWfiScenario.Trim()
$updatedWfiScenario = $updatedWfiScenario.Split('', [System.StringSplitOptions]::RemoveEmptyEntries)
$apiUrl = $Instance.ConnectorSpecificSettingApiUrl
$ssoUrl = $Instance.ConnectorSpecificSettingSsoUrl
$clientId = $Instance.ConnectorSpecificSettingClientId
$syncFreq = Read-Host -Prompt 'Input new sync frequency'
$AppKey = Read-Host -Prompt 'Input your app key' -AsSecureString
$plainKey =[Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($AppKey))
$ClientSecret = Read-Host -Prompt 'Input your client secret' -AsSecureString
$plainSecret =[Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($ClientSecret))

#Read admin email list
[psobject[]]$AdminEmailList = @()
while ($true){
$AdminEmail = Read-Host -Prompt "Enter admin's email to receive error report"
$AdminEmailList += $AdminEmail
$title    = 'Adding another email'
$question = 'Would you like to add another admin email?'
$choices  = '&Yes', '&No'
$decision = $Host.UI.PromptForChoice($title, $question, $choices, 1)
if ($decision -eq 1) {
    break
}
}
$UpdatedInstance = Set-CsTeamsShiftsConnectionInstance `
    -ConnectorInstanceId $InstanceId `
    -ConnectorId $UkgId `
    -ConnectorAdminEmail $AdminEmailList `
    -DesignatedActorId $teamsUserId `
    -EnabledConnectorScenario $updatedConnectorScenario `
    -EnabledWfiScenario $updatedWfiScenario `
    -Name $UpdatedInstanceName `
    -SyncFrequencyInMin $syncFreq `
    -ConnectorSpecificSettings (New-Object Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificUkgDimensionsSettingsRequest `
        -Property @{
            apiUrl = $apiUrl
            ssoUrl = $ssoUrl
            appKey = $plainKey
            clientId = $clientId
            clientSecret = $plainSecret
            LoginUserName = $WfmUserName
            LoginPwd = $plainPwd
        }) `
    -IfMatch $Etag
if ($UpdatedInstance.Id -ne $null) {
    Write-Host "Success"
}
else {
    throw "Update instance failed"
}
#Get a list of the mappings
Write-Host "Listing mappings"
$TeamMaps = Get-CsTeamsShiftsConnectionTeamMap -ConnectorInstanceId $InstanceId
write $TeamMaps

#Modify a mapping
#Remove a mapping
Write-Host "Removing a mapping"
$TeamsTeamId = Read-Host -Prompt 'Input the Teams team ID that you want to unlink'
$WfmTeamId = Read-Host -Prompt 'Input the WFM team ID that you want to unlink'
Remove-CsTeamsShiftsConnectionTeamMap -ConnectorInstanceId $InstanceId -TeamId $TeamsTeamId
Write-Host "Success"

#Add a mapping
Write-Host "Adding a mapping"
$TeamsTeamId = Read-Host -Prompt 'Input the Teams team ID that you want to link'
$WfmTeamId = Read-Host -Prompt 'Input the WFM team ID that you want to link'
New-CsTeamsShiftsConnectionTeamMap -ConnectorInstanceId $InstanceId -TeamId $TeamsTeamId -TimeZone "America/Los_Angeles" -WfmTeamId $WfmTeamId
Write-Host "Success"

미지정 교대 근무, 미해결 교대 근무 요청, 교환 요청, 휴가 요청 사용 안 함

중요

이 문서의 앞부분에 있는 연결 설정 변경 섹션의 스크립트를 사용하거나 Set-CsTeamsShiftsConnectionInstance cmdlet을 사용하여 미지정 교대 근무, 미해결 교대 근무 요청, 교환 요청, 휴가 요청을 사용하지 않도록 선택한 경우에만 다음 단계를 수행합니다. 이 단계를 완료하면 Shifts에서 기능이 숨겨지게 됩니다. 이 두 번째 단계가 없으면 사용자는 Shifts에서 기능을 계속 볼 수 있으며 이를 사용하려고 하면 "지원되지 않는 작업" 오류 메시지가 표시됩니다.

Shifts에서 열린 교대 근무, 교환 요청 및 시간 끄기 요청을 숨기려면 Graph API 일정 리소스 유형을 사용하여 WFM instance 매핑한 각 팀에 대해 다음 매개 변수 false 를 로 설정합니다.

  • 미지정 교대 근무: openShiftsEnabled
  • 교환 요청: swapShiftsRequestsEnabled
  • 휴가 요청: timeOffRequestsEnabled
  • 제안 교대 근무 요청: offerShiftRequestsEnabled

Shifts에서 미해결 교대 근무 요청을 숨기려면 Shifts의 설정 으로 이동한 다음, 미지정 교대 근무 설정을 끕니다.

한 연결에서 팀 매핑 해제 및 다른 연결에 매핑

참고

Microsoft 365 시스템 계정은 두 연결 모두에 대해 동일해야 합니다. 그렇지 않으면 "지정된 행위자 프로필에 팀 소유권 권한이 없습니다." 오류 메시지가 표시됩니다.

한 연결에서 팀 매핑을 해제하고 다른 연결에 매핑하려면 다음을 수행합니다.

  1. 환경을 설정합니다(아직 설정하지 않은 경우).

  2. 연결에 대한 모든 팀 매핑 목록을 봅니다.

    Get-CsTeamsShiftsConnectionTeamMap -ConnectorInstanceId <ConnectorInstanceId>
    
  3. 연결에서 팀 매핑을 제거합니다.

    Remove-CsTeamsShiftsConnectionTeamMap -ConnectorInstanceId <ConnectorInstanceId> -TeamId <TeamId>
    
  4. 팀을 다른 연결에 매핑합니다.

    New-CsTeamsShiftsConnectionTeamMap -ConnectorInstanceId <ConnectorInstanceId> -TeamId <TeamId> -WfmTeamId <SiteId> -TimeZone <TimeZone>
    

자세한 내용은 Get-CsTeamsShiftsConnectionTeamMap, Remove-CsTeamsShiftsConnectionTeamMap, New-CsTeamsShiftsConnectionTeamMap을 참조하세요.

연결에 동기화 사용 안 함

이 스크립트를 사용하여 연결에 대한 동기화를 사용하지 않도록 설정합니다. 이 스크립트는 연결을 제거하거나 삭제하지 않습니다. 지정한 연결에 대해 Shifts와 WFM 시스템 간에 데이터가 동기화되지 않도록 동기화를 해제합니다.

환경을 설정한 다음(아직 설치하지 않은 경우), 다음 스크립트를 실행합니다.

#Disable sync script
Write-Host "Disable sync"
Start-Sleep 1

#Ensure Teams module is at least version x
Write-Host "Checking Teams module version"
try {
    Get-InstalledModule -Name "MicrosoftTeams" -MinimumVersion 4.7.0
} catch {
    throw
}

#List connection instances available
$UkgId = "95BF2848-2DDA-4425-B0EE-D62AEED4C0A0"
Write-Host "Listing connection instances"
$InstanceList = Get-CsTeamsShiftsConnectionInstance | where {$_.ConnectorId -match $UkgId}
write $InstanceList

#Get an instance
if ($InstanceList.Count -gt 0){
    $InstanceId = Read-Host -Prompt 'Input the instance ID that you want to disable sync'
    $Instance = Get-CsTeamsShiftsConnectionInstance -ConnectorInstanceId $InstanceId
    $Etag = $Instance.etag
    $InstanceName = $Instance.Name
    $DesignatedActorId = $Instance.designatedActorId
    $apiUrl = $Instance.ConnectorSpecificSettingApiUrl
    $ssoUrl = $Instance.ConnectorSpecificSettingSsoUrl
    $clientId = $Instance.ConnectorSpecificSettingClientId
    $ConnectorAdminEmail = $Instance.ConnectorAdminEmail
}
else {
    throw "Instance list is empty"
}

#Remove scenarios in the mapping
Write-Host "Disabling scenarios in the team mapping"
$UpdatedInstanceName = $InstanceName + " - Disabled"
$UkgId = "95BF2848-2DDA-4425-B0EE-D62AEED4C0A0"
$WfmUserName = Read-Host -Prompt 'Input your WFM user name'
$WfmPwd = Read-Host -Prompt 'Input your WFM password' -AsSecureString
$plainPwd =[Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($WfmPwd))
$AppKey = Read-Host -Prompt 'Input your app key' -AsSecureString
$plainKey =[Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($AppKey))
$ClientSecret = Read-Host -Prompt 'Input your client secret' -AsSecureString
$plainSecret =[Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($ClientSecret))

$UpdatedInstance = Set-CsTeamsShiftsConnectionInstance `
    -ConnectorInstanceId $InstanceId `
    -ConnectorId $UkgId `
    -ConnectorAdminEmail $ConnectorAdminEmail `
    -DesignatedActorId $DesignatedActorId `
    -EnabledConnectorScenario @() `
    -EnabledWfiScenario @() `
    -Name $UpdatedInstanceName `
    -SyncFrequencyInMin 10 `
    -ConnectorSpecificSettings (New-Object Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificUkgDimensionsSettingsRequest `
        -Property @{
            apiUrl = $apiUrl
            ssoUrl = $ssoUrl
            appKey = $plainKey
            clientId = $clientId
            clientSecret = $plainSecret
            LoginUserName = $WfmUserName
            LoginPwd = $plainPwd
        }) `
    -IfMatch $Etag

if ($UpdatedInstance.Id -ne $null) {
    Write-Host "Success"
}
else {
    throw "Update instance failed"
}

오류 메시지 목록

다음은 발생할 수 있는 오류 메시지 목록과 이를 resolve 데 도움이 되는 정보입니다.

오류 유형 오류 세부 정보 해결 방법
인력 관리 시스템을 인증할 수 없습니다. 제공한 인력 관리 시스템 계정 자격 증명이 잘못되었거나 이 계정에 필요한 권한이 없습니다. 연결 설정에서 WFM 서비스 계정 자격 증명을 업데이트합니다. 이렇게 하려면 다음 중 하나를 수행하세요.
Graph를 인증할 수 없습니다. 인증에 실패했습니다. 지정된 행위자의 유효한 자격 증명을 입력하고 필요한 권한이 있는지 확인합니다. Microsoft 365 시스템 계정(지정된 행위자라고도 함)이 팀 소유자로 추가되었는지 확인합니다.
또는 연결 설정에서 Microsoft 365 시스템 계정 자격 증명을 업데이트합니다.
일부 사용자가 올바르게 매핑하지 못했습니다. 일부 사용자에 대한 매핑 실패: <X> 성공, <X> 실패 AAD 사용자 및 <X> 실패한 인력 관리 시스템 사용자. Get-CsTeamsShiftsConnectionSyncResult cmdlet 또는 이 PowerShell 스크립트를 사용하여 매핑에 실패한 사용자를 식별합니다. 매핑된 팀의 사용자가 WFM instance 사용자와 일치하는지 확인합니다.
이 일괄 처리에서 팀 또는 팀을 매핑할 수 없습니다. 이 지정된 행위자 프로필에는 팀 소유권 권한이 없습니다. Microsoft 365 시스템 계정(지정된 행위자라고도 함)이 팀 소유자로 추가되었는지 확인합니다.
Microsoft 365 시스템 계정을 변경한 경우 해당 계정을 팀 소유자로 추가하고 해당 계정을 사용하도록 연결 설정을 업데이트합니다.
이 팀은 이미 기존 커넥터 instance 매핑되어 있습니다. Remove-CsTeamsShiftsConnectionTeamMap cmdlet을 사용하여 기존 커넥터 instance 팀의 매핑을 해제합니다. 또는 새 연결을 만들어 팀을 다시 매핑합니다.
이 표준 시간대가 잘못되었습니다. 전달된 표준 시간대는 tz 데이터베이스 형식을 사용하지 않습니다. 표준 시간대가 올바른지 확인한 다음 팀을 다시 매핑합니다.
이 커넥터 instance 찾을 수 없습니다. 팀을 기존 연결에 매핑합니다.
이 AAD 팀을 찾을 수 없습니다. 팀이 있는지 확인하거나 새 팀을 만듭니다.

Shifts 커넥터 cmdlet

Shifts 커넥터 cmdlet에 대한 도움말을 보려면 Teams PowerShell cmdlet 참조에서 CsTeamsShiftsConnection을 검색합니다. 다음은 일반적으로 사용되는 일부 cmdlet에 대한 링크입니다.