gpt4 book ai didi

azure - Windows 窗体按钮脚本 block 是否有任何已知的限制?

转载 作者:行者123 更新时间:2023-12-03 03:29:50 26 4
gpt4 key购买 nike

我想构建一个在后台使用 MicrosoftTeams 模块并执行批量操作的 Windows 窗体应用程序。

首先,必须始终建立与 Azure 的连接。为此,我想使用集成的 Windows 身份验证。

例如,在 PowerShell 控制台中,我只需执行以下行即可建立连接:

Connect-MicrosoftTeams -AccountId ' <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="4e3b3d2b3c0e2d21203a213d21602d2123" rel="noreferrer noopener nofollow">[email protected]</a>'

现在我想在单击按钮时执行这个脚本。

Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.DImport-Module -Name MicrosoftTeams
$window = New-Object System.Windows.Forms.Form
$window.Width = 200
$window.Height = 200

$windowButton = New-Object System.Windows.Forms.Button
$windowButton.Location = New-Object System.Drawing.Size(10,10)
$windowButton.Size = New-Object System.Drawing.Size(100,50)
$windowButton.Text = "connect teams"
$windowButton.Add_Click({
write-host 'connecting'
Connect-MicrosoftTeams -AccountId '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="dda8aeb8af9dbeb2b3a9b2aeb2f3beb2b0" rel="noreferrer noopener nofollow">[email protected]</a>'
Write-Host 'connected'
})

$window.Controls.Add($windowButton)

[void]$window.ShowDialog()

但是该命令无法正确执行。 PowerShell 只是卡在命令上。没有错误消息,也没有超时。

您知道问题出在哪里吗?这些是 Windows 窗体的限制吗?如果是,我该如何解决它们?

编辑:我认为我的问题表述得不够精确。但我很难描述这个问题。所以我会分享一些额外的代码/日志,希望这能避免误解。

如果我更改身份验证方法:

Connect-MicrosoftTeams -AccountId '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="374244524577545859435844581954585a" rel="noreferrer noopener nofollow">[email protected]</a>'

到此

Connect-MicrosoftTeams -Credential (Get-Credential)

代码工作正常(也在 Windows 窗体事件按钮的脚本 block 中)。不幸的是,随后系统会提示用户输入用户名和密码。我想不惜一切代价避免这种情况。

所以我的猜测是 Windows 窗体按钮事件脚本 block 内的代码未访问集成的 Windows 身份验证。

为了调查该问题,我启用了此 cmdlet 的事件日志记录功能。

首先,卡住的 cmdlet 的日志(在 Windows 窗体按钮事件脚本 block 内)。

2022-12-26T10:22:17.5531799Z,Info      ,Logger.Initialize                       ,
Logging initialized at level: Verbose
2022-12-26T10:22:17.5531799Z,Info ,Logger.Initialize ,
Logged in at: DEVPCName
2022-12-26T10:22:17.5531799Z,Info ,LogAssemblyInfo ,
Running assembly assemblyInfo : Microsoft.TeamsCmdlets.PowerShell.Connect, Version=1.2.5.0, Culture=neutral, PublicKeyToken=null assemblyLocation : C:\Users\lukas\Documents\WindowsPowerShell\Modules\MicrosoftTeams\4.9.1\net472\Microsoft.TeamsCmdlets.PowerShell.Connect.dll assemblyName : Microsoft.TeamsCmdlets.PowerShell.Connect, Version=1.2.5.0, Culture=neutral, PublicKeyToken=null assemblyVersion : 1.2.5.0 fileVersion : 1.2.5.0 productVersion : 1.2.5
2022-12-26T10:22:17.5531799Z,Info ,Connect-MicrosoftTeams.BeginProcessing ,
Connecting to the AzureCloud environment.
2022-12-26T10:22:17.5790454Z,Info ,Connect-MicrosoftTeams.ProcessRecord ,
Connect to MicrosoftTeams with UserCredential.
2022-12-26T10:22:17.5790454Z,Info ,Connect-MicrosoftTeams.ProcessRecord ,
Azure account type: IntegratedWindows

使用相同参数正常执行同一 cmdlet(在 Windows 窗体按钮单击事件脚本 block 之外)的日志。

2022-12-26T10:21:34.3697523Z,Info      ,Logger.Initialize                       ,
Logging initialized at level: Verbose
2022-12-26T10:21:34.3697523Z,Info ,Logger.Initialize ,
Logged in at: DEVPCName
2022-12-26T10:21:34.3697523Z,Info ,LogAssemblyInfo ,
Running assembly assemblyInfo : Microsoft.TeamsCmdlets.PowerShell.Connect, Version=1.2.5.0, Culture=neutral, PublicKeyToken=null assemblyLocation : C:\Users\lukas\Documents\WindowsPowerShell\Modules\MicrosoftTeams\4.9.1\net472\Microsoft.TeamsCmdlets.PowerShell.Connect.dll assemblyName : Microsoft.TeamsCmdlets.PowerShell.Connect, Version=1.2.5.0, Culture=neutral, PublicKeyToken=null assemblyVersion : 1.2.5.0 fileVersion : 1.2.5.0 productVersion : 1.2.5
2022-12-26T10:21:34.3697523Z,Info ,Connect-MicrosoftTeams.BeginProcessing ,
Connecting to the AzureCloud environment.
2022-12-26T10:21:34.3697523Z,Info ,Connect-MicrosoftTeams.ProcessRecord ,
Connect to MicrosoftTeams with UserCredential.
2022-12-26T10:21:34.3697523Z,Info ,Connect-MicrosoftTeams.ProcessRecord ,
Azure account type: IntegratedWindows
2022-12-26T10:21:34.6700461Z,Info , ,
Sending request :https://api.interfaces.records.teams.microsoft.com/Teams.InternalSupport/TelemetryRelay 01234567-8901-2345-6789-012345678901 SendAsync C:\a_work\7\s\Microsoft.Teams.ConfigAPI.Cmdlets\generated\custom\Infrastructure\ModuleCustom.cs:79
2022-12-26T10:21:34.6700461Z,Info , ,
RequestUri: https://api.interfaces.records.teams.microsoft.com/Teams.InternalSupport/TelemetryRelay AttachTargetUriHeaderToAutoRestCmdlets C:\a_work\7\s\Microsoft.Teams.ConfigAPI.Cmdlets\generated\custom\Infrastructure\SendAsyncCallback.cs:198
2022-12-26T10:21:34.6700461Z,Info , ,
X-MS-Target-Uri: https://admin1e.online.lync.com/ AttachTargetUriHeaderToAutoRestCmdlets C:\a_work\7\s\Microsoft.Teams.ConfigAPI.Cmdlets\generated\custom\Infrastructure\SendAsyncCallback.cs:210
2022-12-26T10:21:35.3499509Z,Info , ,
CsInternalPsTelemetry flightEnabledCommands=(Get-CsTeamsEducationConfiguration,Set-CsTeamsEducationConfiguration,Grant-CsTeamsEventsPolicy,Get-CsOnlineTelephoneNumber,Grant-CsConferencingPolicy,Get-CsClientPolicy,Grant-CsHostedVoicemailPolicy,Grant-CsClientPolicy,Grant-CsMobilityPolicy,Get-CsBroadcastMeetingConfiguration,Grant-CsVoiceRoutingPolicy,Get-CsConferencingPolicy,Get-CsMobilityPolicy,Get-CsBroadcastMeetingPolicy,Get-CsCloudMeetingPolicy,Get-CsVoiceRoutingPolicy,Get-CsGraphPolicy,Get-CsExternalUserCommunicationPolicy,Grant-CsBroadcastMeetingPolicy,Get-CsHostedVoicemailPolicy,Get-CsIPPhonePolicy,Get-CsUserServicesPolicy,Get-CsAudioConferencingProvider,Grant-CsExternalUserCommunicationPolicy,Get-CsOAuthConfiguration,Get-CsMeetingConfiguration,Get-CsTenantCatalogApp,Get-CsDefaultCatalogApp,Get-CsGlobalCatalogApp,Set-CsTeamsAppPermissionPolicy,Set-CsTeamsAppSetupPolicy,Get-CsPushNotificationConfiguration,Get-CsTeamsUpgradeStatus,Get-CsTeamsPinnedApp,Get-CsUCPhoneConfiguration,Get-CsImFilterConfiguration,Set-CsPushNotificationConfiguration,Get-CsTenantUpdateTimeWindow,New-CsTeamsAppSetupPolicy,Grant-CsCloudMeetingPolicy,Get-CsTeamsAppPreset,New-CsTeamsAppPermissionPolicy,Set-CsOAuthConfiguration,Grant-CsIPPhonePolicy,Set-CsClientPolicy,Grant-CsGraphPolicy,Set-CsIPPhonePolicy,New-CsTeamsPinnedApp,New-CsDefaultCatalogApp,Set-CsConferencingPolicy,New-CsClientPolicy,Set-CsMeetingConfiguration,Set-CsUCPhoneConfiguration,New-CsConferencingPolicy,Set-CsExternalUserCommunicationPolicy,Remove-CsClientPolicy,New-CsExternalUserCommunicationPolicy,Set-CsMobilityPolicy,Remove-CsTeamsAppPreset,Set-CsBroadcastMeetingConfiguration,Remove-CsConferencingPolicy,Remove-CsTeamsPinnedApp,New-CsMobilityPolicy,Remove-CsExternalUserCommunicationPolicy,Set-CsTeamsUpgradeStatus,Remove-CsMobilityPolicy,Remove-CsDefaultCatalogApp,Set-CsDefaultCatalogApp,New-CsGlobalCatalogApp,Remove-CsGlobalCatalogApp,Set-CsGlobalCatalogApp,New-CsTeamsAppPreset,Set-CsTeamsAppPreset,Set-CsTeamsPinnedApp,New-CsTenantCatalogApp,Remove-CsTenantCatalogApp,Set-CsTenantCatalogApp,New-CsTenantUpdateTimeWindow,Remove-CsTenantUpdateTimeWindow,Set-CsTenantUpdateTimeWindow,Invoke-CsUcsRollback,Get-CsMeetingRoom,Enable-CsMeetingRoom,Set-CsMeetingRoom,Disable-CsMeetingRoom,New-CsTeamsComplianceRecordingPairedApplication,New-CsTeamsEmergencyCallingPolicy,Set-CsTeamsEmergencyCallingPolicy,New-CsTeamsEmergencyNumber,New-CsTeamsCallHoldPolicy,Set-CsTeamsCallHoldPolicy,Get-CsTeamsComplianceRecordingApplication,Remove-CsTeamsComplianceRecordingApplication,Get-CsOnlineNumberPortOutOrderPin,Set-CsOnlineNumberPortOutOrderPin,Get-CsOnlineNumberPortInOrder,New-CsOnlineNumberPortInOrder,Test-CsOnlineCarrierPortabilityIn,Test-CsOnlinePortabilityIn,Remove-CsOnlineNumberPortInOrder,Set-CsOnlineNumberPortInOrder,Remove-CsOnlineTelephoneNumber,Get-CsOnlineApplicationInstanceAssociationStatus,Remove-CsOnlineApplicationInstanceAssociation,New-CsOnlineApplicationInstanceAssociation,Get-CsOnlineApplicationInstanceAssociation,Find-CsOnlineApplicationInstance,Find-CsGroup,Remove-CsCallQueue,New-CsCallQueue,Set-CsCallQueue,Get-CsCallQueue,Get-CsAutoAttendantTenantInformation,Get-CsAutoAttendantSupportedTimeZone,Get-CsAutoAttendantSupportedLanguage,Export-CsAutoAttendantHolidays,Import-CsAutoAttendantHolidays,Get-CsAutoAttendantHolidays,Update-CsAutoAttendant,Remove-CsAutoAttendant,Get-CsOnlineApplicationEndpoint,Set-CsOnlineApplicationEndpoint,Remove-CsOnlineApplicationEndpoint,New-CsOnlineApplicationEndpoint,Switch-CsOnlineApplicationEndpoint,Get-CsUserPstnSettings,Set-CsUserPstnSettings,Get-CsOnlineDialInConferencingUser,Test-CsVoiceNormalizationRule,Sync-CsOnlineApplicationInstance,Get-CsTenant,Test-CsInboundBlockedNumberPattern,Get-CsOnlineDialInConferencingLanguagesSupported,Set-CsOnlineDialInConferencingUser,Get-CsOnlineDialInConferencingBridge,Set-CsOnlineDialInConferencingBridge,Get-CsOnlineLisPort,Set-CsOnlineLisPort,Remove-CsOnlineLisPort,Set-CsOnlineLisLocation,New-CsOnlineLisLocation,Set-CsOnlineEnhancedEmergencyServiceDisclaimer,New-CsCallingLineIdentity,Set-CsCallingLineIdentity,Get-CsOnlineLisSubnet,Set-CsOnlineLisSubnet,Remove-CsOnlineLisSubnet,Get-CsOnlineLisSwitch,Set-CsOnlineLisSwitch,Remove-CsOnlineLisSwitch,Get-CsOnlineLisWirelessAccessPoint,Set-CsOnlineLisWirelessAccessPoint,Remove-CsOnlineLisWirelessAccessPoint,Get-CsOnlineLisCivicAddress,Set-CsOnlineLisCivicAddress,Remove-CsOnlineLisCivicAddress,Get-CsOnlineLisLocation,Remove-CsOnlineLisLocation,Get-CsOnlineEnhancedEmergencyServiceDisclaimer,New-CsOnlineLisCivicAddress,Set-CsOnlineApplicationInstance,Set-CsOnlineVoiceApplicationInstance,Set-CsOnlineVoiceUser,Test-CsEffectiveTenantDialPlan,Get-CsMeetingMigrationStatus,Grant-CsApplicationAccessPolicy,Grant-CsExternalAccessPolicy,Grant-CsOnlineAudioConferencingRoutingPolicy,Grant-CsOnlineVoicemailPolicy,Grant-CsTeamsAppPermissionPolicy,Grant-CsTeamsAppSetupPolicy,Grant-CsTeamsCallHoldPolicy,Grant-CsTeamsCallingPolicy,Grant-CsTeamsCallParkPolicy,Grant-CsTeamsChannelsPolicy,Grant-CsTeamsComplianceRecordingPolicy,Grant-CsTeamsCortanaPolicy,Set-CsUser,Grant-CsTeamsEmergencyCallingPolicy,Grant-CsTeamsFeedbackPolicy,Grant-CsTeamsIPPhonePolicy,Grant-CsTeamsMeetingBroadcastPolicy,Grant-CsTeamsMeetingPolicy,Grant-CsTeamsMessagingPolicy,Grant-CsTeamsMobilityPolicy,Grant-CsTeamsShiftsPolicy,Grant-CsTeamsUpdateManagementPolicy,Grant-CsTeamsUpgradePolicy,Grant-CsTeamsVdiPolicy,Grant-CsTeamsVideoInteropServicePolicy,Get-CsOnlineUser,Get-CsOnlineVoiceUser,Get-CsEffectiveTenantDialPlan,New-CsOnlineApplicationInstance,Get-CsOnlineApplicationInstance,Start-CsExMeetingMigration,Grant-CsCallingLineIdentity,Grant-CsDialoutPolicy,Grant-CsTeamsAudioConferencingPolicy,Grant-CsTeamsEmergencyCallRoutingPolicy,Grant-CsTeamsEnhancedEncryptionPolicy,Grant-CsTeamsWorkLoadPolicy,Grant-CsTenantDialPlan,Grant-CsTeamsFilesPolicy,Remove-CsApplicationAccessPolicy,Remove-CsCallingLineIdentity,Remove-CsExternalAccessPolicy,Remove-CsOnlineVoicemailPolicy,Remove-CsTeamsAudioConferencingPolicy,Remove-CsTeamsCallHoldPolicy,Remove-CsTeamsCallingPolicy,Remove-CsTeamsCallParkPolicy,Remove-CsTeamsChannelsPolicy,Remove-CsTeamsEmergencyCallingPolicy,Remove-CsTeamsEmergencyCallRoutingPolicy,Remove-CsTeamsEnhancedEncryptionPolicy,Remove-CsTeamsIPPhonePolicy,Remove-CsTeamsMeetingBroadcastPolicy,Remove-CsTeamsMeetingPolicy,Remove-CsTeamsMessagingPolicy,Remove-CsTeamsUpdateManagementPolicy,Remove-CsTenantDialPlan,Remove-CsTeamsComplianceRecordingPolicy,Remove-CsTeamsCortanaPolicy,Remove-CsTeamsFeedbackPolicy,Remove-CsTeamsMobilityPolicy,Remove-CsTeamsShiftsPolicy,Remove-CsTeamsVdiPolicy,Remove-CsTeamsWorkLoadPolicy,Remove-CsOnlineAudioConferencingRoutingPolicy,Remove-CsTeamsFilesPolicy,Grant-CsTeamsSurvivableBranchAppliancePolicy,Remove-CsTeamsSurvivableBranchAppliancePolicy,Remove-CsTeamsAppPermissionPolicy,Remove-CsTeamsAppSetupPolicy,Set-CsOnlineDialinConferencingUserDefaultNumber,Get-CsOnlineDialInConferencingServiceNumber,Set-CsOnlineDialInConferencingServiceNumber,Get-CsDialPlan,Get-CsExternalAccessPolicy,Get-CsOnlineDialInConferencingTenantSettings,Get-CsOnlineVoiceRoutingPolicy,Get-CsPrivacyConfiguration,Get-CsTeamsAudioConferencingPolicy,Get-CsTeamsCallingPolicy,Get-CsTeamsCallParkPolicy,Get-CsTeamsChannelsPolicy,Get-CsTeamsClientConfiguration,Get-CsTeamsCortanaPolicy,Get-CsTeamsEducationAssignmentsAppPolicy,Get-CsTeamsFeedbackPolicy,Get-CsTeamsGuestCallingConfiguration,Get-CsTeamsGuestMeetingConfiguration,Get-CsTeamsGuestMessagingConfiguration,Get-CsTeamsIPPhonePolicy,Get-CsTeamsMeetingBroadcastPolicy,Get-CsTeamsMeetingConfiguration,Get-CsTeamsMigrationConfiguration,Get-CsTeamsMobilityPolicy,Get-CsTeamsNotificationAndFeedsPolicy,Get-CsTeamsShiftsAppPolicy,Get-CsTeamsShiftsPolicy,Get-CsTeamsTargetingPolicy,Get-CsTeamsUpgradeConfiguration,Get-CsTeamsVdiPolicy,Get-CsTeamsWorkLoadPolicy,Get-CsTenantMigrationConfiguration,Get-CsTeamsFilesPolicy,New-CsExternalAccessPolicy,New-CsOnlineVoiceRoutingPolicy,New-CsTeamsAudioConferencingPolicy,New-CsTeamsCallingPolicy,New-CsTeamsCallParkPolicy,New-CsTeamsChannelsPolicy,New-CsTeamsCortanaPolicy,New-CsTeamsFeedbackPolicy,New-CsTeamsIPPhonePolicy,New-CsTeamsMeetingBroadcastPolicy,New-CsTeamsMobilityP...
2022-12-26T10:21:35.3499509Z,Info ,Connect-MicrosoftTeams.ProcessRecord ,
Session created with. Account: <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="ef9a9c8a9daf8c80819b809c80c18c8082" rel="noreferrer noopener nofollow">[email protected]</a>, Environment: AzureCloud, Tenant: 01234567-8901-2345-6789-012345678901, domainName: contoso.onmicrosoft.com, AccountType: IntegratedWindows.

所以现在我更具体的问题是:这种现象是否为任何人所知或者这是 Windows 窗体的已知限制?或者有没有办法解决这个问题?

最佳答案

当然,您可以创建一个函数,将其放在代码顶部,并在点击事件中调用它。

Add-Type -AssemblyName System.Windows.Forms
# Add-Type -AssemblyName System.DImport-Module -Name MicrosoftTeams

function ConnectTo-MSTeams
{
[CmdletBinding(SupportsShouldProcess)]
Param()

Write-Host 'connecting'

Get-Date |
Out-Host

Write-Host 'connected'
}

$window = New-Object System.Windows.Forms.Form
$window.Width = 200
$window.Height = 200
$window.StartPosition = 'CenterScreen'

$windowButton = New-Object System.Windows.Forms.Button
$windowButton.Location = New-Object System.Drawing.Size(10,10)
$windowButton.Size = New-Object System.Drawing.Size(100,50)
$windowButton.Text = 'connect teams'
$windowButton.Add_Click({ConnectTo-MSTeams})

$window.Controls.Add($windowButton)

[void]$window.ShowDialog()
# Results
<#
connecting

Monday, December 26, 2022 13:14:01


connected
#>

我没有安装 Teams,因此您需要测试。

关于azure - Windows 窗体按钮脚本 block 是否有任何已知的限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74923138/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com